abtain_billing 1.0 → 1.02

Sign up to get free protection for your applications and to get access to all the features.
Files changed (237) hide show
  1. data/CHANGELOG +2 -472
  2. data/CONTRIBUTORS +0 -126
  3. data/MIT-LICENSE +2 -2
  4. data/Rakefile +3 -3
  5. data/init.rb +3 -3
  6. data/lib/{active_merchant.rb → abtain_billing.rb} +18 -18
  7. data/lib/{active_merchant → abtain_billing}/billing/avs_result.rb +1 -1
  8. data/lib/{active_merchant → abtain_billing}/billing/base.rb +7 -7
  9. data/lib/{active_merchant → abtain_billing}/billing/check.rb +1 -1
  10. data/lib/{active_merchant → abtain_billing}/billing/credit_card.rb +2 -2
  11. data/lib/{active_merchant → abtain_billing}/billing/credit_card_formatting.rb +1 -1
  12. data/lib/{active_merchant → abtain_billing}/billing/credit_card_methods.rb +2 -2
  13. data/lib/{active_merchant → abtain_billing}/billing/cvv_result.rb +1 -1
  14. data/lib/{active_merchant → abtain_billing}/billing/expiry_date.rb +1 -1
  15. data/lib/{active_merchant → abtain_billing}/billing/gateway.rb +5 -5
  16. data/lib/{active_merchant → abtain_billing}/billing/gateways.rb +1 -1
  17. data/lib/{active_merchant → abtain_billing}/billing/gateways/authorize_net.rb +3 -1
  18. data/lib/{active_merchant → abtain_billing}/billing/gateways/authorize_net_cim.rb +2 -1
  19. data/lib/{active_merchant → abtain_billing}/billing/gateways/bogus.rb +1 -1
  20. data/lib/{active_merchant → abtain_billing}/billing/gateways/cyber_source.rb +1 -1
  21. data/lib/abtain_billing/billing/integrations.rb +22 -0
  22. data/lib/{active_merchant → abtain_billing}/billing/integrations/action_view_helper.rb +2 -2
  23. data/lib/{active_merchant → abtain_billing}/billing/integrations/bogus.rb +4 -4
  24. data/lib/{active_merchant → abtain_billing}/billing/integrations/bogus/helper.rb +2 -2
  25. data/lib/{active_merchant → abtain_billing}/billing/integrations/bogus/notification.rb +2 -2
  26. data/lib/{active_merchant → abtain_billing}/billing/integrations/bogus/return.rb +2 -2
  27. data/lib/{active_merchant → abtain_billing}/billing/integrations/chronopay.rb +4 -4
  28. data/lib/{active_merchant → abtain_billing}/billing/integrations/chronopay/helper.rb +2 -2
  29. data/lib/{active_merchant → abtain_billing}/billing/integrations/chronopay/notification.rb +2 -2
  30. data/lib/{active_merchant → abtain_billing}/billing/integrations/chronopay/return.rb +2 -2
  31. data/lib/{active_merchant → abtain_billing}/billing/integrations/gestpay.rb +1 -1
  32. data/lib/{active_merchant → abtain_billing}/billing/integrations/gestpay/common.rb +1 -1
  33. data/lib/{active_merchant → abtain_billing}/billing/integrations/gestpay/helper.rb +2 -2
  34. data/lib/{active_merchant → abtain_billing}/billing/integrations/gestpay/notification.rb +2 -2
  35. data/lib/{active_merchant → abtain_billing}/billing/integrations/gestpay/return.rb +2 -2
  36. data/lib/{active_merchant → abtain_billing}/billing/integrations/helper.rb +2 -2
  37. data/lib/{active_merchant → abtain_billing}/billing/integrations/hi_trust.rb +2 -2
  38. data/lib/{active_merchant → abtain_billing}/billing/integrations/hi_trust/helper.rb +2 -2
  39. data/lib/{active_merchant → abtain_billing}/billing/integrations/hi_trust/notification.rb +3 -3
  40. data/lib/{active_merchant → abtain_billing}/billing/integrations/hi_trust/return.rb +2 -2
  41. data/lib/{active_merchant → abtain_billing}/billing/integrations/nochex.rb +5 -5
  42. data/lib/{active_merchant → abtain_billing}/billing/integrations/nochex/helper.rb +2 -2
  43. data/lib/{active_merchant → abtain_billing}/billing/integrations/nochex/notification.rb +3 -3
  44. data/lib/{active_merchant → abtain_billing}/billing/integrations/nochex/return.rb +2 -2
  45. data/lib/{active_merchant → abtain_billing}/billing/integrations/notification.rb +2 -2
  46. data/lib/{active_merchant → abtain_billing}/billing/integrations/paypal.rb +5 -5
  47. data/lib/{active_merchant → abtain_billing}/billing/integrations/paypal/helper.rb +2 -2
  48. data/lib/{active_merchant → abtain_billing}/billing/integrations/paypal/notification.rb +3 -3
  49. data/lib/{active_merchant → abtain_billing}/billing/integrations/paypal/return.rb +2 -2
  50. data/lib/{active_merchant → abtain_billing}/billing/integrations/quickpay.rb +1 -1
  51. data/lib/{active_merchant → abtain_billing}/billing/integrations/quickpay/helper.rb +2 -2
  52. data/lib/{active_merchant → abtain_billing}/billing/integrations/quickpay/notification.rb +2 -2
  53. data/lib/{active_merchant → abtain_billing}/billing/integrations/return.rb +1 -1
  54. data/lib/{active_merchant → abtain_billing}/billing/integrations/two_checkout.rb +1 -1
  55. data/lib/{active_merchant → abtain_billing}/billing/integrations/two_checkout/helper.rb +3 -3
  56. data/lib/{active_merchant → abtain_billing}/billing/integrations/two_checkout/notification.rb +2 -2
  57. data/lib/{active_merchant → abtain_billing}/billing/integrations/two_checkout/return.rb +2 -2
  58. data/lib/{active_merchant → abtain_billing}/billing/response.rb +2 -2
  59. data/lib/{active_merchant → abtain_billing}/lib/connection.rb +3 -3
  60. data/lib/{active_merchant → abtain_billing}/lib/country.rb +1 -1
  61. data/lib/abtain_billing/lib/error.rb +4 -0
  62. data/lib/{active_merchant → abtain_billing}/lib/post_data.rb +0 -0
  63. data/lib/{active_merchant → abtain_billing}/lib/posts_data.rb +1 -1
  64. data/lib/{active_merchant → abtain_billing}/lib/requires_parameters.rb +1 -1
  65. data/lib/{active_merchant → abtain_billing}/lib/utils.rb +1 -1
  66. data/lib/{active_merchant → abtain_billing}/lib/validateable.rb +1 -1
  67. data/lib/support/gateway_support.rb +3 -3
  68. data/test/fixtures.yml +2 -2
  69. data/test/remote/integrations/remote_gestpay_integration_test.rb +1 -1
  70. data/test/remote/integrations/remote_paypal_integration_test.rb +3 -3
  71. data/test/test_helper.rb +10 -10
  72. data/test/unit/base_test.rb +2 -2
  73. data/test/unit/connection_test.rb +11 -11
  74. data/test/unit/country_code_test.rb +1 -1
  75. data/test/unit/country_test.rb +1 -1
  76. data/test/unit/credit_card_formatting_test.rb +1 -1
  77. data/test/unit/credit_card_methods_test.rb +2 -2
  78. data/test/unit/gateways/authorize_net_test.rb +2 -2
  79. data/test/unit/gateways/bogus_test.rb +1 -1
  80. data/test/unit/gateways/data_cash_test.rb +1 -1
  81. data/test/unit/gateways/jetpay_test.rb +1 -1
  82. data/test/unit/gateways/merchant_ware_test.rb +1 -1
  83. data/test/unit/gateways/payflow_express_test.rb +1 -1
  84. data/test/unit/gateways/payflow_test.rb +5 -5
  85. data/test/unit/gateways/paypal_express_test.rb +2 -2
  86. data/test/unit/gateways/paypal_test.rb +2 -2
  87. data/test/unit/gateways/realex_test.rb +1 -1
  88. data/test/unit/gateways/verifi_test.rb +1 -1
  89. data/test/unit/integrations/action_view_helper_test.rb +1 -1
  90. data/test/unit/integrations/bogus_module_test.rb +1 -1
  91. data/test/unit/integrations/chronopay_module_test.rb +1 -1
  92. data/test/unit/integrations/gestpay_module_test.rb +1 -1
  93. data/test/unit/integrations/helpers/bogus_helper_test.rb +1 -1
  94. data/test/unit/integrations/helpers/chronopay_helper_test.rb +1 -1
  95. data/test/unit/integrations/helpers/gestpay_helper_test.rb +1 -1
  96. data/test/unit/integrations/helpers/hi_trust_helper_test.rb +1 -1
  97. data/test/unit/integrations/helpers/nochex_helper_test.rb +1 -1
  98. data/test/unit/integrations/helpers/paypal_helper_test.rb +2 -2
  99. data/test/unit/integrations/helpers/quickpay_helper_test.rb +1 -1
  100. data/test/unit/integrations/helpers/two_checkout_helper_test.rb +4 -4
  101. data/test/unit/integrations/hi_trust_module_test.rb +1 -1
  102. data/test/unit/integrations/nochex_module_test.rb +1 -1
  103. data/test/unit/integrations/notifications/chronopay_notification_test.rb +1 -1
  104. data/test/unit/integrations/notifications/gestpay_notification_test.rb +1 -1
  105. data/test/unit/integrations/notifications/hi_trust_notification_test.rb +4 -4
  106. data/test/unit/integrations/notifications/nochex_notification_test.rb +1 -1
  107. data/test/unit/integrations/notifications/notification_test.rb +4 -4
  108. data/test/unit/integrations/notifications/paypal_notification_test.rb +1 -1
  109. data/test/unit/integrations/notifications/quickpay_notification_test.rb +1 -1
  110. data/test/unit/integrations/notifications/two_checkout_notification_test.rb +1 -1
  111. data/test/unit/integrations/paypal_module_test.rb +4 -4
  112. data/test/unit/integrations/quickpay_module_test.rb +1 -1
  113. data/test/unit/integrations/returns/chronopay_return_test.rb +1 -1
  114. data/test/unit/integrations/returns/gestpay_return_test.rb +1 -1
  115. data/test/unit/integrations/returns/hi_trust_return_test.rb +1 -1
  116. data/test/unit/integrations/returns/nochex_return_test.rb +1 -1
  117. data/test/unit/integrations/returns/paypal_return_test.rb +1 -1
  118. data/test/unit/integrations/returns/return_test.rb +1 -1
  119. data/test/unit/integrations/returns/two_checkout_return_test.rb +1 -1
  120. data/test/unit/integrations/two_checkout_module_test.rb +1 -1
  121. data/test/unit/posts_data_test.rb +5 -5
  122. data/test/unit/utils_test.rb +1 -1
  123. data/test/unit/validateable_test.rb +2 -2
  124. metadata +63 -174
  125. data/lib/active_merchant/billing/gateways/beanstream.rb +0 -102
  126. data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +0 -233
  127. data/lib/active_merchant/billing/gateways/beanstream_interac.rb +0 -54
  128. data/lib/active_merchant/billing/gateways/braintree.rb +0 -17
  129. data/lib/active_merchant/billing/gateways/card_stream.rb +0 -230
  130. data/lib/active_merchant/billing/gateways/data_cash.rb +0 -595
  131. data/lib/active_merchant/billing/gateways/efsnet.rb +0 -229
  132. data/lib/active_merchant/billing/gateways/elavon.rb +0 -106
  133. data/lib/active_merchant/billing/gateways/eway.rb +0 -277
  134. data/lib/active_merchant/billing/gateways/exact.rb +0 -222
  135. data/lib/active_merchant/billing/gateways/first_pay.rb +0 -172
  136. data/lib/active_merchant/billing/gateways/instapay.rb +0 -164
  137. data/lib/active_merchant/billing/gateways/jetpay.rb +0 -270
  138. data/lib/active_merchant/billing/gateways/linkpoint.rb +0 -449
  139. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +0 -154
  140. data/lib/active_merchant/billing/gateways/merchant_ware.rb +0 -283
  141. data/lib/active_merchant/billing/gateways/modern_payments.rb +0 -36
  142. data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +0 -214
  143. data/lib/active_merchant/billing/gateways/moneris.rb +0 -205
  144. data/lib/active_merchant/billing/gateways/net_registry.rb +0 -189
  145. data/lib/active_merchant/billing/gateways/netbilling.rb +0 -168
  146. data/lib/active_merchant/billing/gateways/ogone.rb +0 -279
  147. data/lib/active_merchant/billing/gateways/pay_junction.rb +0 -392
  148. data/lib/active_merchant/billing/gateways/pay_secure.rb +0 -120
  149. data/lib/active_merchant/billing/gateways/payflow.rb +0 -236
  150. data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +0 -207
  151. data/lib/active_merchant/billing/gateways/payflow/payflow_express_response.rb +0 -39
  152. data/lib/active_merchant/billing/gateways/payflow/payflow_response.rb +0 -13
  153. data/lib/active_merchant/billing/gateways/payflow_express.rb +0 -138
  154. data/lib/active_merchant/billing/gateways/payflow_express_uk.rb +0 -15
  155. data/lib/active_merchant/billing/gateways/payflow_uk.rb +0 -21
  156. data/lib/active_merchant/billing/gateways/payment_express.rb +0 -230
  157. data/lib/active_merchant/billing/gateways/paypal.rb +0 -121
  158. data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +0 -326
  159. data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +0 -38
  160. data/lib/active_merchant/billing/gateways/paypal_ca.rb +0 -13
  161. data/lib/active_merchant/billing/gateways/paypal_express.rb +0 -130
  162. data/lib/active_merchant/billing/gateways/paypal_express_common.rb +0 -20
  163. data/lib/active_merchant/billing/gateways/plugnpay.rb +0 -292
  164. data/lib/active_merchant/billing/gateways/psigate.rb +0 -214
  165. data/lib/active_merchant/billing/gateways/psl_card.rb +0 -306
  166. data/lib/active_merchant/billing/gateways/quickpay.rb +0 -213
  167. data/lib/active_merchant/billing/gateways/realex.rb +0 -200
  168. data/lib/active_merchant/billing/gateways/sage.rb +0 -146
  169. data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +0 -88
  170. data/lib/active_merchant/billing/gateways/sage/sage_core.rb +0 -116
  171. data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +0 -97
  172. data/lib/active_merchant/billing/gateways/sage_pay.rb +0 -308
  173. data/lib/active_merchant/billing/gateways/sallie_mae.rb +0 -144
  174. data/lib/active_merchant/billing/gateways/secure_pay.rb +0 -31
  175. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +0 -157
  176. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +0 -113
  177. data/lib/active_merchant/billing/gateways/skip_jack.rb +0 -452
  178. data/lib/active_merchant/billing/gateways/smart_ps.rb +0 -254
  179. data/lib/active_merchant/billing/gateways/trans_first.rb +0 -127
  180. data/lib/active_merchant/billing/gateways/transax.rb +0 -26
  181. data/lib/active_merchant/billing/gateways/trust_commerce.rb +0 -418
  182. data/lib/active_merchant/billing/gateways/usa_epay.rb +0 -194
  183. data/lib/active_merchant/billing/gateways/verifi.rb +0 -228
  184. data/lib/active_merchant/billing/gateways/viaklix.rb +0 -189
  185. data/lib/active_merchant/billing/gateways/wirecard.rb +0 -318
  186. data/lib/active_merchant/billing/integrations.rb +0 -22
  187. data/lib/active_merchant/lib/error.rb +0 -4
  188. data/test/remote/gateways/remote_beanstream_interac_test.rb +0 -53
  189. data/test/remote/gateways/remote_beanstream_test.rb +0 -150
  190. data/test/remote/gateways/remote_braintree_test.rb +0 -154
  191. data/test/remote/gateways/remote_card_stream_test.rb +0 -148
  192. data/test/remote/gateways/remote_data_cash_test.rb +0 -357
  193. data/test/remote/gateways/remote_efsnet_test.rb +0 -81
  194. data/test/remote/gateways/remote_elavon_test.rb +0 -66
  195. data/test/remote/gateways/remote_eway_test.rb +0 -74
  196. data/test/remote/gateways/remote_exact_test.rb +0 -60
  197. data/test/remote/gateways/remote_first_pay_test.rb +0 -87
  198. data/test/remote/gateways/remote_instapay_test.rb +0 -61
  199. data/test/remote/gateways/remote_jetpay_test.rb +0 -103
  200. data/test/remote/gateways/remote_linkpoint_test.rb +0 -121
  201. data/test/remote/gateways/remote_merchant_e_solutions_test.rb +0 -173
  202. data/test/remote/gateways/remote_merchant_ware_test.rb +0 -113
  203. data/test/remote/gateways/remote_modern_payments_cim_test.rb +0 -58
  204. data/test/remote/gateways/remote_modern_payments_test.rb +0 -43
  205. data/test/remote/gateways/remote_moneris_test.rb +0 -82
  206. data/test/remote/gateways/remote_net_registry_test.rb +0 -85
  207. data/test/remote/gateways/remote_netbilling_test.rb +0 -70
  208. data/test/remote/gateways/remote_ogone_test.rb +0 -115
  209. data/test/remote/gateways/remote_pay_junction_test.rb +0 -143
  210. data/test/remote/gateways/remote_pay_secure_test.rb +0 -39
  211. data/test/remote/gateways/remote_payflow_express_test.rb +0 -50
  212. data/test/remote/gateways/remote_payflow_test.rb +0 -237
  213. data/test/remote/gateways/remote_payflow_uk_test.rb +0 -173
  214. data/test/remote/gateways/remote_payment_express_test.rb +0 -136
  215. data/test/remote/gateways/remote_paypal_express_test.rb +0 -49
  216. data/test/remote/gateways/remote_paypal_test.rb +0 -191
  217. data/test/remote/gateways/remote_plugnpay_test.rb +0 -72
  218. data/test/remote/gateways/remote_psigate_test.rb +0 -50
  219. data/test/remote/gateways/remote_psl_card_test.rb +0 -125
  220. data/test/remote/gateways/remote_quickpay_test.rb +0 -190
  221. data/test/remote/gateways/remote_realex_test.rb +0 -224
  222. data/test/remote/gateways/remote_sage_bankcard_test.rb +0 -109
  223. data/test/remote/gateways/remote_sage_pay_test.rb +0 -219
  224. data/test/remote/gateways/remote_sage_test.rb +0 -87
  225. data/test/remote/gateways/remote_sage_virtual_check_test.rb +0 -62
  226. data/test/remote/gateways/remote_sallie_mae_test.rb +0 -51
  227. data/test/remote/gateways/remote_secure_pay_au_test.rb +0 -40
  228. data/test/remote/gateways/remote_secure_pay_tech_test.rb +0 -37
  229. data/test/remote/gateways/remote_secure_pay_test.rb +0 -28
  230. data/test/remote/gateways/remote_skipjack_test.rb +0 -105
  231. data/test/remote/gateways/remote_trans_first_test.rb +0 -34
  232. data/test/remote/gateways/remote_transax_test.rb +0 -112
  233. data/test/remote/gateways/remote_trust_commerce_test.rb +0 -152
  234. data/test/remote/gateways/remote_usa_epay_test.rb +0 -46
  235. data/test/remote/gateways/remote_verifi_test.rb +0 -107
  236. data/test/remote/gateways/remote_viaklix_test.rb +0 -43
  237. data/test/remote/gateways/remote_wirecard_test.rb +0 -111
@@ -1,144 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- class SallieMaeGateway < Gateway
4
- URL = 'https://trans.salliemae.com/cgi-bin/process.cgi'
5
-
6
- # The countries the gateway supports merchants from as 2 digit ISO country codes
7
- self.supported_countries = ['US']
8
-
9
- # The card types supported by the payment gateway
10
- self.supported_cardtypes = [:visa, :master, :american_express, :discover]
11
-
12
- # The homepage URL of the gateway
13
- self.homepage_url = 'http://www.salliemae.com/'
14
-
15
- # The name of the gateway
16
- self.display_name = 'Sallie Mae'
17
-
18
- def initialize(options = {})
19
- requires!(options, :login)
20
- @options = options
21
- super
22
- end
23
-
24
- def test?
25
- @options[:login] == "TEST0"
26
- end
27
-
28
- def authorize(money, creditcard, options = {})
29
- post = PostData.new
30
- add_invoice(post, options)
31
- add_creditcard(post, creditcard)
32
- add_address(post, creditcard, options)
33
- add_customer_data(post, options)
34
-
35
- commit(:authonly, money, post)
36
- end
37
-
38
- def purchase(money, creditcard, options = {})
39
- post = PostData.new
40
- add_invoice(post, options)
41
- add_creditcard(post, creditcard)
42
- add_address(post, creditcard, options)
43
- add_customer_data(post, options)
44
-
45
- commit(:sale, money, post)
46
- end
47
-
48
- def capture(money, authorization, options = {})
49
- post = PostData.new
50
- post[:postonly] = authorization
51
- commit(:capture, money, post)
52
- end
53
-
54
- private
55
-
56
- def add_customer_data(post, options)
57
- if address = options[:billing_address] || options[:shipping_address] || options[:address]
58
- post[:ci_phone] = address[:phone].to_s
59
- end
60
-
61
- post[:ci_email] = options[:email].to_s unless options[:email].blank?
62
- post[:ci_IP] = options[:ip].to_s unless options[:ip].blank?
63
- end
64
-
65
- def add_address(post, creditcard, options)
66
- if address = options[:billing_address] || options[:address]
67
- post[:ci_billaddr1] = address[:address1].to_s
68
- post[:ci_billaddr2] = address[:address2].to_s unless address[:address2].blank?
69
- post[:ci_billcity] = address[:city].to_s
70
- post[:ci_billstate] = address[:state].to_s
71
- post[:ci_billzip] = address[:zip].to_s
72
- end
73
-
74
- if shipping_address = options[:shipping_address] || options[:address]
75
- post[:ci_shipaddr1] = shipping_address[:address1].to_s
76
- post[:ci_shipaddr2] = shipping_address[:address2].to_s unless shipping_address[:address2].blank?
77
- post[:ci_shipcity] = shipping_address[:city].to_s
78
- post[:ci_shipstate] = shipping_address[:state].to_s
79
- post[:ci_shipzip] = shipping_address[:zip].to_s
80
- end
81
- end
82
-
83
- def add_invoice(post, options)
84
- memo = "OrderID: #{options[:order_id]}\nDescription: #{options[:description]}"
85
- post[:ci_memo] = memo
86
- end
87
-
88
- def add_creditcard(post, creditcard)
89
- post[:ccnum] = creditcard.number.to_s
90
- post[:ccname] = creditcard.name.to_s
91
- post[:cvv2] = creditcard.verification_value.to_s if creditcard.verification_value?
92
- post[:expmon] = creditcard.month.to_s
93
- post[:expyear] = creditcard.year.to_s
94
- end
95
-
96
- def parse(body)
97
- h = {}
98
- body.gsub!("<html><body><plaintext>", "")
99
- body.
100
- split("\r\n").
101
- map do |i|
102
- a = i.split("=")
103
- h[a.first] = a.last unless a.first.nil?
104
- end
105
- h
106
- end
107
-
108
- def commit(action, money, parameters)
109
- parameters[:acctid] = @options[:login].to_s
110
- parameters[:subid] = @options[:sub_id].to_s unless @options[:sub_id].blank?
111
- parameters[:amount] = amount(money)
112
-
113
- case action
114
- when :sale
115
- parameters[:action] = "ns_quicksale_cc"
116
- when :authonly
117
- parameters[:action] = "ns_quicksale_cc"
118
- parameters[:authonly] = 1
119
- when :capture
120
- parameters[:action] = "ns_quicksale_cc"
121
- end
122
-
123
- response = parse(ssl_post(URL, parameters.to_post_data) || "")
124
- Response.new(successful?(response), message_from(response), response,
125
- :test => test?,
126
- :authorization => response["refcode"]
127
- )
128
- end
129
-
130
- def successful?(response)
131
- response["Status"] == "Accepted"
132
- end
133
-
134
- def message_from(response)
135
- if successful?(response)
136
- "Accepted"
137
- else
138
- response["Reason"].split(":")[2].capitalize unless response["Reason"].nil?
139
- end
140
- end
141
- end
142
- end
143
- end
144
-
@@ -1,31 +0,0 @@
1
- require File.dirname(__FILE__) + '/authorize_net'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- class SecurePayGateway < AuthorizeNetGateway
6
- self.live_url = self.test_url = 'https://www.securepay.com/AuthSpayAdapter/process.aspx'
7
-
8
- self.homepage_url = 'http://www.securepay.com/'
9
- self.display_name = 'SecurePay'
10
-
11
- # Limit support to purchase() for the time being
12
- # JRuby chokes here
13
- # undef_method :authorize, :capture, :void, :credit
14
-
15
- undef_method :authorize
16
- undef_method :capture
17
- undef_method :void
18
- undef_method :credit
19
-
20
- def test?
21
- Base.gateway_mode == :test
22
- end
23
-
24
- private
25
- def split(response)
26
- response.split('%')
27
- end
28
- end
29
- end
30
- end
31
-
@@ -1,157 +0,0 @@
1
- require 'rexml/document'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- class SecurePayAuGateway < Gateway
6
- API_VERSION = 'xml-4.2'
7
-
8
- TEST_URL = 'https://www.securepay.com.au/test/payment'
9
- LIVE_URL = 'https://www.securepay.com.au/xmlapi/payment'
10
-
11
- self.supported_countries = ['AU']
12
- self.supported_cardtypes = [:visa, :master, :american_express, :diners_club, :jcb]
13
-
14
- # The homepage URL of the gateway
15
- self.homepage_url = 'http://securepay.com.au'
16
-
17
- # The name of the gateway
18
- self.display_name = 'SecurePay'
19
-
20
- class_inheritable_accessor :request_timeout
21
- self.request_timeout = 60
22
-
23
- self.money_format = :cents
24
- self.default_currency = 'AUD'
25
-
26
- # 0 Standard Payment
27
- # 4 Refund
28
- # 6 Client Reversal (Void)
29
- # 10 Preauthorise
30
- # 11 Preauth Complete (Advice)
31
- TRANSACTIONS = {
32
- :purchase => 0,
33
- :authorization => 10,
34
- :capture => 11,
35
- :void => 6,
36
- :credit => 4
37
- }
38
-
39
- SUCCESS_CODES = [ '00', '08', '11', '16', '77' ]
40
-
41
- def initialize(options = {})
42
- requires!(options, :login, :password)
43
- @options = options
44
- super
45
- end
46
-
47
- def test?
48
- @options[:test] || super
49
- end
50
-
51
- def purchase(money, credit_card, options = {})
52
- commit :purchase, build_purchase_request(money, credit_card, options)
53
- end
54
-
55
- private
56
-
57
- def build_purchase_request(money, credit_card, options)
58
- xml = Builder::XmlMarkup.new
59
-
60
- xml.tag! 'amount', amount(money)
61
- xml.tag! 'currency', options[:currency] || currency(money)
62
- xml.tag! 'purchaseOrderNo', options[:order_id].to_s.gsub(/[ ']/, '')
63
-
64
- xml.tag! 'CreditCardInfo' do
65
- xml.tag! 'cardNumber', credit_card.number
66
- xml.tag! 'expiryDate', expdate(credit_card)
67
- xml.tag! 'cvv', credit_card.verification_value if credit_card.verification_value?
68
- end
69
-
70
- xml.target!
71
- end
72
-
73
- def build_request(action, body)
74
- xml = Builder::XmlMarkup.new
75
- xml.instruct!
76
- xml.tag! 'SecurePayMessage' do
77
- xml.tag! 'MessageInfo' do
78
- xml.tag! 'messageID', Utils.generate_unique_id.slice(0, 30)
79
- xml.tag! 'messageTimestamp', generate_timestamp
80
- xml.tag! 'timeoutValue', request_timeout
81
- xml.tag! 'apiVersion', API_VERSION
82
- end
83
-
84
- xml.tag! 'MerchantInfo' do
85
- xml.tag! 'merchantID', @options[:login]
86
- xml.tag! 'password', @options[:password]
87
- end
88
-
89
- xml.tag! 'RequestType', 'Payment'
90
- xml.tag! 'Payment' do
91
- xml.tag! 'TxnList', "count" => 1 do
92
- xml.tag! 'Txn', "ID" => 1 do
93
- xml.tag! 'txnType', TRANSACTIONS[action]
94
- xml.tag! 'txnSource', 23
95
- xml << body
96
- end
97
- end
98
- end
99
- end
100
-
101
- xml.target!
102
- end
103
-
104
- def commit(action, request)
105
- response = parse(ssl_post(test? ? TEST_URL : LIVE_URL, build_request(action, request)))
106
-
107
- Response.new(success?(response), message_from(response), response,
108
- :test => test?,
109
- :authorization => authorization_from(response)
110
- )
111
- end
112
-
113
- def success?(response)
114
- SUCCESS_CODES.include?(response[:response_code])
115
- end
116
-
117
- def authorization_from(response)
118
- response[:txn_id]
119
- end
120
-
121
- def message_from(response)
122
- response[:response_text] || response[:status_description]
123
- end
124
-
125
- def expdate(credit_card)
126
- "#{format(credit_card.month, :two_digits)}/#{format(credit_card.year, :two_digits)}"
127
- end
128
-
129
- def parse(body)
130
- xml = REXML::Document.new(body)
131
-
132
- response = {}
133
-
134
- xml.root.elements.to_a.each do |node|
135
- parse_element(response, node)
136
- end
137
-
138
- response
139
- end
140
-
141
- def parse_element(response, node)
142
- if node.has_elements?
143
- node.elements.each{|element| parse_element(response, element) }
144
- else
145
- response[node.name.underscore.to_sym] = node.text
146
- end
147
- end
148
-
149
- # YYYYDDMMHHNNSSKKK000sOOO
150
- def generate_timestamp
151
- time = Time.now.utc
152
- time.strftime("%Y%d%m%H%M%S#{time.usec}+000")
153
- end
154
- end
155
- end
156
- end
157
-
@@ -1,113 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- class SecurePayTechGateway < Gateway
4
- class SecurePayTechPostData < PostData
5
- self.required_fields = [ :OrderReference, :CardNumber, :CardExpiry, :CardHolderName, :CardType, :MerchantID, :MerchantKey, :Amount, :Currency ]
6
- end
7
-
8
- URL = 'https://tx.securepaytech.com/web/HttpPostPurchase'
9
-
10
- PAYMENT_GATEWAY_RESPONSES = {
11
- 1 => "Transaction OK",
12
- 2 => "Insufficient funds",
13
- 3 => "Card expired",
14
- 4 => "Card declined",
15
- 5 => "Server error",
16
- 6 => "Communications error",
17
- 7 => "Unsupported transaction type",
18
- 8 => "Bad or malformed request",
19
- 9 => "Invalid card number"
20
- }
21
-
22
- self.default_currency = 'NZD'
23
- self.supported_countries = ['NZ']
24
- self.supported_cardtypes = [:visa, :master, :american_express, :diners_club]
25
- self.homepage_url = 'http://www.securepaytech.com/'
26
- self.display_name = 'SecurePayTech'
27
-
28
- def initialize(options = {})
29
- requires!(options, :login, :password)
30
- @options = options
31
- super
32
- end
33
-
34
- def purchase(money, creditcard, options = {})
35
- post = SecurePayTechPostData.new
36
-
37
- add_invoice(post, money, options)
38
- add_creditcard(post, creditcard)
39
-
40
- commit(:purchase, post)
41
- end
42
-
43
- private
44
-
45
- def add_invoice(post, money, options)
46
- post[:Amount] = amount(money)
47
- post[:Currency] = options[:currency] || currency(money)
48
-
49
- post[:OrderReference] = options[:order_id]
50
- end
51
-
52
- def add_creditcard(post, creditcard)
53
- post[:CardNumber] = creditcard.number
54
- post[:CardExpiry] = expdate(creditcard)
55
- post[:CardHolderName] = creditcard.name
56
-
57
- if creditcard.verification_value?
58
- post[:EnableCSC] = 1
59
- post[:CSC] = creditcard.verification_value
60
- end
61
-
62
- # SPT will autodetect this
63
- post[:CardType] = 0
64
- end
65
-
66
- def parse(body)
67
- response = CGI.unescape(body).split(',')
68
-
69
- result = {}
70
- result[:result_code] = response[0].to_i
71
-
72
- if response.length == 2
73
- result[:fail_reason] = response[1]
74
- else
75
- result[:merchant_transaction_reference] = response[1]
76
- result[:receipt_number] = response[2]
77
- result[:transaction_number] = response[3]
78
- result[:authorisation_id] = response[4]
79
- result[:batch_number] = response[5]
80
- end
81
-
82
- result
83
- end
84
-
85
- def commit(action, post)
86
- response = parse( ssl_post(URL, post_data(action, post) ) )
87
-
88
- Response.new(response[:result_code] == 1, message_from(response), response,
89
- :test => test?,
90
- :authorization => response[:merchant_transaction_reference]
91
- )
92
- end
93
-
94
- def message_from(result)
95
- PAYMENT_GATEWAY_RESPONSES[result[:result_code]]
96
- end
97
-
98
- def post_data(action, post)
99
- post[:MerchantID] = @options[:login]
100
- post[:MerchantKey] = @options[:password]
101
- post.to_s
102
- end
103
-
104
- def expdate(creditcard)
105
- year = sprintf("%.4i", creditcard.year)
106
- month = sprintf("%.2i", creditcard.month)
107
-
108
- "#{month}#{year[-2..-1]}"
109
- end
110
- end
111
- end
112
- end
113
-