lib/adyen/form.rb in adyen-1.1.0 vs lib/adyen/form.rb in adyen-1.2.0
- old
+ new
@@ -124,11 +124,11 @@
# end
#
# @param [Hash] parameters The payment parameters to include in the payment request.
# @return [String] An absolute URL to redirect to the Adyen payment system.
def redirect_url(parameters = {})
- url + '?' + payment_parameters(parameters).map { |(k, v)|
+ url + '?' + payment_parameters(parameters).map{|k,v| [k.to_s,v] }.sort.map { |(k, v)|
"#{camelize(k)}=#{CGI.escape(v.to_s)}" }.join('&')
end
# Returns a HTML snippet of hidden INPUT tags with the provided payment parameters.
# The snippet can be included in a payment form that POSTs to the Adyen payment system.
@@ -169,17 +169,18 @@
# is used by Adyen to check whether the request is genuinely originating from you.
# @param [Hash] parameters The parameters that will be included in the payment request.
# @return [String] The string for which the siganture is calculated.
def calculate_signature_string(parameters)
merchant_sig_string = ""
- merchant_sig_string << parameters[:payment_amount].to_s << parameters[:currency_code].to_s <<
- parameters[:ship_before_date].to_s << parameters[:merchant_reference].to_s <<
- parameters[:skin_code].to_s << parameters[:merchant_account].to_s <<
- parameters[:session_validity].to_s << parameters[:shopper_email].to_s <<
- parameters[:shopper_reference].to_s << parameters[:recurring_contract].to_s <<
- parameters[:allowed_methods].to_s << parameters[:blocked_methods].to_s <<
- parameters[:shopper_statement].to_s << parameters[:billing_address_type].to_s
+ merchant_sig_string << parameters[:payment_amount].to_s << parameters[:currency_code].to_s <<
+ parameters[:ship_before_date].to_s << parameters[:merchant_reference].to_s <<
+ parameters[:skin_code].to_s << parameters[:merchant_account].to_s <<
+ parameters[:session_validity].to_s << parameters[:shopper_email].to_s <<
+ parameters[:shopper_reference].to_s << parameters[:recurring_contract].to_s <<
+ parameters[:allowed_methods].to_s << parameters[:blocked_methods].to_s <<
+ parameters[:shopper_statement].to_s << parameters[:merchant_return_data].to_s <<
+ parameters[:billing_address_type].to_s << parameters[:offset].to_s
end
# Calculates the payment request signature for the given payment parameters.
#
# This signature is used by Adyen to check whether the request is
@@ -204,10 +205,11 @@
# Generates the string for which the redirect signature is calculated, using the request paramaters.
# @param [Hash] params A hash of HTTP GET parameters for the redirect request.
# @return [String] The signature string.
def redirect_signature_string(params)
- params[:authResult].to_s + params[:pspReference].to_s + params[:merchantReference].to_s + params[:skinCode].to_s
+ params[:authResult].to_s + params[:pspReference].to_s + params[:merchantReference].to_s +
+ params[:skinCode].to_s + params[:merchantReturnData].to_s
end
# Computes the redirect signature using the request parameters, so that the
# redirect can be checked for forgery.
#