class PaymentRecipes::PayPal::SOAP::Transaction
Attributes
correlation_id[R]
fee_amount[R]
gross_amount[R]
id[R]
parent_transaction_id[R]
payment_date[R]
payment_item_amount[R]
payment_status[R]
payment_type[R]
pending_reason[R]
raw_transaction[R]
tax_amount[R]
timestamp[R]
transaction_type[R]
Public Class Methods
find(id)
click to toggle source
# File lib/payment_recipes/paypal/soap/transaction.rb, line 87 def find(id) paypal_transaction = find_raw(id) if paypal_transaction new(paypal_transaction, id: id) else nil end end
find_raw(id)
click to toggle source
# File lib/payment_recipes/paypal/soap/transaction.rb, line 97 def find_raw(id) api = ::PaymentRecipes::PayPal::SOAP::Settings.api begin get_transaction_details = api.build_get_transaction_details({ :TransactionID => id }) response = api.get_transaction_details(get_transaction_details) response rescue Exception nil end end
new(paypal_transaction, id: nil)
click to toggle source
# File lib/payment_recipes/paypal/soap/transaction.rb, line 27 def initialize(paypal_transaction, id: nil) unless paypal_transaction.is_a?(::PayPal::SDK::Merchant::DataTypes::GetTransactionDetailsResponseType) raise Exception, "#{ self.class.name } must be initialized with a PayPal Transaction" end extract_and_store(paypal_transaction) end
Public Instance Methods
complete?()
click to toggle source
# File lib/payment_recipes/paypal/soap/transaction.rb, line 66 def complete? @payment_status == "Completed" end
extract_and_store(paypal_transaction)
click to toggle source
# File lib/payment_recipes/paypal/soap/transaction.rb, line 35 def extract_and_store(paypal_transaction) @raw_transaction = paypal_transaction @id = id || paypal_transaction.payment_transaction_details.payment_info.transaction_id @correlation_id = paypal_transaction.correlation_id @timestamp = paypal_transaction.timestamp.to_time @transaction_type = paypal_transaction.payment_transaction_details.payment_info.transaction_type.to_s @payment_type = paypal_transaction.payment_transaction_details.payment_info.payment_type.to_s @payment_status = paypal_transaction.payment_transaction_details.payment_info.payment_status.to_s @pending_reason = paypal_transaction.payment_transaction_details.payment_info.pending_reason.to_s @parent_transaction_id = paypal_transaction.payment_transaction_details.payment_info.parent_transaction_id.to_s @payment_date = paypal_transaction.payment_transaction_details.payment_info.payment_date.to_time paypal_gross_amount = paypal_transaction.payment_transaction_details.payment_info.gross_amount @gross_amount = convert_to_money(amount: paypal_gross_amount.value, currency: paypal_gross_amount.currencyID) paypal_fee_amount = paypal_transaction.payment_transaction_details.payment_info.fee_amount @fee_amount = convert_to_money(amount: paypal_fee_amount.value, currency: paypal_fee_amount.currencyID) paypal_tax_amount = paypal_transaction.payment_transaction_details.payment_info.tax_amount @tax_amount = convert_to_money(amount: paypal_tax_amount.value, currency: paypal_tax_amount.currencyID) payment_item_amount = paypal_transaction.payment_transaction_details.payment_item_info.payment_item.first.amount @payment_item_amount = convert_to_money(amount: payment_item_amount.value, currency: payment_item_amount.currencyID) end
inspect()
click to toggle source
# File lib/payment_recipes/paypal/soap/transaction.rb, line 70 def inspect to_str end
pending?()
click to toggle source
# File lib/payment_recipes/paypal/soap/transaction.rb, line 62 def pending? @payment_status == "Pending" end
to_s()
click to toggle source
# File lib/payment_recipes/paypal/soap/transaction.rb, line 74 def to_s to_str end
to_str()
click to toggle source
# File lib/payment_recipes/paypal/soap/transaction.rb, line 78 def to_str if pending? "<#{ self.class.name } type=#{ @transaction_type } payment_type=#{ @payment_type } payment_status=#{ @payment_status } [#{ @pending_reason }] id=#{ @id }>" else "<#{ self.class.name } type=#{ @transaction_type } payment_type=#{ @payment_type } payment_status=#{ @payment_status } id=#{ @id }>" end end