Sha256: 1c91f894dd521838142a5cad26575bf2327786190f696daa3a05541114113328

Contents?: true

Size: 825 Bytes

Versions: 2

Compression:

Stored size: 825 Bytes

Contents

# encoding: utf-8
require 'openssl'
require 'base64'
require File.join(File.dirname(__FILE__), '..', 'pagarme')

module PagarMe
  class Transaction < TransactionCommon
	# server requests methods

	def to_hash
	  {
		:amount => self.amount,
		:payment_method => self.payment_method,
		:installments => self.installments,
		:card_hash => (self.payment_method == 'credit_card' ? self.card_hash : nil),
		:postback_url => self[:postback_url],
		:customer => (self.customer) ? self.customer.to_hash : nil,
		:metadata => self.metadata
	  }
	end

	def charge
	  validation_error = self[:card_hash] ? nil : validate
	  self.card_hash = generate_card_hash unless self[:card_hash]
	  create
	end

	def refund
	  request = PagarMe::Request.new(self.url + '/refund', 'POST')
	  response = request.run
	  update(response)
	end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pagarme-1.2 lib/pagarme/transaction.rb
pagarme-1.1 lib/pagarme/transaction.rb