module OffsitePayments::Integrations::Klarna
Constants
- REQUIRED_FIELDS
Public Class Methods
cart_items_payload(fields, cart_items)
click to toggle source
# File lib/offsite_payments/integrations/klarna.rb, line 17 def self.cart_items_payload(fields, cart_items) check_required_fields!(fields) payload = "" REQUIRED_FIELDS.sort.each do |field| payload << fields[field].to_s end payload end
digest(payload, shared_secret)
click to toggle source
# File lib/offsite_payments/integrations/klarna.rb, line 34 def self.digest(payload, shared_secret) Digest::SHA256.base64digest(payload + shared_secret.to_s) end
notification(post_body, options = {})
click to toggle source
# File lib/offsite_payments/integrations/klarna.rb, line 9 def self.notification(post_body, options = {}) Notification.new(post_body, options) end
return(query_string, options = {})
click to toggle source
# File lib/offsite_payments/integrations/klarna.rb, line 13 def self.return(query_string, options = {}) Return.new(query_string, options) end
sign(fields, cart_items, shared_secret)
click to toggle source
# File lib/offsite_payments/integrations/klarna.rb, line 28 def self.sign(fields, cart_items, shared_secret) payload = cart_items_payload(fields, cart_items) digest(payload, shared_secret) end
Private Class Methods
check_required_fields!(fields)
click to toggle source
# File lib/offsite_payments/integrations/klarna.rb, line 40 def self.check_required_fields!(fields) REQUIRED_FIELDS.each do |required_field| raise ArgumentError, "Missing required field #{required_field}" if fields[required_field].nil? end end