4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/khipu_rails/button_helper.rb', line 4
def khipu_button subject, amount, options = {}
options.reverse_merge! body: '',
payer_email: '',
bank_id: '',
expires_date: '',
notify_url: '',
return_url: '',
cancel_url: '',
transaction_id: '',
picture_url: '',
custom: '',
button_image: '50x25', receiver_id: KhipuRails.config.receivers.first.id
button_image = KhipuRails.config.button_images()[options[:button_image]] || options[:button_image]
form_tag 'https://khipu.com/api/1.3/createPaymentPage', authenticity_token: false do
fields = [].tap do |i|
i << hidden_field_tag(:receiver_id, options[:receiver_id])
i << hidden_field_tag(:subject, subject)
i << hidden_field_tag(:body, options[:body])
i << hidden_field_tag(:amount, amount)
i << hidden_field_tag(:payer_email, options[:payer_email])
i << hidden_field_tag(:bank_id, options[:bank_id])
i << hidden_field_tag(:expires_date, options[:expires_date])
i << hidden_field_tag(:transaction_id, options[:transaction_id])
i << hidden_field_tag(:custom, options[:custom])
i << hidden_field_tag(:notify_url, options[:notify_url])
i << hidden_field_tag(:return_url, options[:return_url])
i << hidden_field_tag(:cancel_url, options[:cancel_url])
i << hidden_field_tag(:picture_url, options[:picture_url])
end.join.html_safe
ng = Nokogiri::HTML.parse fields
hash_fields = {
receiver_id: get_value(ng, :receiver_id),
subject: get_value(ng, :subject),
body: get_value(ng, :body),
amount: get_value(ng, :amount),
payer_email: get_value(ng, :payer_email),
bank_id: get_value(ng, :bank_id),
expires_date: get_value(ng, :expires_date),
transaction_id: get_value(ng, :transaction_id),
custom: get_value(ng, :custom),
notify_url: get_value(ng, :notify_url),
return_url: get_value(ng, :return_url),
cancel_url: get_value(ng, :cancel_url),
picture_url: get_value(ng, :picture_url),
secret: options[:secret]
}
[fields].tap do |i|
i << hidden_field_tag(:hash, KhipuRails.khipu_hash(hash_fields))
i << image_submit_tag(button_image, name: :submit)
end.join.html_safe
end
end
|