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, Gateway::RECURRING_DEPRECATION_MESSAGE, Gateway::STANDARD_ERROR_CODE

Instance Attribute Summary

Attributes inherited from Gateway

#options

Instance Method Summary collapse

Methods inherited from Gateway

#card_brand, card_brand, #generate_unique_id, inherited, non_fractional_currency?, #scrub, supported_countries, #supported_countries, supported_countries=, supports?, #supports_network_tokenization?, #supports_scrubbing?, #test?

Methods included from CreditCardFormatting

#expdate, #format

Methods included from PostsData

included, #raw_ssl_request, #ssl_get, #ssl_post, #ssl_request

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.



52
53
54
55
# File 'lib/active_merchant/billing/gateways/data_cash.rb', line 52

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



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

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.



117
118
119
# File 'lib/active_merchant/billing/gateways/data_cash.rb', line 117

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



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

def credit(money, reference_or_credit_card, options = {})
  if reference_or_credit_card.is_a?(String)
    ActiveMerchant.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



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

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



151
152
153
# File 'lib/active_merchant/billing/gateways/data_cash.rb', line 151

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.



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

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

  commit(request)
end