Class: ActiveMerchant::Billing::DataCashGateway

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

Constant Summary collapse

AUTH_TYPE =

Different Card Transaction Types

'auth'
CANCEL_TYPE =
'cancel'
FULFILL_TYPE =
'fulfill'
PRE_TYPE =
'pre'
REFUND_TYPE =
'refund'
TRANSACTION_REFUND_TYPE =
'txn_refund'
POLICY_ACCEPT =

Constant strings for use in the ExtendedPolicy complex element for CV2 checks

'accept'
POLICY_REJECT =
'reject'
DATACASH_SUCCESS =

Datacash success code

'1'

Constants inherited from Gateway

Gateway::CREDIT_DEPRECATION_MESSAGE, Gateway::CURRENCIES_WITHOUT_FRACTIONS, 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 CreditCardFormatting

#format

Constructor Details

#initialize(options = {}) ⇒ DataCashGateway

Creates a new DataCashGateway

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

Options

  • :login – The Datacash account login.

  • :password – The Datacash account password.

  • :test => true or false – Use the test or live Datacash url.



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

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

Instance Method Details

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

Performs an authorization, which reserves the funds on the customer’s credit card, but does not charge the card.

Parameters

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

  • authorization_or_credit_card

    The continuous authority reference or CreditCard details for the transaction.

  • options A hash of optional parameters.

    • :order_id A unique reference for this order (corresponds to merchantreference in datacash documentation)

    • :set_up_continuous_authority

      Set to true to set up a recurring historic transaction account be set up. Only supported for :visa, :master and :american_express card types See www.datacash.com/services/recurring/historic.php for more details of historic transactions.

    • :address

      billing address for card

The continuous authority reference will be available in response#params if you have requested one



97
98
99
100
101
102
103
104
105
106
107
# File 'lib/active_merchant/billing/gateways/data_cash.rb', line 97

def authorize(money, authorization_or_credit_card, options = {})
  requires!(options, :order_id)

  if authorization_or_credit_card.is_a?(String)
    request = build_purchase_or_authorization_request_with_continuous_authority_reference_request(AUTH_TYPE, money, authorization_or_credit_card, options)
  else
    request = build_purchase_or_authorization_request_with_credit_card_request(PRE_TYPE, money, authorization_or_credit_card, options)
  end

  commit(request)
end

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

Captures the funds from an authorized transaction.

Parameters

  • money – The amount to be captured as anInteger value in cents.

  • authorization – The authorization returned from the previous authorize request.



115
116
117
# File 'lib/active_merchant/billing/gateways/data_cash.rb', line 115

def capture(money, authorization, options = {})
  commit(build_void_or_capture_request(FULFILL_TYPE, money, authorization, options))
end

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

Refund to a card

Parameters

  • money The amount to be refunded as an Integer value in cents. Set to nil for a full refund on existing transaction.

  • reference_or_credit_card The credit card you want to refund OR the datacash_reference for the existing transaction you are refunding

  • options Are ignored when refunding via reference to an existing transaction, otherwise

    • :order_id A unique reference for this order (corresponds to merchantreference in datacash documentation)

    • :address

      billing address for card



139
140
141
142
143
144
145
146
147
# File 'lib/active_merchant/billing/gateways/data_cash.rb', line 139

def credit(money, reference_or_credit_card, options = {})
  if reference_or_credit_card.is_a?(String)
    deprecated CREDIT_DEPRECATION_MESSAGE
    refund(money, reference_or_credit_card)
  else
    request = build_refund_request(money, reference_or_credit_card, options)
    commit(request)
  end
end

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

Perform 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.

  • authorization_or_credit_card

    The continuous authority reference or CreditCard details for the transaction.

  • options A hash of optional parameters.

    • :order_id A unique reference for this order (corresponds to merchantreference in datacash documentation)

    • :set_up_continuous_authority

      Set to true to set up a recurring historic transaction account be set up.
      Only supported for :visa, :master and :american_express card types
      See http://www.datacash.com/services/recurring/historic.php for more details of historic transactions.
      
    • :address

      billing address for card

The continuous authority reference will be available in response#params if you have requested one



69
70
71
72
73
74
75
76
77
78
79
# File 'lib/active_merchant/billing/gateways/data_cash.rb', line 69

def purchase(money, authorization_or_credit_card, options = {})
  requires!(options, :order_id)

  if authorization_or_credit_card.is_a?(String)
    request = build_purchase_or_authorization_request_with_continuous_authority_reference_request(AUTH_TYPE, money, authorization_or_credit_card, options)
  else
    request = build_purchase_or_authorization_request_with_credit_card_request(AUTH_TYPE, money, authorization_or_credit_card, options)
  end

  commit(request)
end

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



149
150
151
# File 'lib/active_merchant/billing/gateways/data_cash.rb', line 149

def refund(money, reference, options = {})
  commit(build_transaction_refund_request(money, reference))
end

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

Void a previous transaction

Parameters

  • authorization - The authorization returned from the previous authorize request.



124
125
126
127
128
# File 'lib/active_merchant/billing/gateways/data_cash.rb', line 124

def void(authorization, options = {})
  request = build_void_or_capture_request(CANCEL_TYPE, nil, authorization, options)

  commit(request)
end