tlconnor-activemerchant 1.20.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (195) hide show
  1. data/CHANGELOG +805 -0
  2. data/CONTRIBUTORS +274 -0
  3. data/MIT-LICENSE +20 -0
  4. data/gem-public_cert.pem +20 -0
  5. data/lib/active_merchant.rb +63 -0
  6. data/lib/active_merchant/billing.rb +9 -0
  7. data/lib/active_merchant/billing/avs_result.rb +98 -0
  8. data/lib/active_merchant/billing/base.rb +57 -0
  9. data/lib/active_merchant/billing/check.rb +68 -0
  10. data/lib/active_merchant/billing/credit_card.rb +264 -0
  11. data/lib/active_merchant/billing/credit_card_formatting.rb +21 -0
  12. data/lib/active_merchant/billing/credit_card_methods.rb +129 -0
  13. data/lib/active_merchant/billing/cvv_result.rb +38 -0
  14. data/lib/active_merchant/billing/expiry_date.rb +34 -0
  15. data/lib/active_merchant/billing/gateway.rb +170 -0
  16. data/lib/active_merchant/billing/gateways.rb +18 -0
  17. data/lib/active_merchant/billing/gateways/authorize_net.rb +694 -0
  18. data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +944 -0
  19. data/lib/active_merchant/billing/gateways/barclays_epdq.rb +308 -0
  20. data/lib/active_merchant/billing/gateways/beanstream.rb +167 -0
  21. data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +388 -0
  22. data/lib/active_merchant/billing/gateways/beanstream_interac.rb +54 -0
  23. data/lib/active_merchant/billing/gateways/blue_pay.rb +11 -0
  24. data/lib/active_merchant/billing/gateways/bogus.rb +142 -0
  25. data/lib/active_merchant/billing/gateways/braintree.rb +17 -0
  26. data/lib/active_merchant/billing/gateways/braintree/braintree_common.rb +9 -0
  27. data/lib/active_merchant/billing/gateways/braintree_blue.rb +308 -0
  28. data/lib/active_merchant/billing/gateways/braintree_orange.rb +21 -0
  29. data/lib/active_merchant/billing/gateways/card_save.rb +23 -0
  30. data/lib/active_merchant/billing/gateways/card_stream.rb +230 -0
  31. data/lib/active_merchant/billing/gateways/certo_direct.rb +279 -0
  32. data/lib/active_merchant/billing/gateways/cyber_source.rb +430 -0
  33. data/lib/active_merchant/billing/gateways/data_cash.rb +597 -0
  34. data/lib/active_merchant/billing/gateways/efsnet.rb +235 -0
  35. data/lib/active_merchant/billing/gateways/elavon.rb +135 -0
  36. data/lib/active_merchant/billing/gateways/epay.rb +274 -0
  37. data/lib/active_merchant/billing/gateways/eway.rb +277 -0
  38. data/lib/active_merchant/billing/gateways/eway_managed.rb +265 -0
  39. data/lib/active_merchant/billing/gateways/exact.rb +227 -0
  40. data/lib/active_merchant/billing/gateways/federated_canada.rb +168 -0
  41. data/lib/active_merchant/billing/gateways/first_pay.rb +177 -0
  42. data/lib/active_merchant/billing/gateways/garanti.rb +262 -0
  43. data/lib/active_merchant/billing/gateways/ideal/ideal_base.rb +250 -0
  44. data/lib/active_merchant/billing/gateways/ideal/ideal_rabobank.pem +13 -0
  45. data/lib/active_merchant/billing/gateways/ideal/ideal_response.rb +29 -0
  46. data/lib/active_merchant/billing/gateways/ideal_rabobank.rb +55 -0
  47. data/lib/active_merchant/billing/gateways/inspire.rb +221 -0
  48. data/lib/active_merchant/billing/gateways/instapay.rb +164 -0
  49. data/lib/active_merchant/billing/gateways/iridium.rb +258 -0
  50. data/lib/active_merchant/billing/gateways/jetpay.rb +276 -0
  51. data/lib/active_merchant/billing/gateways/linkpoint.rb +454 -0
  52. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +157 -0
  53. data/lib/active_merchant/billing/gateways/merchant_ware.rb +289 -0
  54. data/lib/active_merchant/billing/gateways/modern_payments.rb +36 -0
  55. data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +220 -0
  56. data/lib/active_merchant/billing/gateways/moneris.rb +239 -0
  57. data/lib/active_merchant/billing/gateways/nab_transact.rb +244 -0
  58. data/lib/active_merchant/billing/gateways/net_registry.rb +189 -0
  59. data/lib/active_merchant/billing/gateways/netaxept.rb +239 -0
  60. data/lib/active_merchant/billing/gateways/netbilling.rb +168 -0
  61. data/lib/active_merchant/billing/gateways/nmi.rb +13 -0
  62. data/lib/active_merchant/billing/gateways/ogone.rb +330 -0
  63. data/lib/active_merchant/billing/gateways/optimal_payment.rb +277 -0
  64. data/lib/active_merchant/billing/gateways/orbital.rb +344 -0
  65. data/lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb +46 -0
  66. data/lib/active_merchant/billing/gateways/pay_junction.rb +397 -0
  67. data/lib/active_merchant/billing/gateways/pay_secure.rb +120 -0
  68. data/lib/active_merchant/billing/gateways/paybox_direct.rb +207 -0
  69. data/lib/active_merchant/billing/gateways/payflow.rb +261 -0
  70. data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +208 -0
  71. data/lib/active_merchant/billing/gateways/payflow/payflow_express_response.rb +39 -0
  72. data/lib/active_merchant/billing/gateways/payflow/payflow_response.rb +13 -0
  73. data/lib/active_merchant/billing/gateways/payflow_express.rb +222 -0
  74. data/lib/active_merchant/billing/gateways/payflow_express_uk.rb +15 -0
  75. data/lib/active_merchant/billing/gateways/payflow_uk.rb +21 -0
  76. data/lib/active_merchant/billing/gateways/payment_express.rb +235 -0
  77. data/lib/active_merchant/billing/gateways/paypal.rb +121 -0
  78. data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +354 -0
  79. data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +49 -0
  80. data/lib/active_merchant/billing/gateways/paypal_ca.rb +13 -0
  81. data/lib/active_merchant/billing/gateways/paypal_express.rb +229 -0
  82. data/lib/active_merchant/billing/gateways/paypal_express_common.rb +25 -0
  83. data/lib/active_merchant/billing/gateways/paystation.rb +201 -0
  84. data/lib/active_merchant/billing/gateways/plugnpay.rb +298 -0
  85. data/lib/active_merchant/billing/gateways/psigate.rb +219 -0
  86. data/lib/active_merchant/billing/gateways/psl_card.rb +304 -0
  87. data/lib/active_merchant/billing/gateways/qbms.rb +297 -0
  88. data/lib/active_merchant/billing/gateways/quantum.rb +282 -0
  89. data/lib/active_merchant/billing/gateways/quickpay.rb +298 -0
  90. data/lib/active_merchant/billing/gateways/realex.rb +315 -0
  91. data/lib/active_merchant/billing/gateways/sage.rb +146 -0
  92. data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +88 -0
  93. data/lib/active_merchant/billing/gateways/sage/sage_core.rb +116 -0
  94. data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +97 -0
  95. data/lib/active_merchant/billing/gateways/sage_pay.rb +320 -0
  96. data/lib/active_merchant/billing/gateways/sallie_mae.rb +144 -0
  97. data/lib/active_merchant/billing/gateways/samurai.rb +121 -0
  98. data/lib/active_merchant/billing/gateways/secure_net.rb +330 -0
  99. data/lib/active_merchant/billing/gateways/secure_pay.rb +31 -0
  100. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +280 -0
  101. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +113 -0
  102. data/lib/active_merchant/billing/gateways/skip_jack.rb +458 -0
  103. data/lib/active_merchant/billing/gateways/smart_ps.rb +271 -0
  104. data/lib/active_merchant/billing/gateways/stripe.rb +244 -0
  105. data/lib/active_merchant/billing/gateways/trans_first.rb +127 -0
  106. data/lib/active_merchant/billing/gateways/transax.rb +25 -0
  107. data/lib/active_merchant/billing/gateways/trust_commerce.rb +423 -0
  108. data/lib/active_merchant/billing/gateways/usa_epay.rb +23 -0
  109. data/lib/active_merchant/billing/gateways/usa_epay_advanced.rb +1496 -0
  110. data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +206 -0
  111. data/lib/active_merchant/billing/gateways/verifi.rb +233 -0
  112. data/lib/active_merchant/billing/gateways/viaklix.rb +189 -0
  113. data/lib/active_merchant/billing/gateways/wirecard.rb +318 -0
  114. data/lib/active_merchant/billing/gateways/worldpay.rb +280 -0
  115. data/lib/active_merchant/billing/integrations.rb +17 -0
  116. data/lib/active_merchant/billing/integrations/action_view_helper.rb +72 -0
  117. data/lib/active_merchant/billing/integrations/authorize_net_sim.rb +38 -0
  118. data/lib/active_merchant/billing/integrations/authorize_net_sim/helper.rb +228 -0
  119. data/lib/active_merchant/billing/integrations/authorize_net_sim/notification.rb +340 -0
  120. data/lib/active_merchant/billing/integrations/bogus.rb +23 -0
  121. data/lib/active_merchant/billing/integrations/bogus/helper.rb +17 -0
  122. data/lib/active_merchant/billing/integrations/bogus/notification.rb +11 -0
  123. data/lib/active_merchant/billing/integrations/bogus/return.rb +10 -0
  124. data/lib/active_merchant/billing/integrations/chronopay.rb +23 -0
  125. data/lib/active_merchant/billing/integrations/chronopay/helper.rb +120 -0
  126. data/lib/active_merchant/billing/integrations/chronopay/notification.rb +158 -0
  127. data/lib/active_merchant/billing/integrations/chronopay/return.rb +10 -0
  128. data/lib/active_merchant/billing/integrations/direc_pay.rb +41 -0
  129. data/lib/active_merchant/billing/integrations/direc_pay/helper.rb +200 -0
  130. data/lib/active_merchant/billing/integrations/direc_pay/notification.rb +76 -0
  131. data/lib/active_merchant/billing/integrations/direc_pay/return.rb +32 -0
  132. data/lib/active_merchant/billing/integrations/direc_pay/status.rb +37 -0
  133. data/lib/active_merchant/billing/integrations/directebanking.rb +47 -0
  134. data/lib/active_merchant/billing/integrations/directebanking/helper.rb +90 -0
  135. data/lib/active_merchant/billing/integrations/directebanking/notification.rb +120 -0
  136. data/lib/active_merchant/billing/integrations/directebanking/return.rb +11 -0
  137. data/lib/active_merchant/billing/integrations/dwolla.rb +30 -0
  138. data/lib/active_merchant/billing/integrations/dwolla/helper.rb +31 -0
  139. data/lib/active_merchant/billing/integrations/dwolla/notification.rb +55 -0
  140. data/lib/active_merchant/billing/integrations/dwolla/return.rb +38 -0
  141. data/lib/active_merchant/billing/integrations/e_payment_plans.rb +48 -0
  142. data/lib/active_merchant/billing/integrations/e_payment_plans/helper.rb +34 -0
  143. data/lib/active_merchant/billing/integrations/e_payment_plans/notification.rb +84 -0
  144. data/lib/active_merchant/billing/integrations/gestpay.rb +25 -0
  145. data/lib/active_merchant/billing/integrations/gestpay/common.rb +42 -0
  146. data/lib/active_merchant/billing/integrations/gestpay/helper.rb +70 -0
  147. data/lib/active_merchant/billing/integrations/gestpay/notification.rb +85 -0
  148. data/lib/active_merchant/billing/integrations/gestpay/return.rb +10 -0
  149. data/lib/active_merchant/billing/integrations/helper.rb +113 -0
  150. data/lib/active_merchant/billing/integrations/hi_trust.rb +27 -0
  151. data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +58 -0
  152. data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +59 -0
  153. data/lib/active_merchant/billing/integrations/hi_trust/return.rb +67 -0
  154. data/lib/active_merchant/billing/integrations/moneybookers.rb +26 -0
  155. data/lib/active_merchant/billing/integrations/moneybookers/helper.rb +59 -0
  156. data/lib/active_merchant/billing/integrations/moneybookers/notification.rb +129 -0
  157. data/lib/active_merchant/billing/integrations/nochex.rb +88 -0
  158. data/lib/active_merchant/billing/integrations/nochex/helper.rb +68 -0
  159. data/lib/active_merchant/billing/integrations/nochex/notification.rb +94 -0
  160. data/lib/active_merchant/billing/integrations/nochex/return.rb +10 -0
  161. data/lib/active_merchant/billing/integrations/notification.rb +62 -0
  162. data/lib/active_merchant/billing/integrations/payflow_link.rb +21 -0
  163. data/lib/active_merchant/billing/integrations/payflow_link/helper.rb +100 -0
  164. data/lib/active_merchant/billing/integrations/payflow_link/notification.rb +78 -0
  165. data/lib/active_merchant/billing/integrations/paypal.rb +39 -0
  166. data/lib/active_merchant/billing/integrations/paypal/helper.rb +119 -0
  167. data/lib/active_merchant/billing/integrations/paypal/notification.rb +154 -0
  168. data/lib/active_merchant/billing/integrations/paypal/return.rb +10 -0
  169. data/lib/active_merchant/billing/integrations/quickpay.rb +21 -0
  170. data/lib/active_merchant/billing/integrations/quickpay/helper.rb +72 -0
  171. data/lib/active_merchant/billing/integrations/quickpay/notification.rb +74 -0
  172. data/lib/active_merchant/billing/integrations/return.rb +42 -0
  173. data/lib/active_merchant/billing/integrations/sage_pay_form.rb +37 -0
  174. data/lib/active_merchant/billing/integrations/sage_pay_form/encryption.rb +33 -0
  175. data/lib/active_merchant/billing/integrations/sage_pay_form/helper.rb +127 -0
  176. data/lib/active_merchant/billing/integrations/sage_pay_form/notification.rb +210 -0
  177. data/lib/active_merchant/billing/integrations/sage_pay_form/return.rb +31 -0
  178. data/lib/active_merchant/billing/integrations/two_checkout.rb +22 -0
  179. data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +59 -0
  180. data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +114 -0
  181. data/lib/active_merchant/billing/integrations/two_checkout/return.rb +17 -0
  182. data/lib/active_merchant/billing/integrations/valitor.rb +33 -0
  183. data/lib/active_merchant/billing/integrations/valitor/helper.rb +86 -0
  184. data/lib/active_merchant/billing/integrations/valitor/notification.rb +13 -0
  185. data/lib/active_merchant/billing/integrations/valitor/response_fields.rb +97 -0
  186. data/lib/active_merchant/billing/integrations/valitor/return.rb +13 -0
  187. data/lib/active_merchant/billing/integrations/world_pay.rb +27 -0
  188. data/lib/active_merchant/billing/integrations/world_pay/helper.rb +100 -0
  189. data/lib/active_merchant/billing/integrations/world_pay/notification.rb +160 -0
  190. data/lib/active_merchant/billing/response.rb +32 -0
  191. data/lib/active_merchant/version.rb +3 -0
  192. data/lib/activemerchant.rb +1 -0
  193. data/lib/support/gateway_support.rb +58 -0
  194. data/lib/support/outbound_hosts.rb +25 -0
  195. metadata +411 -0
@@ -0,0 +1,13 @@
1
+ require 'active_merchant/billing/integrations/valitor/response_fields'
2
+
3
+ module ActiveMerchant #:nodoc:
4
+ module Billing #:nodoc:
5
+ module Integrations #:nodoc:
6
+ module Valitor
7
+ class Return < ActiveMerchant::Billing::Integrations::Return
8
+ include ResponseFields
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,27 @@
1
+ require File.dirname(__FILE__) + '/world_pay/helper.rb'
2
+ require File.dirname(__FILE__) + '/world_pay/notification.rb'
3
+
4
+ module ActiveMerchant #:nodoc:
5
+ module Billing #:nodoc:
6
+ module Integrations #:nodoc:
7
+ module WorldPay
8
+
9
+ # production and test have the same endpoint
10
+ mattr_accessor :production_url
11
+ self.production_url = 'https://secure.wp3.rbsworldpay.com/wcc/purchase'
12
+
13
+ def self.service_url
14
+ production_url
15
+ end
16
+
17
+ def self.notification(post, options = {})
18
+ Notification.new(post, options)
19
+ end
20
+
21
+ def self.return(post, options = {})
22
+ Return.new(post, options)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,100 @@
1
+ module ActiveMerchant #:nodoc:
2
+ module Billing #:nodoc:
3
+ module Integrations #:nodoc:
4
+ module WorldPay
5
+ class Helper < ActiveMerchant::Billing::Integrations::Helper
6
+ mapping :account, 'instId'
7
+ mapping :amount, 'amount'
8
+ mapping :order, 'cartId'
9
+ mapping :currency, 'currency'
10
+
11
+ mapping :customer, :email => 'email',
12
+ :phone => 'tel'
13
+
14
+ mapping :billing_address, :zip => 'postcode',
15
+ :country => 'country'
16
+
17
+ mapping :description, 'desc'
18
+ mapping :notify_url, 'MC_callback'
19
+
20
+
21
+ # WorldPay supports two different test modes - :always_succeed and :always_fail
22
+ def initialize(order, account, options = {})
23
+ super
24
+
25
+ if ActiveMerchant::Billing::Base.integration_mode == :test || options[:test]
26
+ test_mode = case options[:test]
27
+ when :always_fail
28
+ 101
29
+ when false
30
+ 0
31
+ else
32
+ 100
33
+ end
34
+ add_field('testMode', test_mode.to_s)
35
+ elsif ActiveMerchant::Billing::Base.integration_mode == :always_succeed
36
+ add_field('testMode', '100')
37
+ elsif ActiveMerchant::Billing::Base.integration_mode == :always_fail
38
+ add_field('testMode', '101')
39
+ end
40
+ end
41
+
42
+ # WorldPay only supports a single address field so we
43
+ # have to concat together - lines are separated using &#10;
44
+ def billing_address(params={})
45
+ add_field(mappings[:billing_address][:zip], params[:zip])
46
+ add_field(mappings[:billing_address][:country], lookup_country_code(params[:country]))
47
+
48
+ address = [params[:address1], params[:address2], params[:city], params[:state]].compact
49
+ add_field('address', address.join('&#10;'))
50
+ end
51
+
52
+ # WorldPay only supports a single name field so we have to concat
53
+ def customer(params={})
54
+ add_field(mappings[:customer][:email], params[:email])
55
+ add_field(mappings[:customer][:phone], params[:phone])
56
+ add_field('name', "#{params[:first_name]} #{params[:last_name]}")
57
+ end
58
+
59
+ # Support for a MD5 hash of selected fields to prevent tampering
60
+ # For futher information read the tech note at the address below:
61
+ # http://support.worldpay.com/kb/integration_guides/junior/integration/help/tech_notes/sjig_tn_009.html
62
+ def encrypt(secret, fields = [:amount, :currency, :account, :order])
63
+ signature_fields = fields.collect{ |field| mappings[field] }
64
+ add_field('signatureFields', signature_fields.join(':'))
65
+
66
+ field_values = fields.collect{ |field| form_fields[mappings[field]] }
67
+ signature = "#{secret}:#{field_values.join(':')}"
68
+ add_field('signature', Digest::MD5.hexdigest(signature))
69
+ end
70
+
71
+ # Add a time window for which the payment can be completed. Read the link below for how they work
72
+ # http://support.worldpay.com/kb/integration_guides/junior/integration/help/appendicies/sjig_10100.html
73
+ def valid_from(from_time)
74
+ add_field('authValidFrom', from_time.to_i.to_s + '000')
75
+ end
76
+
77
+ def valid_to(to_time)
78
+ add_field('authValidTo', to_time.to_i.to_s + '000')
79
+ end
80
+
81
+ # WorldPay supports the passing of custom parameters prefixed with the following:
82
+ # C_ : These parameters can be used in the response pages hosted on WorldPay's site
83
+ # M_ : These parameters are passed through to the callback script (if enabled)
84
+ # MC_ or CM_ : These parameters are availble both in the response and callback contexts
85
+ def response_params(params={})
86
+ params.each{|k,v| add_field("C_#{k}",v)}
87
+ end
88
+
89
+ def callback_params(params={})
90
+ params.each{|k,v| add_field("M_#{k}",v)}
91
+ end
92
+
93
+ def combined_params(params={})
94
+ params.each{|k,v| add_field("MC_#{k}",v)}
95
+ end
96
+ end
97
+ end
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,160 @@
1
+ module ActiveMerchant #:nodoc:
2
+ module Billing #:nodoc:
3
+ module Integrations #:nodoc:
4
+ module WorldPay
5
+ class Notification < ActiveMerchant::Billing::Integrations::Notification
6
+ def complete?
7
+ status == 'Completed'
8
+ end
9
+
10
+ def account
11
+ params['instId']
12
+ end
13
+
14
+ def item_id
15
+ params['cartId']
16
+ end
17
+
18
+ def transaction_id
19
+ params['transId']
20
+ end
21
+
22
+ # Time this payment was received by the client in UTC time.
23
+ def received_at
24
+ Time.at(params['transTime'].to_i / 1000).utc
25
+ end
26
+
27
+ # Callback password set in the WorldPay CMS
28
+ def security_key
29
+ params['callbackPW']
30
+ end
31
+
32
+ # the money amount we received in X.2 decimal.
33
+ def gross
34
+ params['authAmount']
35
+ end
36
+
37
+ def currency
38
+ params['authCurrency']
39
+ end
40
+
41
+ # Was this a test transaction?
42
+ def test?
43
+ params.key?('testMode') && params['testMode'] != '0'
44
+ end
45
+
46
+ def status
47
+ params['transStatus'] == 'Y' ? 'Completed' : 'Cancelled'
48
+ end
49
+
50
+ def name
51
+ params['name']
52
+ end
53
+
54
+ def address
55
+ params['address']
56
+ end
57
+
58
+ def postcode
59
+ params['postcode']
60
+ end
61
+
62
+ def country
63
+ params['country']
64
+ end
65
+
66
+ def phone_number
67
+ params['tel']
68
+ end
69
+
70
+ def fax_number
71
+ params['fax']
72
+ end
73
+
74
+ def email_address
75
+ params['email']
76
+ end
77
+
78
+ def card_type
79
+ params['cardType']
80
+ end
81
+
82
+ # WorldPay extended fraud checks returned as a 4 character string
83
+ # 1st char: Credit card CVV check
84
+ # 2nd char: Postcode AVS check
85
+ # 3rd char: Address AVS check
86
+ # 4th char: Country comparison check
87
+ # Possible values are:
88
+ # :not_supported - 0
89
+ # :not_checked - 1
90
+ # :matched - 2
91
+ # :not_matched - 4
92
+ # :partial_match - 8
93
+ def cvv_status
94
+ return avs_value_to_symbol(params['AVS'][0].chr)
95
+ end
96
+
97
+ def postcode_status
98
+ return avs_value_to_symbol(params['AVS'][1].chr)
99
+ end
100
+
101
+ def address_status
102
+ return avs_value_to_symbol(params['AVS'][2].chr)
103
+ end
104
+
105
+ def country_status
106
+ return avs_value_to_symbol(params['AVS'][3].chr)
107
+ end
108
+
109
+ def acknowledge
110
+ return true
111
+ end
112
+
113
+ # WorldPay supports the passing of custom parameters through to the callback script
114
+ def custom_params
115
+ return @custom_params ||= read_custom_params
116
+ end
117
+
118
+
119
+ private
120
+
121
+ # Take the posted data and move the relevant data into a hash
122
+ def parse(post)
123
+ @raw = post
124
+ for line in post.split('&')
125
+ key, value = *line.scan( %r{^(\w+)\=(.*)$} ).flatten
126
+ params[key] = value
127
+ end
128
+ end
129
+
130
+ # Read the custom params into a hash
131
+ def read_custom_params
132
+ custom = {}
133
+ params.each do |key, value|
134
+ if /\A(M_|MC_|CM_)/ === key
135
+ custom[key.gsub(/\A(M_|MC_|CM_)/, '').to_sym] = value
136
+ end
137
+ end
138
+ custom
139
+ end
140
+
141
+ # Convert a AVS value to a symbol - see above for more about AVS
142
+ def avs_value_to_symbol(value)
143
+ case value.to_s
144
+ when '8'
145
+ :partial_match
146
+ when '4'
147
+ :no_match
148
+ when '2'
149
+ :matched
150
+ when '1'
151
+ :not_checked
152
+ else
153
+ :not_supported
154
+ end
155
+ end
156
+ end
157
+ end
158
+ end
159
+ end
160
+ end
@@ -0,0 +1,32 @@
1
+ module ActiveMerchant #:nodoc:
2
+ module Billing #:nodoc:
3
+
4
+ class Error < ActiveMerchantError #:nodoc:
5
+ end
6
+
7
+ class Response
8
+ attr_reader :params, :message, :test, :authorization, :avs_result, :cvv_result
9
+
10
+ def success?
11
+ @success
12
+ end
13
+
14
+ def test?
15
+ @test
16
+ end
17
+
18
+ def fraud_review?
19
+ @fraud_review
20
+ end
21
+
22
+ def initialize(success, message, params = {}, options = {})
23
+ @success, @message, @params = success, message, params.stringify_keys
24
+ @test = options[:test] || false
25
+ @authorization = options[:authorization]
26
+ @fraud_review = options[:fraud_review]
27
+ @avs_result = AVSResult.new(options[:avs_result]).to_hash
28
+ @cvv_result = CVVResult.new(options[:cvv_result]).to_hash
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,3 @@
1
+ module ActiveMerchant
2
+ VERSION = "1.20.4"
3
+ end
@@ -0,0 +1 @@
1
+ require 'active_merchant'
@@ -0,0 +1,58 @@
1
+ require 'rubygems'
2
+ require 'active_support'
3
+ require 'active_merchant'
4
+
5
+
6
+ class GatewaySupport #:nodoc:
7
+ ACTIONS = [:purchase, :authorize, :capture, :void, :credit, :recurring]
8
+
9
+ include ActiveMerchant::Billing
10
+
11
+ attr_reader :gateways
12
+
13
+ def initialize
14
+ @gateways = Gateway.implementations.sort_by(&:name)
15
+ @gateways.delete(ActiveMerchant::Billing::BogusGateway)
16
+ end
17
+
18
+ def each_gateway
19
+ @gateways.each{|g| yield g }
20
+ end
21
+
22
+ def features
23
+ width = 15
24
+
25
+ print "Name".center(width + 20)
26
+ ACTIONS.each{|f| print "#{f.to_s.capitalize.center(width)}" }
27
+ puts
28
+
29
+ each_gateway do |g|
30
+ print "#{g.display_name.ljust(width + 20)}"
31
+ ACTIONS.each do |f|
32
+ print "#{(g.instance_methods.include?(f.to_s) ? "Y" : "N").center(width)}"
33
+ end
34
+ puts
35
+ end
36
+ end
37
+
38
+ def to_rdoc
39
+ each_gateway do |g|
40
+ puts "* {#{g.display_name}}[#{g.homepage_url}] - #{g.supported_countries.join(', ')}"
41
+ end
42
+ end
43
+
44
+ def to_textile
45
+ each_gateway do |g|
46
+ puts %/ * "#{g.display_name}":#{g.homepage_url} [#{g.supported_countries.join(', ')}]/
47
+ end
48
+ end
49
+
50
+ def to_s
51
+ each_gateway do |g|
52
+ puts "#{g.display_name} - #{g.homepage_url} [#{g.supported_countries.join(', ')}]"
53
+ end
54
+ end
55
+ end
56
+
57
+
58
+
@@ -0,0 +1,25 @@
1
+ require 'uri'
2
+ require 'set'
3
+
4
+ class OutboundHosts
5
+ def self.list
6
+ uris = Set.new
7
+
8
+ Dir['lib/**/*.rb'].each do |file|
9
+ content = File.read(file)
10
+
11
+ content.each_line do |line|
12
+ next if line =~ /homepage_url/
13
+
14
+ if line =~ /("|')(https:\/\/.*)("|')/
15
+ uri = URI.parse($2)
16
+ uris << [uri.host, uri.port]
17
+ end
18
+ end
19
+ end
20
+
21
+ uris.each do |uri|
22
+ puts "#{uri.first} #{uri.last}"
23
+ end
24
+ end
25
+ end
metadata ADDED
@@ -0,0 +1,411 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tlconnor-activemerchant
3
+ version: !ruby/object:Gem::Version
4
+ hash: 79
5
+ prerelease:
6
+ segments:
7
+ - 1
8
+ - 20
9
+ - 4
10
+ version: 1.20.4
11
+ platform: ruby
12
+ authors:
13
+ - Tobias Luetke
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain:
17
+ - gem-public_cert.pem
18
+ date: 2012-03-07 00:00:00 +13:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: activesupport
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 21
30
+ segments:
31
+ - 2
32
+ - 3
33
+ - 11
34
+ version: 2.3.11
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: i18n
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :runtime
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: money
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - <=
58
+ - !ruby/object:Gem::Version
59
+ hash: 25
60
+ segments:
61
+ - 3
62
+ - 7
63
+ - 1
64
+ version: 3.7.1
65
+ type: :runtime
66
+ version_requirements: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ name: builder
69
+ prerelease: false
70
+ requirement: &id004 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 15
76
+ segments:
77
+ - 2
78
+ - 0
79
+ - 0
80
+ version: 2.0.0
81
+ type: :runtime
82
+ version_requirements: *id004
83
+ - !ruby/object:Gem::Dependency
84
+ name: json
85
+ prerelease: false
86
+ requirement: &id005 !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ hash: 1
92
+ segments:
93
+ - 1
94
+ - 5
95
+ - 1
96
+ version: 1.5.1
97
+ type: :runtime
98
+ version_requirements: *id005
99
+ - !ruby/object:Gem::Dependency
100
+ name: active_utils
101
+ prerelease: false
102
+ requirement: &id006 !ruby/object:Gem::Requirement
103
+ none: false
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ hash: 19
108
+ segments:
109
+ - 1
110
+ - 0
111
+ - 2
112
+ version: 1.0.2
113
+ type: :runtime
114
+ version_requirements: *id006
115
+ - !ruby/object:Gem::Dependency
116
+ name: rake
117
+ prerelease: false
118
+ requirement: &id007 !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ hash: 3
124
+ segments:
125
+ - 0
126
+ version: "0"
127
+ type: :development
128
+ version_requirements: *id007
129
+ - !ruby/object:Gem::Dependency
130
+ name: mocha
131
+ prerelease: false
132
+ requirement: &id008 !ruby/object:Gem::Requirement
133
+ none: false
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ hash: 3
138
+ segments:
139
+ - 0
140
+ version: "0"
141
+ type: :development
142
+ version_requirements: *id008
143
+ - !ruby/object:Gem::Dependency
144
+ name: rails
145
+ prerelease: false
146
+ requirement: &id009 !ruby/object:Gem::Requirement
147
+ none: false
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ hash: 21
152
+ segments:
153
+ - 2
154
+ - 3
155
+ - 11
156
+ version: 2.3.11
157
+ type: :development
158
+ version_requirements: *id009
159
+ - !ruby/object:Gem::Dependency
160
+ name: rubigen
161
+ prerelease: false
162
+ requirement: &id010 !ruby/object:Gem::Requirement
163
+ none: false
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ hash: 3
168
+ segments:
169
+ - 0
170
+ version: "0"
171
+ type: :development
172
+ version_requirements: *id010
173
+ description: Active Merchant is a simple payment abstraction library used in and sponsored by Shopify. It is written by Tobias Luetke, Cody Fauser, and contributors. The aim of the project is to feel natural to Ruby users and to abstract as many parts as possible away from the user to offer a consistent interface across all supported gateways.
174
+ email: tobi@leetsoft.com
175
+ executables: []
176
+
177
+ extensions: []
178
+
179
+ extra_rdoc_files: []
180
+
181
+ files:
182
+ - CHANGELOG
183
+ - MIT-LICENSE
184
+ - CONTRIBUTORS
185
+ - gem-public_cert.pem
186
+ - lib/active_merchant/billing/avs_result.rb
187
+ - lib/active_merchant/billing/base.rb
188
+ - lib/active_merchant/billing/check.rb
189
+ - lib/active_merchant/billing/credit_card.rb
190
+ - lib/active_merchant/billing/credit_card_formatting.rb
191
+ - lib/active_merchant/billing/credit_card_methods.rb
192
+ - lib/active_merchant/billing/cvv_result.rb
193
+ - lib/active_merchant/billing/expiry_date.rb
194
+ - lib/active_merchant/billing/gateway.rb
195
+ - lib/active_merchant/billing/gateways/authorize_net.rb
196
+ - lib/active_merchant/billing/gateways/authorize_net_cim.rb
197
+ - lib/active_merchant/billing/gateways/barclays_epdq.rb
198
+ - lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb
199
+ - lib/active_merchant/billing/gateways/beanstream.rb
200
+ - lib/active_merchant/billing/gateways/beanstream_interac.rb
201
+ - lib/active_merchant/billing/gateways/blue_pay.rb
202
+ - lib/active_merchant/billing/gateways/bogus.rb
203
+ - lib/active_merchant/billing/gateways/braintree/braintree_common.rb
204
+ - lib/active_merchant/billing/gateways/braintree.rb
205
+ - lib/active_merchant/billing/gateways/braintree_blue.rb
206
+ - lib/active_merchant/billing/gateways/braintree_orange.rb
207
+ - lib/active_merchant/billing/gateways/card_save.rb
208
+ - lib/active_merchant/billing/gateways/card_stream.rb
209
+ - lib/active_merchant/billing/gateways/certo_direct.rb
210
+ - lib/active_merchant/billing/gateways/cyber_source.rb
211
+ - lib/active_merchant/billing/gateways/data_cash.rb
212
+ - lib/active_merchant/billing/gateways/efsnet.rb
213
+ - lib/active_merchant/billing/gateways/elavon.rb
214
+ - lib/active_merchant/billing/gateways/epay.rb
215
+ - lib/active_merchant/billing/gateways/eway.rb
216
+ - lib/active_merchant/billing/gateways/eway_managed.rb
217
+ - lib/active_merchant/billing/gateways/exact.rb
218
+ - lib/active_merchant/billing/gateways/federated_canada.rb
219
+ - lib/active_merchant/billing/gateways/first_pay.rb
220
+ - lib/active_merchant/billing/gateways/garanti.rb
221
+ - lib/active_merchant/billing/gateways/ideal/ideal_base.rb
222
+ - lib/active_merchant/billing/gateways/ideal/ideal_rabobank.pem
223
+ - lib/active_merchant/billing/gateways/ideal/ideal_response.rb
224
+ - lib/active_merchant/billing/gateways/ideal_rabobank.rb
225
+ - lib/active_merchant/billing/gateways/inspire.rb
226
+ - lib/active_merchant/billing/gateways/instapay.rb
227
+ - lib/active_merchant/billing/gateways/iridium.rb
228
+ - lib/active_merchant/billing/gateways/jetpay.rb
229
+ - lib/active_merchant/billing/gateways/linkpoint.rb
230
+ - lib/active_merchant/billing/gateways/merchant_e_solutions.rb
231
+ - lib/active_merchant/billing/gateways/merchant_ware.rb
232
+ - lib/active_merchant/billing/gateways/modern_payments.rb
233
+ - lib/active_merchant/billing/gateways/modern_payments_cim.rb
234
+ - lib/active_merchant/billing/gateways/moneris.rb
235
+ - lib/active_merchant/billing/gateways/nab_transact.rb
236
+ - lib/active_merchant/billing/gateways/net_registry.rb
237
+ - lib/active_merchant/billing/gateways/netaxept.rb
238
+ - lib/active_merchant/billing/gateways/netbilling.rb
239
+ - lib/active_merchant/billing/gateways/nmi.rb
240
+ - lib/active_merchant/billing/gateways/ogone.rb
241
+ - lib/active_merchant/billing/gateways/optimal_payment.rb
242
+ - lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
243
+ - lib/active_merchant/billing/gateways/orbital.rb
244
+ - lib/active_merchant/billing/gateways/pay_junction.rb
245
+ - lib/active_merchant/billing/gateways/pay_secure.rb
246
+ - lib/active_merchant/billing/gateways/paybox_direct.rb
247
+ - lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb
248
+ - lib/active_merchant/billing/gateways/payflow/payflow_express_response.rb
249
+ - lib/active_merchant/billing/gateways/payflow/payflow_response.rb
250
+ - lib/active_merchant/billing/gateways/payflow.rb
251
+ - lib/active_merchant/billing/gateways/payflow_express.rb
252
+ - lib/active_merchant/billing/gateways/payflow_express_uk.rb
253
+ - lib/active_merchant/billing/gateways/payflow_uk.rb
254
+ - lib/active_merchant/billing/gateways/payment_express.rb
255
+ - lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb
256
+ - lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb
257
+ - lib/active_merchant/billing/gateways/paypal.rb
258
+ - lib/active_merchant/billing/gateways/paypal_ca.rb
259
+ - lib/active_merchant/billing/gateways/paypal_express.rb
260
+ - lib/active_merchant/billing/gateways/paypal_express_common.rb
261
+ - lib/active_merchant/billing/gateways/paystation.rb
262
+ - lib/active_merchant/billing/gateways/plugnpay.rb
263
+ - lib/active_merchant/billing/gateways/psigate.rb
264
+ - lib/active_merchant/billing/gateways/psl_card.rb
265
+ - lib/active_merchant/billing/gateways/qbms.rb
266
+ - lib/active_merchant/billing/gateways/quantum.rb
267
+ - lib/active_merchant/billing/gateways/quickpay.rb
268
+ - lib/active_merchant/billing/gateways/realex.rb
269
+ - lib/active_merchant/billing/gateways/sage/sage_bankcard.rb
270
+ - lib/active_merchant/billing/gateways/sage/sage_core.rb
271
+ - lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb
272
+ - lib/active_merchant/billing/gateways/sage.rb
273
+ - lib/active_merchant/billing/gateways/sage_pay.rb
274
+ - lib/active_merchant/billing/gateways/sallie_mae.rb
275
+ - lib/active_merchant/billing/gateways/samurai.rb
276
+ - lib/active_merchant/billing/gateways/secure_net.rb
277
+ - lib/active_merchant/billing/gateways/secure_pay.rb
278
+ - lib/active_merchant/billing/gateways/secure_pay_au.rb
279
+ - lib/active_merchant/billing/gateways/secure_pay_tech.rb
280
+ - lib/active_merchant/billing/gateways/skip_jack.rb
281
+ - lib/active_merchant/billing/gateways/smart_ps.rb
282
+ - lib/active_merchant/billing/gateways/stripe.rb
283
+ - lib/active_merchant/billing/gateways/trans_first.rb
284
+ - lib/active_merchant/billing/gateways/transax.rb
285
+ - lib/active_merchant/billing/gateways/trust_commerce.rb
286
+ - lib/active_merchant/billing/gateways/usa_epay.rb
287
+ - lib/active_merchant/billing/gateways/usa_epay_advanced.rb
288
+ - lib/active_merchant/billing/gateways/usa_epay_transaction.rb
289
+ - lib/active_merchant/billing/gateways/verifi.rb
290
+ - lib/active_merchant/billing/gateways/viaklix.rb
291
+ - lib/active_merchant/billing/gateways/wirecard.rb
292
+ - lib/active_merchant/billing/gateways/worldpay.rb
293
+ - lib/active_merchant/billing/gateways.rb
294
+ - lib/active_merchant/billing/integrations/action_view_helper.rb
295
+ - lib/active_merchant/billing/integrations/authorize_net_sim/helper.rb
296
+ - lib/active_merchant/billing/integrations/authorize_net_sim/notification.rb
297
+ - lib/active_merchant/billing/integrations/authorize_net_sim.rb
298
+ - lib/active_merchant/billing/integrations/bogus/helper.rb
299
+ - lib/active_merchant/billing/integrations/bogus/notification.rb
300
+ - lib/active_merchant/billing/integrations/bogus/return.rb
301
+ - lib/active_merchant/billing/integrations/bogus.rb
302
+ - lib/active_merchant/billing/integrations/chronopay/helper.rb
303
+ - lib/active_merchant/billing/integrations/chronopay/notification.rb
304
+ - lib/active_merchant/billing/integrations/chronopay/return.rb
305
+ - lib/active_merchant/billing/integrations/chronopay.rb
306
+ - lib/active_merchant/billing/integrations/direc_pay/helper.rb
307
+ - lib/active_merchant/billing/integrations/direc_pay/notification.rb
308
+ - lib/active_merchant/billing/integrations/direc_pay/return.rb
309
+ - lib/active_merchant/billing/integrations/direc_pay/status.rb
310
+ - lib/active_merchant/billing/integrations/direc_pay.rb
311
+ - lib/active_merchant/billing/integrations/directebanking/helper.rb
312
+ - lib/active_merchant/billing/integrations/directebanking/notification.rb
313
+ - lib/active_merchant/billing/integrations/directebanking/return.rb
314
+ - lib/active_merchant/billing/integrations/directebanking.rb
315
+ - lib/active_merchant/billing/integrations/dwolla/helper.rb
316
+ - lib/active_merchant/billing/integrations/dwolla/notification.rb
317
+ - lib/active_merchant/billing/integrations/dwolla/return.rb
318
+ - lib/active_merchant/billing/integrations/dwolla.rb
319
+ - lib/active_merchant/billing/integrations/e_payment_plans/helper.rb
320
+ - lib/active_merchant/billing/integrations/e_payment_plans/notification.rb
321
+ - lib/active_merchant/billing/integrations/e_payment_plans.rb
322
+ - lib/active_merchant/billing/integrations/gestpay/common.rb
323
+ - lib/active_merchant/billing/integrations/gestpay/helper.rb
324
+ - lib/active_merchant/billing/integrations/gestpay/notification.rb
325
+ - lib/active_merchant/billing/integrations/gestpay/return.rb
326
+ - lib/active_merchant/billing/integrations/gestpay.rb
327
+ - lib/active_merchant/billing/integrations/helper.rb
328
+ - lib/active_merchant/billing/integrations/hi_trust/helper.rb
329
+ - lib/active_merchant/billing/integrations/hi_trust/notification.rb
330
+ - lib/active_merchant/billing/integrations/hi_trust/return.rb
331
+ - lib/active_merchant/billing/integrations/hi_trust.rb
332
+ - lib/active_merchant/billing/integrations/moneybookers/helper.rb
333
+ - lib/active_merchant/billing/integrations/moneybookers/notification.rb
334
+ - lib/active_merchant/billing/integrations/moneybookers.rb
335
+ - lib/active_merchant/billing/integrations/nochex/helper.rb
336
+ - lib/active_merchant/billing/integrations/nochex/notification.rb
337
+ - lib/active_merchant/billing/integrations/nochex/return.rb
338
+ - lib/active_merchant/billing/integrations/nochex.rb
339
+ - lib/active_merchant/billing/integrations/notification.rb
340
+ - lib/active_merchant/billing/integrations/payflow_link/helper.rb
341
+ - lib/active_merchant/billing/integrations/payflow_link/notification.rb
342
+ - lib/active_merchant/billing/integrations/payflow_link.rb
343
+ - lib/active_merchant/billing/integrations/paypal/helper.rb
344
+ - lib/active_merchant/billing/integrations/paypal/notification.rb
345
+ - lib/active_merchant/billing/integrations/paypal/return.rb
346
+ - lib/active_merchant/billing/integrations/paypal.rb
347
+ - lib/active_merchant/billing/integrations/quickpay/helper.rb
348
+ - lib/active_merchant/billing/integrations/quickpay/notification.rb
349
+ - lib/active_merchant/billing/integrations/quickpay.rb
350
+ - lib/active_merchant/billing/integrations/return.rb
351
+ - lib/active_merchant/billing/integrations/sage_pay_form/encryption.rb
352
+ - lib/active_merchant/billing/integrations/sage_pay_form/helper.rb
353
+ - lib/active_merchant/billing/integrations/sage_pay_form/notification.rb
354
+ - lib/active_merchant/billing/integrations/sage_pay_form/return.rb
355
+ - lib/active_merchant/billing/integrations/sage_pay_form.rb
356
+ - lib/active_merchant/billing/integrations/two_checkout/helper.rb
357
+ - lib/active_merchant/billing/integrations/two_checkout/notification.rb
358
+ - lib/active_merchant/billing/integrations/two_checkout/return.rb
359
+ - lib/active_merchant/billing/integrations/two_checkout.rb
360
+ - lib/active_merchant/billing/integrations/valitor/helper.rb
361
+ - lib/active_merchant/billing/integrations/valitor/notification.rb
362
+ - lib/active_merchant/billing/integrations/valitor/response_fields.rb
363
+ - lib/active_merchant/billing/integrations/valitor/return.rb
364
+ - lib/active_merchant/billing/integrations/valitor.rb
365
+ - lib/active_merchant/billing/integrations/world_pay/helper.rb
366
+ - lib/active_merchant/billing/integrations/world_pay/notification.rb
367
+ - lib/active_merchant/billing/integrations/world_pay.rb
368
+ - lib/active_merchant/billing/integrations.rb
369
+ - lib/active_merchant/billing/response.rb
370
+ - lib/active_merchant/billing.rb
371
+ - lib/active_merchant/version.rb
372
+ - lib/active_merchant.rb
373
+ - lib/activemerchant.rb
374
+ - lib/support/gateway_support.rb
375
+ - lib/support/outbound_hosts.rb
376
+ has_rdoc: true
377
+ homepage: http://activemerchant.org/
378
+ licenses: []
379
+
380
+ post_install_message:
381
+ rdoc_options: []
382
+
383
+ require_paths:
384
+ - lib
385
+ required_ruby_version: !ruby/object:Gem::Requirement
386
+ none: false
387
+ requirements:
388
+ - - ">="
389
+ - !ruby/object:Gem::Version
390
+ hash: 3
391
+ segments:
392
+ - 0
393
+ version: "0"
394
+ required_rubygems_version: !ruby/object:Gem::Requirement
395
+ none: false
396
+ requirements:
397
+ - - ">="
398
+ - !ruby/object:Gem::Version
399
+ hash: 3
400
+ segments:
401
+ - 0
402
+ version: "0"
403
+ requirements: []
404
+
405
+ rubyforge_project: activemerchant
406
+ rubygems_version: 1.6.2
407
+ signing_key:
408
+ specification_version: 3
409
+ summary: Framework and tools for dealing with credit card transactions.
410
+ test_files: []
411
+