class BanortePayworks::SimpleTPV

Attributes

config[RW]

Public Class Methods

new(config = {}) click to toggle source
# File lib/banorte_payworks/simple_tpv.rb, line 29
def initialize(config = {})
  self.config = config
end

Public Instance Methods

do_payment(order_id, card_number, exp_date, cvv, amount) click to toggle source
# File lib/banorte_payworks/simple_tpv.rb, line 33
def do_payment(order_id, card_number, exp_date, cvv, amount)
  do_transaction card_number: card_number,
                 exp_date: exp_date,
                 cvv: cvv,
                 amount: amount,
                 order_id: order_id,
                 response_path: 'http://sample.net/',
                 type: BanortePayworks::TYPE[:auth]
end
do_transaction(properties = {}) click to toggle source
# File lib/banorte_payworks/simple_tpv.rb, line 55
def do_transaction(properties = {})
  return_eval BanorteTransaction.from_post payworks_request(properties).first do |protocol|
    protocol.card_number = properties[:card_number]
    protocol.cvv = properties[:cvv]
    protocol.exp_date = properties[:exp_date]
    protocol.validate!
  end
end
void(transaction) click to toggle source
# File lib/banorte_payworks/simple_tpv.rb, line 43
def void(transaction)
  do_transaction order_id: transaction.order_id,
                 amount: transaction.amount,
                 authnum: transaction.authnum,
                 card_number: transaction.card_number,
                 exp_date: transaction.exp_date,
                 cvv: transaction.cvv,
                 response_path: 'http://sample.net/',
                 type: BanortePayworks::TYPE[:void]

end

Protected Instance Methods

payworks_request(properties) click to toggle source
# File lib/banorte_payworks/simple_tpv.rb, line 66
def payworks_request(properties)
  HTTPClient.new.post(PAYWORKS_URL, {
      'Name' => @config[:username],
      'Password' => @config[:password],
      'ClientId' => @config[:client_id],
      'Mode' => @config[:mode],
      'TransType' => properties[:type],
      'Expires' => properties[:exp_date],
      'Number' => properties[:card_number],
      'Cvv2Indicator' => (properties[:cvv] == nil ? 0 : 1),
      'Cvv2Val' => properties[:cvv],
      'Total' => properties[:amount],
      'ResponsePath' => properties[:response_path],
      'OrderId' => properties[:order_id],
      'AuthCode' => properties[:authnum].to_s
  }).header['Location']
end

Private Instance Methods

return_eval(object) { |object| ... } click to toggle source
# File lib/banorte_payworks/simple_tpv.rb, line 86
def return_eval(object, &block)
  yield object
  object
end