Class: MerbMerchant::Billing::Integrations::Gestpay::Helper
- Inherits:
-
Helper
- Object
- Helper
- MerbMerchant::Billing::Integrations::Gestpay::Helper
show all
- Includes:
- Common
- Defined in:
- lib/merb_merchant/billing/integrations/gestpay/helper.rb
Constant Summary
Constants included
from Common
Common::CURRENCY_MAPPING, Common::DECRYPTION_PATH, Common::DELIMITER, Common::ENCRYPTION_PATH, Common::VERSION
Instance Attribute Summary
Attributes inherited from Helper
#fields
Instance Method Summary
collapse
Methods included from Common
#parse_response, #ssl_get
Methods inherited from Helper
#add_field, #add_fields, #billing_address, mapping, #shipping_address
Constructor Details
#initialize(order, account, options = {}) ⇒ Helper
English => 2
Spanish => 3
French => 4
Tedesco => 5
13
14
15
16
|
# File 'lib/merb_merchant/billing/integrations/gestpay/helper.rb', line 13
def initialize(order, account, options = {})
super
add_field('PAY1_IDLANGUAGE', 2)
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
in the class MerbMerchant::Billing::Integrations::Helper
Instance Method Details
#currency=(currency_code) ⇒ Object
38
39
40
41
42
43
|
# File 'lib/merb_merchant/billing/integrations/gestpay/helper.rb', line 38
def currency=(currency_code)
code = CURRENCY_MAPPING[currency_code]
raise StandardError, "Invalid currency code #{currency_code} specified" if code.nil?
add_field(mappings[:currency], code)
end
|
#customer(params = {}) ⇒ Object
33
34
35
36
|
# File 'lib/merb_merchant/billing/integrations/gestpay/helper.rb', line 33
def customer(params = {})
add_field(mappings[:customer][:email], params[:email])
add_field('PAY1_CHNAME', "#{params[:first_name]} #{params[:last_name]}")
end
|
#encryption_query_string ⇒ Object
59
60
61
62
63
64
65
|
# File 'lib/merb_merchant/billing/integrations/gestpay/helper.rb', line 59
def encryption_query_string
fields = ['PAY1_AMOUNT', 'PAY1_SHOPTRANSACTIONID', 'PAY1_UICCODE']
encoded_params = fields.collect{ |field| "#{field}=#{CGI.escape(@fields[field])}" }.join(DELIMITER)
"#{ENCRYPTION_PATH}?a=" + CGI.escape(@fields['ShopLogin']) + "&b=" + encoded_params + "&c=" + CGI.escape(VERSION)
end
|
45
46
47
48
49
50
51
52
|
# File 'lib/merb_merchant/billing/integrations/gestpay/helper.rb', line 45
def form_fields
@encrypted_data ||= get_encrypted_string
{
'a' => @fields['ShopLogin'],
'b' => @encrypted_data
}
end
|
#get_encrypted_string ⇒ Object
54
55
56
57
|
# File 'lib/merb_merchant/billing/integrations/gestpay/helper.rb', line 54
def get_encrypted_string
response = ssl_get(Gestpay.service_url, encryption_query_string)
parse_response(response)
end
|