Class: OffsitePayments::Integrations::TwoCheckout::Notification
- Inherits:
-
Notification
- Object
- Notification
- OffsitePayments::Integrations::TwoCheckout::Notification
- Defined in:
- lib/offsite_payments/integrations/two_checkout.rb
Instance Attribute Summary
Attributes inherited from Notification
Instance Method Summary collapse
-
#acknowledge(authcode = nil) ⇒ Object
Checks against MD5 Hash.
- #complete? ⇒ Boolean
-
#currency ⇒ Object
Seller currency sale was placed in.
-
#gross ⇒ Object
The money amount we received in X.2 decimal.
-
#invoice_id ⇒ Object
2Checkout Invoice ID.
-
#item_id ⇒ Object
The value passed with ‘merchant_order_id’ is passed back as ‘vendor_order_id’.
-
#payer_email ⇒ Object
Customer Email.
- #received_at ⇒ Object
-
#secret ⇒ Object
Secret Word defined in 2Checkout account.
-
#security_key ⇒ Object
The MD5 Hash.
-
#status ⇒ Object
Determine status based on parameter set, if the params include a fraud status we know we’re being notified of the finalization of an order (an INS message) If the params include ‘credit_card_processed’ we know we’re being notified of a new order being inbound, which we handle in the deferred demo sale scenario.
-
#transaction_id ⇒ Object
2Checkout Sale ID.
-
#type ⇒ Object
INS message type.
Methods inherited from Notification
#amount, #empty!, #gross_cents, #initialize, #iso_currency, #test?, #valid_sender?
Constructor Details
This class inherits a constructor from OffsitePayments::Notification
Instance Method Details
#acknowledge(authcode = nil) ⇒ Object
Checks against MD5 Hash
246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/offsite_payments/integrations/two_checkout.rb', line 246 def acknowledge(authcode = nil) return false if security_key.blank? if Digest::MD5.hexdigest("#{ transaction_id }#{ params['vendor_id'] }#{ invoice_id }#{ secret }").upcase == security_key.upcase elsif passback? order_number = params['demo'] == 'Y' ? 1 : params['order_number'] Digest::MD5.hexdigest("#{ secret }#{ params['sid'] }#{ order_number }#{ gross }").upcase == params['key'].upcase else false end end |
#complete? ⇒ Boolean
187 188 189 |
# File 'lib/offsite_payments/integrations/two_checkout.rb', line 187 def complete? status == 'Completed' end |
#currency ⇒ Object
Seller currency sale was placed in
183 184 185 |
# File 'lib/offsite_payments/integrations/two_checkout.rb', line 183 def currency params['list_currency'] end |
#gross ⇒ Object
The money amount we received in X.2 decimal. passback || INS gross amount for new orders || default INS gross
222 223 224 |
# File 'lib/offsite_payments/integrations/two_checkout.rb', line 222 def gross params['invoice_list_amount'] || params['total'] || params['item_list_amount_1'] end |
#invoice_id ⇒ Object
2Checkout Invoice ID
202 203 204 |
# File 'lib/offsite_payments/integrations/two_checkout.rb', line 202 def invoice_id params['invoice_id'] end |
#item_id ⇒ Object
The value passed with ‘merchant_order_id’ is passed back as ‘vendor_order_id’
192 193 194 |
# File 'lib/offsite_payments/integrations/two_checkout.rb', line 192 def item_id params['vendor_order_id'] || params['merchant_order_id'] end |
#payer_email ⇒ Object
Customer Email
211 212 213 |
# File 'lib/offsite_payments/integrations/two_checkout.rb', line 211 def payer_email params['customer_email'] end |
#received_at ⇒ Object
206 207 208 |
# File 'lib/offsite_payments/integrations/two_checkout.rb', line 206 def received_at params['timestamp'] end |
#secret ⇒ Object
Secret Word defined in 2Checkout account
241 242 243 |
# File 'lib/offsite_payments/integrations/two_checkout.rb', line 241 def secret @options[:credential2] end |
#security_key ⇒ Object
The MD5 Hash
216 217 218 |
# File 'lib/offsite_payments/integrations/two_checkout.rb', line 216 def security_key params['md5_hash'] || params['key'] end |
#status ⇒ Object
Determine status based on parameter set, if the params include a fraud status we know we’re being notified of the finalization of an order (an INS message) If the params include ‘credit_card_processed’ we know we’re being notified of a new order being inbound, which we handle in the deferred demo sale scenario.
230 231 232 233 234 235 236 237 238 |
# File 'lib/offsite_payments/integrations/two_checkout.rb', line 230 def status if params['fraud_status'] == 'pass' || params['credit_card_processed'] == 'Y' 'Completed' elsif params['fraud_status'] == 'wait' 'Pending' else 'Failed' end end |
#transaction_id ⇒ Object
2Checkout Sale ID
197 198 199 |
# File 'lib/offsite_payments/integrations/two_checkout.rb', line 197 def transaction_id params['sale_id'] || params['order_number'] end |
#type ⇒ Object
INS message type
178 179 180 |
# File 'lib/offsite_payments/integrations/two_checkout.rb', line 178 def type params['message_type'] end |