Class: PagarMe::TransactionCommon
- Inherits:
-
Model
- Object
- PagarMeObject
- Model
- PagarMe::TransactionCommon
- Defined in:
- lib/pagarme/transaction_common.rb
Direct Known Subclasses
Instance Method Summary collapse
- #card_data_parameters ⇒ Object
- #create ⇒ Object
- #generate_card_hash ⇒ Object
-
#initialize(response = {}) ⇒ TransactionCommon
constructor
A new instance of TransactionCommon.
Methods inherited from Model
all, class_name, find_by, find_by_id, #save, url, #url
Methods inherited from PagarMeObject
#[], #[]=, build, #each, #to_hash, #unsaved_values, #update
Constructor Details
#initialize(response = {}) ⇒ TransactionCommon
Returns a new instance of TransactionCommon.
7 8 9 10 11 12 |
# File 'lib/pagarme/transaction_common.rb', line 7 def initialize(response = {}) super(response) self.payment_method = 'credit_card' unless self.payment_method self.installments = 1 unless self.installments self.status = 'local' unless self.status end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class PagarMe::PagarMeObject
Instance Method Details
#card_data_parameters ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/pagarme/transaction_common.rb', line 24 def card_data_parameters { :card_number => self.card_number, :card_holder_name => self.card_holder_name, :card_expiration_date => "#{self.card_expiration_month}#{self.card_expiration_year}", :card_cvv => self.card_cvv } end |
#create ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/pagarme/transaction_common.rb', line 14 def create self.card_hash = generate_card_hash unless self.card_hash self.card_number = nil self.card_holder_name = nil self.card_expiration_year = nil self.card_expiration_month = nil self.card_cvv = nil super end |
#generate_card_hash ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/pagarme/transaction_common.rb', line 33 def generate_card_hash request = PagarMe::Request.new("/transactions/card_hash_key", 'GET') response = request.run card_data = { :card_number => self.card_number, :card_holder_name => self.card_holder_name, :card_expiration_date => "#{self.card_expiration_month}#{self.card_expiration_year}", :card_cvv => self.card_cvv } public_key = OpenSSL::PKey::RSA.new(response['public_key']) ret = "#{response['id']}_#{Base64.strict_encode64(public_key.public_encrypt(card_data.to_params))}" end |