Class: ActiveMerchant::Billing::Integrations::Moneybookers::Notification
- Inherits:
-
Notification
- Object
- Notification
- ActiveMerchant::Billing::Integrations::Moneybookers::Notification
- Defined in:
- lib/active_merchant/billing/integrations/moneybookers/notification.rb
Instance Attribute Summary
Attributes inherited from Notification
Instance Method Summary collapse
-
#acknowledge(authcode = nil) ⇒ Object
Acknowledge the transaction to MoneyBooker.
- #complete? ⇒ Boolean
-
#currency ⇒ Object
currency of the payment as posted by the merchant on the entry form.
-
#gross ⇒ Object
amount of the payment as posted by the merchant on the entry form (ex. 39.60/39.6/39).
-
#initialize(data, options) ⇒ Notification
constructor
A new instance of Notification.
- #item_id ⇒ Object
- #md5sig ⇒ Object
-
#merchant_amount ⇒ Object
total amount of the payment in Merchants currency (ex 25.46/25.4/25).
-
#merchant_currency ⇒ Object
currency of mb_amount, will always be the same as the currency of the beneficiary’s account at Moneybookers.com.
-
#merchant_id ⇒ Object
Unique ID from the merchant’s Moneybookers.com account, needed for calculatinon of md5 sig.
- #payer_email ⇒ Object
-
#received_at ⇒ Object
When was this payment received by the client.
- #receiver_email ⇒ Object
- #secret ⇒ Object
-
#status ⇒ Object
‘2’ Processed – This status is sent when the transaction is processed and the funds have been received on your Moneybookers account.
- #status_code ⇒ Object
-
#test? ⇒ Boolean
Was this a test transaction?.
- #transaction_id ⇒ Object
Methods inherited from Notification
#amount, #empty!, #gross_cents, #valid_sender?
Constructor Details
#initialize(data, options) ⇒ Notification
Returns a new instance of Notification.
10 11 12 13 14 15 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 10 def initialize(data, ) if [:credential2].nil? raise ArgumentError, "You need to provide the md5 secret as the option :credential2 to verify that the notification originated from Moneybookers" end super end |
Instance Method Details
#acknowledge(authcode = nil) ⇒ Object
Acknowledge the transaction to MoneyBooker. This method has to be called after a new apc arrives. It will verify that all the information we received is correct and will return a ok or a fail. The secret (second credential) has to be provided in the parameter :credential2 when instantiating the Notification object.
Example:
def ipn
notify = Moneybookers.notification(request.raw_post, :credential2 => 'secret')
if notify.acknowledge
... process order ... if notify.complete?
else
... log possible hacking attempt ...
end
121 122 123 124 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 121 def acknowledge(authcode = nil) fields = [merchant_id, item_id, Digest::MD5.hexdigest(secret).upcase, merchant_amount, merchant_currency, status_code].join md5sig == Digest::MD5.hexdigest(fields).upcase end |
#complete? ⇒ Boolean
17 18 19 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 17 def complete? status == 'Completed' end |
#currency ⇒ Object
currency of the payment as posted by the merchant on the entry form
78 79 80 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 78 def currency params['currency'] end |
#gross ⇒ Object
amount of the payment as posted by the merchant on the entry form (ex. 39.60/39.6/39)
83 84 85 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 83 def gross params['amount'] end |
#item_id ⇒ Object
47 48 49 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 47 def item_id params['transaction_id'] end |
#md5sig ⇒ Object
68 69 70 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 68 def md5sig params['md5sig'] end |
#merchant_amount ⇒ Object
total amount of the payment in Merchants currency (ex 25.46/25.4/25)
93 94 95 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 93 def merchant_amount params['mb_amount'] end |
#merchant_currency ⇒ Object
currency of mb_amount, will always be the same as the currency of the beneficiary’s account at Moneybookers.com
88 89 90 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 88 def merchant_currency params['mb_currency'] end |
#merchant_id ⇒ Object
Unique ID from the merchant’s Moneybookers.com account, needed for calculatinon of md5 sig
73 74 75 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 73 def merchant_id params['merchant_id'] end |
#payer_email ⇒ Object
60 61 62 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 60 def payer_email params['pay_from_email'] end |
#received_at ⇒ Object
When was this payment received by the client.
56 57 58 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 56 def received_at nil end |
#receiver_email ⇒ Object
64 65 66 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 64 def receiver_email params['pay_to_email'] end |
#secret ⇒ Object
102 103 104 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 102 def secret @options[:credential2] end |
#status ⇒ Object
‘2’ Processed – This status is sent when the transaction is processed and the funds have been received on your Moneybookers account. ‘0’ Pending – This status is sent when the customers pays via the pending bank transfer option. Such transactions will auto-process IF the bank transfer is received by Moneybookers. We strongly recommend that you do NOT process the order/transaction in your system upon receipt of a pending status from Moneybookers. ‘-1’ Cancelled – Pending transactions can either be cancelled manually by the sender in their online account history or they will auto-cancel after 14 days if still pending. ‘-2’ Failed – This status is sent when the customer tries to pay via Credit Card or Direct Debit but our provider declines the transaction. If you do not accept Credit Card or Direct Debit payments via Moneybookers (see page 17) then you will never receive the failed status. ‘-3’ Chargeback – This status could be received only if your account is configured to receive chargebacks. If this is the case, whenever a chargeback is received by Moneybookers, a -3 status will be posted on the status_url for the reversed transaction.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 26 def status case status_code when '2' 'Completed' when '0' 'Pending' when '-1' 'Cancelled' when '-2' 'Failed' when '-3' 'Reversed' else 'Error' end end |
#status_code ⇒ Object
43 44 45 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 43 def status_code params['status'] end |
#test? ⇒ Boolean
Was this a test transaction?
98 99 100 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 98 def test? false end |
#transaction_id ⇒ Object
51 52 53 |
# File 'lib/active_merchant/billing/integrations/moneybookers/notification.rb', line 51 def transaction_id params['mb_transaction_id'] end |