Class: PaymentRecipes::PayPal::SOAP::Transaction
- Inherits:
-
Object
- Object
- PaymentRecipes::PayPal::SOAP::Transaction
- Includes:
- Utils::Converters, Utils::Equality
- Defined in:
- lib/payment_recipes/paypal/soap/transaction.rb
Instance Attribute Summary collapse
-
#correlation_id ⇒ Object
readonly
Returns the value of attribute correlation_id.
-
#fee_amount ⇒ Object
readonly
Returns the value of attribute fee_amount.
-
#gross_amount ⇒ Object
readonly
Returns the value of attribute gross_amount.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#parent_transaction_id ⇒ Object
readonly
Returns the value of attribute parent_transaction_id.
-
#payment_date ⇒ Object
readonly
Returns the value of attribute payment_date.
-
#payment_item_amount ⇒ Object
readonly
Returns the value of attribute payment_item_amount.
-
#payment_status ⇒ Object
readonly
Returns the value of attribute payment_status.
-
#payment_type ⇒ Object
readonly
Returns the value of attribute payment_type.
-
#pending_reason ⇒ Object
readonly
Returns the value of attribute pending_reason.
-
#raw_transaction ⇒ Object
readonly
Returns the value of attribute raw_transaction.
-
#tax_amount ⇒ Object
readonly
Returns the value of attribute tax_amount.
-
#timestamp ⇒ Object
readonly
Returns the value of attribute timestamp.
-
#transaction_type ⇒ Object
readonly
Returns the value of attribute transaction_type.
Class Method Summary collapse
Instance Method Summary collapse
- #complete? ⇒ Boolean
- #extract_and_store(paypal_transaction) ⇒ Object
-
#initialize(paypal_transaction, id: nil) ⇒ Transaction
constructor
A new instance of Transaction.
- #inspect ⇒ Object
- #pending? ⇒ Boolean
- #to_s ⇒ Object
- #to_str ⇒ Object
Methods included from Utils::Equality
Methods included from Utils::Converters
#convert_to_money, #convert_to_string, #convert_to_symbol, #convert_to_time
Constructor Details
#initialize(paypal_transaction, id: nil) ⇒ Transaction
Returns a new instance of Transaction.
27 28 29 30 31 32 33 |
# 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 |
Instance Attribute Details
#correlation_id ⇒ Object (readonly)
Returns the value of attribute correlation_id.
8 9 10 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 8 def correlation_id @correlation_id end |
#fee_amount ⇒ Object (readonly)
Returns the value of attribute fee_amount.
13 14 15 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 13 def fee_amount @fee_amount end |
#gross_amount ⇒ Object (readonly)
Returns the value of attribute gross_amount.
12 13 14 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 12 def gross_amount @gross_amount end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
7 8 9 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 7 def id @id end |
#parent_transaction_id ⇒ Object (readonly)
Returns the value of attribute parent_transaction_id.
22 23 24 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 22 def parent_transaction_id @parent_transaction_id end |
#payment_date ⇒ Object (readonly)
Returns the value of attribute payment_date.
17 18 19 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 17 def payment_date @payment_date end |
#payment_item_amount ⇒ Object (readonly)
Returns the value of attribute payment_item_amount.
15 16 17 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 15 def payment_item_amount @payment_item_amount end |
#payment_status ⇒ Object (readonly)
Returns the value of attribute payment_status.
19 20 21 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 19 def payment_status @payment_status end |
#payment_type ⇒ Object (readonly)
Returns the value of attribute payment_type.
18 19 20 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 18 def payment_type @payment_type end |
#pending_reason ⇒ Object (readonly)
Returns the value of attribute pending_reason.
20 21 22 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 20 def pending_reason @pending_reason end |
#raw_transaction ⇒ Object (readonly)
Returns the value of attribute raw_transaction.
5 6 7 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 5 def raw_transaction @raw_transaction end |
#tax_amount ⇒ Object (readonly)
Returns the value of attribute tax_amount.
14 15 16 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 14 def tax_amount @tax_amount end |
#timestamp ⇒ Object (readonly)
Returns the value of attribute timestamp.
9 10 11 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 9 def @timestamp end |
#transaction_type ⇒ Object (readonly)
Returns the value of attribute transaction_type.
10 11 12 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 10 def transaction_type @transaction_type end |
Class Method Details
.find(id) ⇒ Object
87 88 89 90 91 92 93 94 95 |
# 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) ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# 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 |
Instance Method Details
#complete? ⇒ Boolean
66 67 68 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 66 def complete? @payment_status == "Completed" end |
#extract_and_store(paypal_transaction) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# 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..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 ⇒ Object
70 71 72 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 70 def inspect to_str end |
#pending? ⇒ Boolean
62 63 64 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 62 def pending? @payment_status == "Pending" end |
#to_s ⇒ Object
74 75 76 |
# File 'lib/payment_recipes/paypal/soap/transaction.rb', line 74 def to_s to_str end |
#to_str ⇒ Object
78 79 80 81 82 83 84 |
# 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 |