Class: TresDelta::Gateway

Inherits:
Client
  • Object
show all
Defined in:
lib/tres_delta/gateway.rb

Class Method Summary collapse

Methods inherited from Client

client, client_credentials, config, default_savon_options, location_identifier, request, savon_options

Class Method Details

.authorize(transaction_key, credit_card, amount, order_number, customer) ⇒ Object



9
10
11
# File 'lib/tres_delta/gateway.rb', line 9

def authorize(transaction_key, credit_card, amount, order_number, customer)
  request :authorize, authorize_params(transaction_key, credit_card, amount, order_number, customer)
end

.authorize_params(transaction_key, credit_card, amount, order_number, customer) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/tres_delta/gateway.rb', line 13

def authorize_params(transaction_key, credit_card, amount, order_number, customer)
  {
    'clientCredentials' => client_credentials,
    'authorizeParams'   => {
      'AddOrUpdateCard'       => 'true',
      'CreditCardTransaction' => {
        'CreditCard'   => credit_card_params(credit_card),
        'CurrencyCode' => 'USDollars',
        'StoredCardIdentifier' => {
          'CustomerCode' => customer.vault_key
        },
        'TotalAmount' => amount,
        'TransactionKey' => transaction_key
      },
      'TerminalIdentifier' => terminal_identifier
    }
  }
end

.billing_address_params(billing_address) ⇒ Object



60
61
62
63
64
65
# File 'lib/tres_delta/gateway.rb', line 60

def billing_address_params(billing_address)
  {
    'cc:AddressLine1' => billing_address.address,
    'cc:PostalCode'   => billing_address.zip_code
  }
end

.card_verification(transaction_key, credit_card) ⇒ Object



32
33
34
# File 'lib/tres_delta/gateway.rb', line 32

def card_verification(transaction_key, credit_card)
  request(:card_verification, card_verification_params(transaction_key, credit_card))
end

.card_verification_params(transaction_key, credit_card) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tres_delta/gateway.rb', line 36

def card_verification_params(transaction_key, credit_card)
  {
    'clientCredentials'      => client_credentials,
    'cardVerificationParams' => {
      'AddOrUpdateCard'      => 'false',
      'CreditCard'           => credit_card_params(credit_card),
      'TerminalIdentifier'   => terminal_identifier,
      'TransactionKey'       => transaction_key
    }
  }
end

.credit_card_params(credit_card) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
# File 'lib/tres_delta/gateway.rb', line 48

def credit_card_params(credit_card)
  {
    'cc:BillingAddress'            => billing_address_params(credit_card.billing_address),
    'cc:CardAccountNumber'         => credit_card.number,
    'cc:ExpirationMonth'           => credit_card.expiration_month,
    'cc:ExpirationYear'            => credit_card.expiration_year,
    'cc:NameOnCard'                => credit_card.name,
    'CardSecurityCode'             => credit_card.security_code,
    'CardSecurityCodeIndicator'    => credit_card.has_security_code? ? 'Provided' : 'None'
  }
end

.savon_overridesObject



75
76
77
78
79
80
81
# File 'lib/tres_delta/gateway.rb', line 75

def savon_overrides
  {
    namespaces: {
      'xmlns:cc' => 'http://schemas.datacontract.org/2004/07/ThreeDelta.Web.Services.ECLinx.Definitions'
    }
  }
end

.terminal_identifierObject



67
68
69
70
71
72
73
# File 'lib/tres_delta/gateway.rb', line 67

def terminal_identifier
  {
    'LocationCode' => config['location_code'],
    'MerchantCode' => config['merchant_code'],
    'TerminalCode' => config['terminal_code']
  }
end

.wsdlObject



5
6
7
# File 'lib/tres_delta/gateway.rb', line 5

def wsdl
  Config.config['transaction_wsdl']
end