Module: OgoneRails::Helpers

Extended by:
Helpers
Included in:
Helpers
Defined in:
lib/ogone-rails/helpers.rb

Instance Method Summary collapse

Instance Method Details

#ogone_form(options = {}) ⇒ Object



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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# File 'lib/ogone-rails/helpers.rb', line 6

def ogone_form options={}
  
  OgoneRails::mode == "live" ? action = OgoneRails::LIVE_SERVICE_URL : action = OgoneRails::TEST_SERVICE_URL
  
  form = Form.new(action)
  hash = StringToHash.new
  
  # REQUIRED VALUES
  # hash.reset
  # pspid
  form.add_input('PSPID', OgoneRails::pspid)
  hash.add_parameter 'PSPID', OgoneRails::pspid
  # currency
  form.add_input('currency', OgoneRails::currency)
  hash.add_parameter 'currency', OgoneRails::currency
  # language
  form.add_input('language', OgoneRails::language)
  hash.add_parameter 'language', OgoneRails::language
  
  
  
  # OPTIONAL VALUES
  options.each do |option, value|
    case option
    
    
    # ------------------
    # General parameters
    
    when :order_id
      form.add_input('orderID', value)
      hash.add_parameter 'orderID', value
      
    when :amount
      #amount 15.00 -> 1500
      value = (value.to_f * 100).to_i
      form.add_input('amount', value)
      hash.add_parameter 'amount', value
      
    when :customer_name
      form.add_input('CN', value)
      hash.add_parameter 'CN', value
      
    when :customer_email
      form.add_input('EMAIL', value)
      hash.add_parameter 'EMAIL', value
      
    when :customer_address
      form.add_input('owneraddress', value)
      hash.add_parameter 'owneraddress', value
      
    when :customer_zip
      form.add_input('ownerZIP', value)
      hash.add_parameter 'ownerZIP', value
      
    when :customer_city
      form.add_input('ownertown', value)
      hash.add_parameter 'ownertown', value
      
    when :customer_country
      form.add_input('ownercty', value)
      hash.add_parameter 'ownercty', value
      
    when :customer_phone
      form.add_input('ownertelno', value)
      hash.add_parameter 'ownertelno', value
    
    
    # --------------
    # Feedback url's
    
    when :accept_url
      form.add_input('accepturl', value)
      hash.add_parameter 'accepturl', value
      
    when :decline_url
      form.add_input('declineurl', value)
      hash.add_parameter 'declineurl', value
    
    when :exception_url
      form.add_input('exceptionurl', value)
      hash.add_parameter 'exceptionurl', value
      
    when :cancel_url
      form.add_input('cancelurl', value)
      hash.add_parameter 'cancelurl', value
    
    
    # --------------
    # Look and feel
    
    when :title
      form.add_input('TITLE', value)
      hash.add_parameter 'TITLE', value

    when :bg_color
      form.add_input('BGCOLOR', value)
      hash.add_parameter 'BGCOLOR', value


    when :text_color
      form.add_input('TXTCOLOR', value)
      hash.add_parameter 'TXTCOLOR', value


    when :table_bg_color
      form.add_input('TBLBGCOLOR', value)
      hash.add_parameter 'TBLBGCOLOR', value

    when :table_text_color
      form.add_input('TBLTXTCOLOR', value)
      hash.add_parameter 'TBLTXTCOLOR', value
    
    
    when :button_bg_color
      form.add_input('BUTTONBGCOLOR', value)
      hash.add_parameter 'BUTTONBGCOLOR', value
    
    
    when :button_text_color
      form.add_input('BUTTONTXTCOLOR', value)
      hash.add_parameter 'BUTTONTXTCOLOR', value
    
    
    when :font_family
      form.add_input('FONTTYPE', value)
      hash.add_parameter 'FONTTYPE', value
    
    when :logo
      form.add_input('LOGO', value)
      hash.add_parameter 'LOGO', value
    
    
    else
      form.add_input(option, value)
      hash.add_parameter(option, value)
    end
  end
  
  # shasign
  sha_in = hash.generate_sha_in
  form.add_input('sha_phrase', hash.sha_in_phrase)
  
  form.add_input('SHASign', sha_in)

  form.get_form
end