Class: ActiveMerchant::Billing::SageGateway

Inherits:
Gateway
  • Object
show all
Defined in:
lib/active_merchant/billing/gateways/sage.rb

Constant Summary

Constants inherited from Gateway

Gateway::DEBIT_CARDS

Instance Attribute Summary

Attributes inherited from Gateway

#options

Instance Method Summary collapse

Methods inherited from Gateway

#card_brand, card_brand, inherited, supports?, #test?

Methods included from Utils

generate_unique_id

Methods included from CreditCardFormatting

#format

Methods included from RequiresParameters

#requires!

Methods included from PostsData

included, #ssl_get, #ssl_post

Constructor Details

#initialize(options = {}) ⇒ SageGateway

Creates a new SageGateway

The gateway requires that a valid login and password be passed in the options hash.

Options

  • :login - The Sage Payment Solutions Merchant ID Number.

  • :password - The Sage Payment Solutions Merchant Key Number.



19
20
21
22
23
# File 'lib/active_merchant/billing/gateways/sage.rb', line 19

def initialize(options = {})
  requires!(options, :login, :password)
  @options = options
  super
end

Instance Method Details

#authorize(money, credit_card, options = {}) ⇒ Object

Performs an authorization transaction

Parameters

  • money - The amount to be authorized as an integer value in cents.

  • credit_card - The CreditCard object to be used as the funding source for the transaction.

  • options - A hash of optional parameters.

    • :order_id - A unique reference for this order. (maximum of 20 characters).

    • :email - The customer’s email address

    • :customer - The Customer Number for Purchase Card Level II Transactions

    • :billing_address - The customer’s billing address as a hash of address information.

      • :address1 - The billing address street

      • :city - The billing address city

      • :state - The billing address state

      • :country - The 2 digit ISO billing address country code

      • :zip - The billing address zip code

      • :phone - The billing address phone number

      • :fax - The billing address fax number

    • :shipping_address - The customer’s shipping address as a hash of address information.

      • :name - The name at the shipping address

      • :address1 - The shipping address street

      • :city - The shipping address city

      • :state - The shipping address state code

      • :country - The 2 digit ISO shipping address country code

      • :zip - The shipping address zip code

    • :tax - The tax amount for the transaction as an Integer value in cents. Maps to Sage T_tax.

    • :shipping - The shipping amount for the transaction as an Integer value in cents. Maps to Sage T_shipping.



51
52
53
# File 'lib/active_merchant/billing/gateways/sage.rb', line 51

def authorize(money, credit_card, options = {})
  bankcard.authorize(money, credit_card, options)
end

#capture(money, reference, options = {}) ⇒ Object

Captures authorized funds.

Parameters

  • money - The amount to be authorized as an integer value in cents. Sage doesn’t support changing the capture amount, so the full amount of the initial transaction will be captured.

  • reference - The authorization reference string returned by the original transaction’s Response#authorization.



104
105
106
# File 'lib/active_merchant/billing/gateways/sage.rb', line 104

def capture(money, reference, options = {})
  bankcard.capture(money, reference, options)
end

#credit(money, source, options = {}) ⇒ Object

Performs a credit transaction. (Sage Credit transaction).

Parameters

  • money - The amount to be authorized as an integer value in cents.

  • source - The CreditCard or Check object to be used as the target for the credit.



127
128
129
130
131
132
133
# File 'lib/active_merchant/billing/gateways/sage.rb', line 127

def credit(money, source, options = {})
  if card_brand(source) == "check"
    virtual_check.credit(money, source, options)
  else
    bankcard.credit(money, source, options)
  end
end

#purchase(money, source, options = {}) ⇒ Object

Performs a purchase, which is essentially an authorization and capture in a single operation.

Parameters

  • money - The amount to be authorized as an integer value in cents.

  • source - The CreditCard or Check object to be used as the funding source for the transaction.

  • options - A hash of optional parameters.

    • :order_id - A unique reference for this order. (maximum of 20 characters).

    • :email - The customer’s email address

    • :customer - The Customer Number for Purchase Card Level II Transactions

    • :billing_address - The customer’s billing address as a hash of address information.

      • :address1 - The billing address street

      • :city - The billing address city

      • :state - The billing address state

      • :country - The 2 digit ISO billing address country code

      • :zip - The billing address zip code

      • :phone - The billing address phone number

      • :fax - The billing address fax number

    • :shipping_address - The customer’s shipping address as a hash of address information.

      • :name - The name at the shipping address

      • :address1 - The shipping address street

      • :city - The shipping address city

      • :state - The shipping address state code

      • :country - The 2 digit ISO shipping address country code

      • :zip - The shipping address zip code

    • :tax - The tax amount for the transaction as an integer value in cents. Maps to Sage T_tax.

    • :shipping - The shipping amount for the transaction as an integer value in cents. Maps to Sage T_shipping.

Additional options in the options hash for when using a Check as the funding source

  • :originator_id - 10 digit originator. If not provided, Sage will use the default Originator ID for the specific customer type.

  • :addenda - Transaction addenda.

  • :ssn - The customer’s Social Security Number.

  • :drivers_license_state - The customer’s drivers license state code.

  • :drivers_license_number - The customer’s drivers license number.

  • :date_of_birth - The customer’s date of birth as a Time or Date object or a string in the format mm/dd/yyyy.



90
91
92
93
94
95
96
# File 'lib/active_merchant/billing/gateways/sage.rb', line 90

def purchase(money, source, options = {})
  if card_brand(source) == "check"
    virtual_check.purchase(money, source, options)
  else
    bankcard.purchase(money, source, options)
  end
end

#void(reference, options = {}) ⇒ Object

Voids a prior transaction. Works for both CreditCard and Check transactions.

Parameters

  • reference - The authorization reference string returned by the original transaction’s Response#authorization.



113
114
115
116
117
118
119
# File 'lib/active_merchant/billing/gateways/sage.rb', line 113

def void(reference, options = {})
  if reference.split(";").last == "virtual_check"
    virtual_check.void(reference, options)
  else
    bankcard.void(reference, options)
  end
end