class ActiveMerchant::Billing::PayboxDirectPlusGateway

Constants

ALREADY_EXISTING_PROFILE_CODES
API_VERSION

Payment API Version

FRAUD_CODES
TRANSACTIONS

Transactions hash

UNKNOWN_PROFILE_CODES

Public Instance Methods

payment_profiles_supported?() click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 35
def payment_profiles_supported?
  true
end
subscriber_authorize(money, creditcard, options = {}) click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 39
def subscriber_authorize(money, creditcard, options = {})
  requires!(options, :user_reference)
  post = {}
  add_invoice(post, options)
  add_creditcard(post, creditcard, options)
  add_user_reference(post, options)
  add_amount(post, money, options)
  commit('subscriber_authorization', money, post)
end
subscriber_capture(money, authorization, options = {}) click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 59
def subscriber_capture(money, authorization, options = {})
  requires!(options, :order_id, :user_reference)
  post = {}
  add_invoice(post, options)
  add_reference(post, authorization)
  add_user_reference(post, options)
  add_amount(post, money, options)
  commit('subscriber_capture', money, post)
end
subscriber_create(money, creditcard, options = {}) click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 99
def subscriber_create(money, creditcard, options = {})
  requires!(options, :user_reference)
  post = {}
  add_creditcard(post, creditcard, options)
  add_user_reference(post, options)
  add_amount(post, money, options)
  commit('subscriber_create', money, post)
end
subscriber_credit(money, identification, options = {}) click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 81
def subscriber_credit(money, identification, options = {})
  post = {}
  add_invoice(post, options)
  add_reference(post, identification)
  add_user_reference(post, options)
  add_amount(post, money, options)
  commit('subscriber_credit', money, post)
end
subscriber_destroy(money, options) click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 116
def subscriber_destroy(money, options)
  post = {}
  add_user_reference(post, options)
  add_amount(post, money, options)
  commit('subscriber_destroy', money, post)
end
subscriber_purchase(money, creditcard, options = {}) click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 49
def subscriber_purchase(money, creditcard, options = {})
  requires!(options, :credit_card_reference, :user_reference)
  post = {}
  add_invoice(post, options)
  add_creditcard(post, creditcard, options)
  add_user_reference(post, options)
  add_amount(post, money, options)
  commit('subscriber_purchase', money, post)
end
subscriber_refund(money, authorization, options = {}) click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 90
def subscriber_refund(money, authorization, options = {})
  post = {}
  add_invoice(post, options)
  add_reference(post, authorization)
  add_user_reference(post, options)
  add_amount(post, money, options)
  commit('subscriber_refund', money, post)
end
subscriber_update(money, creditcard, options = {}) click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 108
def subscriber_update(money, creditcard, options = {})
  post = {}
  add_creditcard(post, creditcard, options)
  add_user_reference(post, options)
  add_amount(post, money, options)
  commit('subscriber_update', money, post)
end
subscriber_void(money, authorization, options = {}) click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 69
def subscriber_void(money, authorization, options = {})
  requires!(options, :order_id, :user_reference)
  post = {}
  add_invoice(post, options)
  add_reference(post, authorization)
  add_user_reference(post, options)
  add_amount(post, money, options)
  post[:porteur] = '000000000000000'
  post[:dateval] = '0000'
  commit('subscriber_void', money, post)
end

Private Instance Methods

add_creditcard(post, creditcard, options = {}) click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 125
def add_creditcard(post, creditcard, options = {})
  post[:porteur] = options[:credit_card_reference] || creditcard.number
  post[:dateval] = expdate(creditcard)
  post[:cvv] = creditcard.verification_value if creditcard.verification_value?
end
add_user_reference(post, options) click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 131
def add_user_reference(post, options)
  post[:refabonne] = options[:user_reference]
end
already_existing_customer_profile?(response) click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 143
def already_existing_customer_profile?(response)
  ALREADY_EXISTING_PROFILE_CODES.include?(response[:codereponse])
end
fraud_review?(response) click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 135
def fraud_review?(response)
  FRAUD_CODES.include?(response[:codereponse])
end
post_data(action, parameters = {}) click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 147
def post_data(action, parameters = {})
  parameters.update(
    version:     API_VERSION,
    type:        TRANSACTIONS[action.to_sym],
    dateq:       Time.now.strftime('%d%m%Y%H%M%S'),
    numquestion: unique_id(parameters[:order_id]),
    site:        @options[:login].to_s[0, 7],
    rang:        @options[:rang] || @options[:login].to_s[7..-1],
    cle:         @options[:password],
    pays:        '',
    archivage:   parameters[:reference]
  )

  parameters.collect { |key, value| "#{key.to_s.upcase}=#{CGI.escape(value.to_s)}" }.join('&')
end
unknown_customer_profile?(response) click to toggle source
# File lib/activemerchant_paybox_direct_plus.rb, line 139
def unknown_customer_profile?(response)
  UNKNOWN_PROFILE_CODES.include?(response[:codereponse])
end