lib/adyen/form.rb in adyen-0.1.4 vs lib/adyen/form.rb in adyen-0.1.5
- old
+ new
@@ -34,24 +34,30 @@
attributes[:order_data] = Adyen::Encoding.gzip_base64(attributes.delete(:order_data_raw)) if attributes[:order_data_raw]
attributes[:ship_before_date] = Adyen::Formatter::DateTime.fmt_date(attributes[:ship_before_date])
attributes[:session_validity] = Adyen::Formatter::DateTime.fmt_time(attributes[:session_validity])
end
-
- def self.hidden_fields(attributes = {})
+ def self.payment_fields(attributes = {})
do_attribute_transformations!(attributes)
-
+
raise "Cannot generate form: :currency code attribute not found!" unless attributes[:currency_code]
raise "Cannot generate form: :payment_amount code attribute not found!" unless attributes[:payment_amount]
raise "Cannot generate form: :merchant_account attribute not found!" unless attributes[:merchant_account]
raise "Cannot generate form: :skin_code attribute not found!" unless attributes[:skin_code]
raise "Cannot generate form: :shared_secret signing secret not provided!" unless attributes[:shared_secret]
# Merchant signature
attributes[:merchant_sig] = calculate_signature(attributes)
+ return attributes
+ end
+
+ def self.redirect_url(attributes)
+ self.url + '?' + payment_fields(attributes).map { |(k, v)| "#{k.to_s.camelize(:lower)}=#{CGI.escape(v.to_s)}" }.join('&')
+ end
+ def self.hidden_fields(attributes = {})
# Generate hidden input tags
- attributes.map { |key, value|
+ payment_fields(attributes).map { |key, value|
self.tag(:input, :type => 'hidden', :name => key.to_s.camelize(:lower), :value => value)
}.join("\n")
end
def self.redirect_signature_string(params)
\ No newline at end of file