Class: MerbMerchant::Billing::Integrations::Notification
- Inherits:
-
Object
- Object
- MerbMerchant::Billing::Integrations::Notification
- Defined in:
- lib/merb_merchant/billing/integrations/notification.rb
Direct Known Subclasses
Bogus::Notification, Chronopay::Notification, Gestpay::Notification, HiTrust::Notification, MerbMerchant::Billing::Integrations::Nochex::Notification, Paypal::Notification, Quickpay::Notification, TwoCheckout::Notification
Instance Attribute Summary collapse
-
#params ⇒ Object
Returns the value of attribute params.
-
#raw ⇒ Object
Returns the value of attribute raw.
Instance Method Summary collapse
-
#amount ⇒ Object
This combines the gross and currency and returns a proper Money object.
-
#empty! ⇒ Object
reset the notification.
-
#gross ⇒ Object
the money amount we received in X.2 decimal.
- #gross_cents ⇒ Object
-
#initialize(post, options = {}) ⇒ Notification
constructor
A new instance of Notification.
- #status ⇒ Object
-
#valid_sender?(ip) ⇒ Boolean
Check if the request comes from an official IP.
Constructor Details
#initialize(post, options = {}) ⇒ Notification
Returns a new instance of Notification.
11 12 13 14 15 |
# File 'lib/merb_merchant/billing/integrations/notification.rb', line 11 def initialize(post, = {}) @options = empty! parse(post) end |
Instance Attribute Details
#params ⇒ Object
Returns the value of attribute params.
5 6 7 |
# File 'lib/merb_merchant/billing/integrations/notification.rb', line 5 def params @params end |
#raw ⇒ Object
Returns the value of attribute raw.
6 7 8 |
# File 'lib/merb_merchant/billing/integrations/notification.rb', line 6 def raw @raw end |
Instance Method Details
#amount ⇒ Object
This combines the gross and currency and returns a proper Money object. this requires the money library located at dist.leetsoft.com/api/money
32 33 34 35 |
# File 'lib/merb_merchant/billing/integrations/notification.rb', line 32 def amount return Money.new(gross_cents, currency) rescue ArgumentError return Money.new(gross_cents) # maybe you have an own money object which doesn't take a currency? end |
#empty! ⇒ Object
reset the notification.
38 39 40 41 |
# File 'lib/merb_merchant/billing/integrations/notification.rb', line 38 def empty! @params = Hash.new @raw = "" end |
#gross ⇒ Object
the money amount we received in X.2 decimal.
22 23 24 |
# File 'lib/merb_merchant/billing/integrations/notification.rb', line 22 def gross raise NotImplementedError, "Must implement this method in the subclass" end |
#gross_cents ⇒ Object
26 27 28 |
# File 'lib/merb_merchant/billing/integrations/notification.rb', line 26 def gross_cents (gross.to_f * 100.0).round end |
#status ⇒ Object
17 18 19 |
# File 'lib/merb_merchant/billing/integrations/notification.rb', line 17 def status raise NotImplementedError, "Must implement this method in the subclass" end |
#valid_sender?(ip) ⇒ Boolean
Check if the request comes from an official IP
44 45 46 47 |
# File 'lib/merb_merchant/billing/integrations/notification.rb', line 44 def valid_sender?(ip) return true if MerbMerchant::Billing::Base.integration_mode == :test || production_ips.blank? production_ips.include?(ip) end |