Sha256: f5a967b30601eae724551979fc82ea6912788d366da3cafa94820d17d7d09532

Contents?: true

Size: 1.83 KB

Versions: 1

Compression:

Stored size: 1.83 KB

Contents

module TresDelta
  class Gateway < Client
    def initialize
      @wsdl = Config.config['transaction_wsdl']
    end

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

    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

    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,
        'NameOnCard'                   => credit_card.name,
        'CardSecurityCode'             => nil,
        'CardSecurityCodeIndicator'    => 'None'
      }
    end

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

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

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

    def authorize(transaction_key, credit_card, transaction_total, order_number)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tres_delta-0.0.1 lib/tres_delta/gateway.rb