lib/active_merchant/billing/integrations/quickpay/helper.rb in activemerchant-1.29.3 vs lib/active_merchant/billing/integrations/quickpay/helper.rb in activemerchant-1.30.0

- old
+ new

@@ -5,61 +5,64 @@ class Helper < ActiveMerchant::Billing::Integrations::Helper def initialize(order, account, options = {}) md5secret options.delete(:credential2) super - add_field('protocol', '3') + add_field('protocol', '6') add_field('msgtype', 'authorize') add_field('language', 'da') add_field('autocapture', 0) add_field('testmode', test? ? 1 : 0) add_field('ordernumber', format_order_number(order)) end - + def md5secret(value) @md5secret = value end - + def form_fields @fields.merge('md5check' => generate_md5check) end - + def generate_md5string MD5_CHECK_FIELDS.map {|key| @fields[key.to_s]} * "" + @md5secret end - + def generate_md5check Digest::MD5.hexdigest(generate_md5string) end # Limited to 20 digits max def format_order_number(number) - number.to_s.gsub(/[^\w_]/, '').rjust(4, "0")[0...20] + number.to_s.gsub(/[^\w]/, '').rjust(4, "0")[0...20] end - + MD5_CHECK_FIELDS = [ - :protocol, :msgtype, :merchant, :language, :ordernumber, + :protocol, :msgtype, :merchant, :language, :ordernumber, :amount, :currency, :continueurl, :cancelurl, :callbackurl, - :autocapture, :cardtypelock, :description, :ipaddress, :testmode + :autocapture, :cardtypelock, :description, :ipaddress, :testmode, + :deadline, :cardhash ] mapping :protocol, 'protocol' mapping :msgtype, 'msgtype' mapping :account, 'merchant' mapping :language, 'language' mapping :amount, 'amount' mapping :currency, 'currency' - + mapping :return_url, 'continueurl' mapping :cancel_return_url, 'cancelurl' mapping :notify_url, 'callbackurl' mapping :autocapture, 'autocapture' mapping :cardtypelock, 'cardtypelock' mapping :description, 'description' mapping :ipaddress, 'ipaddress' mapping :testmode, 'testmode' + mapping :deadline, 'deadline' + mapping :cardhash, 'cardhash' mapping :customer, '' mapping :billing_address, {} mapping :tax, '' mapping :shipping, ''