bitfluent-activemerchant 1.5.1.1 → 1.15.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +168 -0
- data/CONTRIBUTORS +96 -1
- data/README.rdoc +33 -5
- data/lib/active_merchant.rb +12 -0
- data/lib/active_merchant/billing/credit_card.rb +59 -46
- data/lib/active_merchant/billing/credit_card_methods.rb +3 -3
- data/lib/active_merchant/billing/gateway.rb +16 -9
- data/lib/active_merchant/billing/gateways/authorize_net.rb +19 -9
- data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +134 -12
- data/lib/active_merchant/billing/gateways/barclays_epdq.rb +309 -0
- data/lib/active_merchant/billing/gateways/beanstream.rb +39 -2
- data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +64 -26
- data/lib/active_merchant/billing/gateways/blue_pay.rb +11 -0
- data/lib/active_merchant/billing/gateways/bogus.rb +33 -3
- data/lib/active_merchant/billing/gateways/braintree.rb +11 -11
- data/lib/active_merchant/billing/gateways/braintree/braintree_common.rb +9 -0
- data/lib/active_merchant/billing/gateways/braintree_blue.rb +293 -0
- data/lib/active_merchant/billing/gateways/braintree_orange.rb +17 -0
- data/lib/active_merchant/billing/gateways/cyber_source.rb +5 -1
- data/lib/active_merchant/billing/gateways/data_cash.rb +6 -2
- data/lib/active_merchant/billing/gateways/efsnet.rb +8 -2
- data/lib/active_merchant/billing/gateways/epay.rb +268 -0
- data/lib/active_merchant/billing/gateways/eway_managed.rb +231 -0
- data/lib/active_merchant/billing/gateways/federated_canada.rb +168 -0
- data/lib/active_merchant/billing/gateways/first_pay.rb +8 -3
- data/lib/active_merchant/billing/gateways/garanti.rb +132 -92
- data/lib/active_merchant/billing/gateways/ideal/ideal_base.rb +250 -0
- data/lib/active_merchant/billing/gateways/ideal/ideal_rabobank.pem +13 -0
- data/lib/active_merchant/billing/gateways/ideal/ideal_response.rb +29 -0
- data/lib/active_merchant/billing/gateways/ideal_rabobank.rb +55 -0
- data/lib/active_merchant/billing/gateways/inspire.rb +221 -0
- data/lib/active_merchant/billing/gateways/iridium.rb +258 -0
- data/lib/active_merchant/billing/gateways/jetpay.rb +12 -6
- data/lib/active_merchant/billing/gateways/linkpoint.rb +6 -1
- data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +10 -8
- data/lib/active_merchant/billing/gateways/merchant_ware.rb +7 -1
- data/lib/active_merchant/billing/gateways/moneris.rb +6 -2
- data/lib/active_merchant/billing/gateways/netaxept.rb +239 -0
- data/lib/active_merchant/billing/gateways/nmi.rb +13 -0
- data/lib/active_merchant/billing/gateways/ogone.rb +16 -3
- data/lib/active_merchant/billing/gateways/orbital.rb +317 -0
- data/lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb +46 -0
- data/lib/active_merchant/billing/gateways/pay_junction.rb +9 -9
- data/lib/active_merchant/billing/gateways/paybox_direct.rb +207 -0
- data/lib/active_merchant/billing/gateways/payflow.rb +26 -9
- data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +11 -11
- data/lib/active_merchant/billing/gateways/payflow_express.rb +122 -38
- data/lib/active_merchant/billing/gateways/payment_express.rb +7 -2
- data/lib/active_merchant/billing/gateways/paypal.rb +5 -5
- data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +33 -8
- data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +26 -15
- data/lib/active_merchant/billing/gateways/paypal_ca.rb +1 -1
- data/lib/active_merchant/billing/gateways/paypal_express.rb +55 -13
- data/lib/active_merchant/billing/gateways/paypal_express_common.rb +8 -3
- data/lib/active_merchant/billing/gateways/plugnpay.rb +9 -3
- data/lib/active_merchant/billing/gateways/psigate.rb +5 -0
- data/lib/active_merchant/billing/gateways/qbms.rb +295 -0
- data/lib/active_merchant/billing/gateways/quantum.rb +282 -0
- data/lib/active_merchant/billing/gateways/quickpay.rb +7 -2
- data/lib/active_merchant/billing/gateways/realex.rb +187 -76
- data/lib/active_merchant/billing/gateways/sage_pay.rb +16 -5
- data/lib/active_merchant/billing/gateways/secure_net.rb +330 -0
- data/lib/active_merchant/billing/gateways/secure_pay_au.rb +39 -3
- data/lib/active_merchant/billing/gateways/smart_ps.rb +9 -3
- data/lib/active_merchant/billing/gateways/trust_commerce.rb +7 -2
- data/lib/active_merchant/billing/gateways/usa_epay.rb +1 -1
- data/lib/active_merchant/billing/gateways/verifi.rb +6 -1
- data/lib/active_merchant/billing/gateways/viaklix.rb +1 -1
- data/lib/active_merchant/billing/gateways/worldpay.rb +280 -0
- data/lib/active_merchant/billing/integrations.rb +0 -12
- data/lib/active_merchant/billing/integrations/action_view_helper.rb +13 -24
- data/lib/active_merchant/billing/integrations/bogus.rb +2 -2
- data/lib/active_merchant/billing/integrations/chronopay.rb +2 -2
- data/lib/active_merchant/billing/integrations/direc_pay.rb +41 -0
- data/lib/active_merchant/billing/integrations/direc_pay/helper.rb +200 -0
- data/lib/active_merchant/billing/integrations/direc_pay/notification.rb +76 -0
- data/lib/active_merchant/billing/integrations/direc_pay/return.rb +32 -0
- data/lib/active_merchant/billing/integrations/direc_pay/status.rb +37 -0
- data/lib/active_merchant/billing/integrations/directebanking.rb +47 -0
- data/lib/active_merchant/billing/integrations/directebanking/helper.rb +90 -0
- data/lib/active_merchant/billing/integrations/directebanking/notification.rb +120 -0
- data/lib/active_merchant/billing/integrations/directebanking/return.rb +11 -0
- data/lib/active_merchant/billing/integrations/gestpay.rb +2 -2
- data/lib/active_merchant/billing/integrations/helper.rb +14 -11
- data/lib/active_merchant/billing/integrations/hi_trust.rb +2 -2
- data/lib/active_merchant/billing/integrations/ipay88.rb +4 -4
- data/lib/active_merchant/billing/integrations/moneybookers.rb +26 -0
- data/lib/active_merchant/billing/integrations/moneybookers/helper.rb +59 -0
- data/lib/active_merchant/billing/integrations/moneybookers/notification.rb +129 -0
- data/lib/active_merchant/billing/integrations/nochex.rb +2 -2
- data/lib/active_merchant/billing/integrations/notification.rb +1 -1
- data/lib/active_merchant/billing/integrations/paypal.rb +2 -2
- data/lib/active_merchant/billing/integrations/quickpay.rb +6 -2
- data/lib/active_merchant/billing/integrations/quickpay/helper.rb +1 -1
- data/lib/active_merchant/billing/integrations/quickpay/notification.rb +2 -2
- data/lib/active_merchant/billing/integrations/return.rb +10 -3
- data/lib/active_merchant/billing/integrations/sage_pay_form.rb +37 -0
- data/lib/active_merchant/billing/integrations/sage_pay_form/encryption.rb +33 -0
- data/lib/active_merchant/billing/integrations/sage_pay_form/helper.rb +111 -0
- data/lib/active_merchant/billing/integrations/sage_pay_form/notification.rb +210 -0
- data/lib/active_merchant/billing/integrations/sage_pay_form/return.rb +31 -0
- data/lib/active_merchant/billing/integrations/two_checkout.rb +2 -2
- data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +5 -5
- data/lib/active_merchant/billing/integrations/valitor.rb +33 -0
- data/lib/active_merchant/billing/integrations/valitor/helper.rb +86 -0
- data/lib/active_merchant/billing/integrations/valitor/notification.rb +13 -0
- data/lib/active_merchant/billing/integrations/valitor/response_fields.rb +88 -0
- data/lib/active_merchant/billing/integrations/valitor/return.rb +13 -0
- data/lib/active_merchant/billing/integrations/world_pay.rb +27 -0
- data/lib/active_merchant/billing/integrations/world_pay/helper.rb +100 -0
- data/lib/active_merchant/billing/integrations/world_pay/notification.rb +160 -0
- data/lib/active_merchant/common.rb +1 -1
- data/lib/active_merchant/common/connection.rb +13 -8
- data/lib/active_merchant/common/country.rb +15 -6
- data/lib/active_merchant/common/post_data.rb +1 -1
- data/lib/active_merchant/common/posts_data.rb +21 -5
- data/lib/active_merchant/common/utils.rb +4 -0
- data/lib/active_merchant/common/validateable.rb +20 -15
- data/lib/active_merchant/version.rb +3 -0
- data/lib/support/gateway_support.rb +1 -1
- metadata +65 -27
data/CHANGELOG
CHANGED
@@ -1,5 +1,173 @@
|
|
1
1
|
= ActiveMerchant CHANGELOG
|
2
2
|
|
3
|
+
== Version 1.15.0 (May 12, 2011)
|
4
|
+
* DirecPay: Fix address to not include address2 twice in some cases [Soleone]
|
5
|
+
* DirecPay: Send company if available [Soleone]
|
6
|
+
* Realex: Fix hash signature [ntalbott/Soleone]
|
7
|
+
* SecurePay AU: Update remote tests [ntalbott]
|
8
|
+
* SecurePay AU: Fix method arity for #capture, #refund, #credit and #void [Soleone]
|
9
|
+
* Barclays ePDQ: Make response parsing more robust [Soleone]
|
10
|
+
* Payflow Express: Add line item support [wolframarnold]
|
11
|
+
* Payflow Express: Add comment field support [wolframarnold]
|
12
|
+
* Payflow: Add more optional fields [wolframarnold]
|
13
|
+
* Beanstream/Paypal: Fix CREDIT_DEPRECATION_MESSAGE errors [Jonathan Rudenberg]
|
14
|
+
* BraintreeBlue: Return a hash instead of a transaction object [braintreeps]
|
15
|
+
* BraintreeBlue: Return proper AVS/CVV values [braintreeps]
|
16
|
+
* Bogus: Add #recurring [trwomey]
|
17
|
+
* Make Validateable compatible with ActiveModel [CodeMonkeySteve]
|
18
|
+
* Add DirectEBanking offsite gateway [Gerwin Brunner/Soleone]
|
19
|
+
* ActiveSupport 3.1 beta support [cgriego]
|
20
|
+
|
21
|
+
== Version 1.14.0 (Apr 29, 2011)
|
22
|
+
|
23
|
+
* SagePayForm: Implement #cancelled? for Return. [wisq]
|
24
|
+
* Add #cancelled? to Integrations::Return [wisq]
|
25
|
+
* Bogus gateway: Add refund support and better tests [wisq]
|
26
|
+
* Beanstream: Add support for storing cards [duffomelia]
|
27
|
+
* eWay: Add support for storing cards [duffomelia]
|
28
|
+
* Add validation mode to update profile request [Ken Miller]
|
29
|
+
* Authorize.net CIM: Add oldLiveMode [ntalbott]
|
30
|
+
* Authorize.net CIM: Add extra transaction types [Ken Miller]
|
31
|
+
* JetPay: gateway tweaks [ntalbott]
|
32
|
+
* Deprecate a bunch more #credit methods [ntalbott]
|
33
|
+
* RealEx: Add authorize/capture/credit/void [ntalbott]
|
34
|
+
* SecurePay AU: Add authorize/capture/credit/void [ntalbott]
|
35
|
+
* PayPal Express: Make response parsing more robust [ntalbott]
|
36
|
+
* Test deprecation warnings; add deprecation line numbers [ntabott]
|
37
|
+
* Add Orbital direct gateway [ntalbott]
|
38
|
+
* Add WorldPay direct gateway [ntalbott]
|
39
|
+
|
40
|
+
== Version 1.13.0 (Apr 19, 2011)
|
41
|
+
|
42
|
+
* Add a Gemfile for optional bundler support [ssoroka]
|
43
|
+
* Stop using has_rdoc= when rubygems version is 1.7.0 or greater, since it's deprecated [ssoroka]
|
44
|
+
* Add tax field to braintree [wisq]
|
45
|
+
* Quickpay: Also add Sweden as supported country [Soleone]
|
46
|
+
* Adding refund method for gateways that are using the credit method for referenced based refunds, added deprecation worning to the credit method [John Duff]
|
47
|
+
* Return the Braintree transaction id in the response for void and refund transaction calls [John Duff]
|
48
|
+
* PayPal Express: Extract phone number from address if no contact phone was sent [Soleone]
|
49
|
+
* Unify all offsite gateways that verify the signature of Returns or Notifications by always using the #acknowledge method and calling the secret :credential2 [Soleone]
|
50
|
+
* Valitor: Change name of credential for Return and Notification from :password to :credential2 in symmetry with the other Integrations [Soleone]
|
51
|
+
* Moneybookers: Add support for tracking token [Soleone]
|
52
|
+
* Moneybookers: Require credential when creating Notifications instead of adding an argument to #acknowledge [Soleone]
|
53
|
+
* Moneybookers: Fix Notification to return correct status [Soleone]
|
54
|
+
* Support default Return class for all Integrations that don't use returns [Soleone]
|
55
|
+
* Add support for passing additional options when creating a Notification to all Integrations [Soleone]
|
56
|
+
* Update BraintreeBlue#refund to have consistent method signature [Jonathan Rudenberg]
|
57
|
+
* Add rails/init.rb for gem campatability in Rails [Rūdolfs Ošiņš]
|
58
|
+
* Fix Paypal Express response parser [Jonathan Rudenberg]
|
59
|
+
* Braintree/Transax: Add tax field [wisq]
|
60
|
+
|
61
|
+
== Version 1.12.1 (Mar 21, 2011)
|
62
|
+
|
63
|
+
* Ogone: Make sure response.params is a real Hash [Soleone]
|
64
|
+
* WorldPay: Fix service_url in production mode [Soleone]
|
65
|
+
|
66
|
+
== Version 1.12.0 (Mar 1, 2011)
|
67
|
+
|
68
|
+
* DirecPay: Send phone number as mobile phone by default [Soleone]
|
69
|
+
* Support sending line items for PayPal Express transactions [Jonathan Rudenberg]
|
70
|
+
* Update PayPal Express XML format to latest version [Jonathan Rudenberg]
|
71
|
+
* Fix custom image header for PayPal Express [mwagg]
|
72
|
+
* Add InvoiceID and OrderDescription to PayPal Express Authorize and Capture [cody]
|
73
|
+
* Add Moneybookers integration [Alex Diakov]
|
74
|
+
* Add QBMS (Quickbooks Merchant Services) gateway [ntalbott]
|
75
|
+
* Add NMI gateway [ntalbott]
|
76
|
+
* Make fully compatible with Rails 2 & 3, and Ruby 1.8 & 1.9 [ntalbott]
|
77
|
+
* Authorize.Net: Only return AVS message for AVS-related reason codes. [ntalbott]
|
78
|
+
* Add Federated Canada gateway [ntalbott]
|
79
|
+
* Garanti: Fix text normalization for nil values [Selem Delul]
|
80
|
+
* Valitor: Always send amount without any decimal places [Soleone]
|
81
|
+
* Add WorldPay integration [Soleone]
|
82
|
+
|
83
|
+
== Version 1.11.0 (Feb 11, 2011)
|
84
|
+
|
85
|
+
* Bump dependency for activesupport from 2.3.2 to 2.3.8 [Soleone]
|
86
|
+
* Garanti: Normalize text in xml fields for non-standard characters [Selem Delul]
|
87
|
+
* Garanti: Make sure order number does not contain illegal characters [Soleone]
|
88
|
+
* Fix ActionView tests for ActiveSupport 3.0.4 [Soleone]
|
89
|
+
* DirecPay: Make address information editable by default [Soleone]
|
90
|
+
* Fix ePDQ credit to expect and handle full authorization [Nathaniel Talbott]
|
91
|
+
* Add Barclays ePDQ Gateway [Nathaniel Talbott]
|
92
|
+
* Add default fixture for Garanti and don't use fixture for Garanti [cody]
|
93
|
+
* Add cms param for ePay [ePay]
|
94
|
+
* Add Valitor Integration [Nathaniel Talbott]
|
95
|
+
|
96
|
+
== Version 1.10.0 (Jan 20, 2011)
|
97
|
+
|
98
|
+
* PayPal Express: Support returning payer phone number [Soleone]
|
99
|
+
* Fix ePay to correctly send order number [Soleone]
|
100
|
+
* Add BluePay Gateway [Nathaniel Talbott]
|
101
|
+
* Add Quantum Gateway [Joshua Lippiner]
|
102
|
+
* Add iDEAL/Rabobank gateway [Jonathan Rudenberg]
|
103
|
+
* SagePayForm: Added send_email_confirmation (default false) to enable confirmation emails [wisq]
|
104
|
+
|
105
|
+
== Version 1.9.4 (Jan 5, 2011)
|
106
|
+
|
107
|
+
* Update Garanti gateway to integrate with new API [Selem Delul]
|
108
|
+
|
109
|
+
== Version 1.9.3 (December 17, 2010)
|
110
|
+
|
111
|
+
* Fix BBS Netaxept to change transaction type from C (for MOTO: mail order telephone order) to M (for credit card orders) [Soleone]
|
112
|
+
* Fix Iridium and ePay to work with any object that responds to credit card methods not only ActiveMerchant::CreditCard objects
|
113
|
+
|
114
|
+
== Version 1.9.2 (December 9, 2010)
|
115
|
+
|
116
|
+
* Add support for PayPal mobile payments [wisq]
|
117
|
+
* Add ePay gateway [ePay, Jonathan Rudenberg]
|
118
|
+
* Allow access to the raw HTTP response [Jonathan Rudenberg]
|
119
|
+
|
120
|
+
== Version 1.9.1 (November 24, 2010)
|
121
|
+
|
122
|
+
* PayPal Express and PayPal Pro: Send JPY currency correctly without decimals [Soleone]
|
123
|
+
* Netaxept: Make sure password (token) is URL escaped and update remote tests for updated server behavior [Soleone]
|
124
|
+
* DirecPay: Add support for additional options in Return class and add convenience method to get transaction status update [Soleone]
|
125
|
+
* Add new alias credit_card.brand for credit_card.type and handle the brand correctly in Netaxept [Soleone]
|
126
|
+
* Iridium: Do not depend on ExpiryDate class for credit_card [Soleone]
|
127
|
+
* PayFlow: Use same timeout of 60 seconds in HTTP header and XML for all requests [Soleone]
|
128
|
+
* PayPal Website Payments Pro CA no longer supports American Express cards [Soleone]
|
129
|
+
* Updated BIN ranges for Discover to match recent documents [kaunartist]
|
130
|
+
|
131
|
+
== Version 1.9.0 (October 14, 2010)
|
132
|
+
|
133
|
+
* Add support for DirecPay gateway [Soleone]
|
134
|
+
* Add SagePay Form integration gateway [wisq]
|
135
|
+
* Allow Return class to include a Notification for gateways that treat the direct response as a notification [wisq]
|
136
|
+
* Add support for PayboxDirect gateway [Donald Piret]
|
137
|
+
* Add support for SecureNet gateway [Kal]
|
138
|
+
* Add support for the Inspire gateway [ryan r. smith]
|
139
|
+
|
140
|
+
== Version 1.8.0 (September 24, 2010)
|
141
|
+
|
142
|
+
* PayPal Express: Add support for billing agreements [Nathaniel Talbott]
|
143
|
+
* Allow comparing countries [Nathaniel Talbott]
|
144
|
+
* Iridium: Fix country handling [Nathaniel Talbott]
|
145
|
+
* Iridium: Fix missing billing address [Nathaniel Talbott]
|
146
|
+
* Iridium: Do not pass CV2 if not present [Nathaniel Talbott]
|
147
|
+
* Add Iridium support [Phil Smy]
|
148
|
+
* Add Netaxept support [Nathaniel Talbott]
|
149
|
+
* PaymentExpress: Use Card Holder Help Text for the response message [Nathaniel Talbott]
|
150
|
+
* Sort the country name list [Duff OMelia]
|
151
|
+
|
152
|
+
== Version 1.7.3 (September 14, 2010)
|
153
|
+
|
154
|
+
* Fix SagePay special handling for Japanese YEN currency to not send fractional amounts [Soleone]
|
155
|
+
|
156
|
+
== Version 1.7.2 (August 27, 2010)
|
157
|
+
|
158
|
+
* Update Braintree integration to play nicely with the braintree 2.5.0 gem [Soleone]
|
159
|
+
* Fix SagePay to not send fractional amounts for Japanese YEN currency [Soleone]
|
160
|
+
|
161
|
+
== Version 1.7.1 (July 28, 2010)
|
162
|
+
|
163
|
+
* Pull in only the necessary components of Active Support. Enables use of ActiveMerchant with Rails 3 [railsjedi]
|
164
|
+
|
165
|
+
== Version 1.7.0 (July 9, 2010)
|
166
|
+
|
167
|
+
* Add support for new Braintree Blue Gateway (using the braintree gem) [Braintree]
|
168
|
+
|
169
|
+
== Version 1.6.0 (July 6, 2010)
|
170
|
+
|
3
171
|
* Add a task rake gateways:hosts to get a list of all outbound hosts and ports [cody]
|
4
172
|
* Fix test failure in chronopay helper in Ruby 1.9.1 [cody]
|
5
173
|
* Fix timezone issue in credit card test. [cody]
|
data/CONTRIBUTORS
CHANGED
@@ -26,6 +26,7 @@ Linkpoint Gateway
|
|
26
26
|
eWay Gateway
|
27
27
|
|
28
28
|
* Originally contributed by Lucas Carlson (mailto:lucas@rufy.com)
|
29
|
+
* Managed Payments support by Jason Stirk with improvements by Keith Pitt
|
29
30
|
|
30
31
|
CardStream Gateway
|
31
32
|
|
@@ -83,6 +84,7 @@ PaypalNVGateway (Apr 12, 2008)
|
|
83
84
|
Beanstream (May 13, 2008)
|
84
85
|
|
85
86
|
* Created by xiaobozz ( xiaobozzz at gmail dot com )
|
87
|
+
* Secure Profiles support by Forrest Zeisler (http://github.com/forrest)
|
86
88
|
|
87
89
|
Sage (June, 2008)
|
88
90
|
|
@@ -109,6 +111,10 @@ Instapay Gateway (May 3, 2009)
|
|
109
111
|
|
110
112
|
* Thomas Rideout
|
111
113
|
|
114
|
+
Iridium Gateway (June 13, 2009)
|
115
|
+
|
116
|
+
* Phil Smy
|
117
|
+
|
112
118
|
MerchantWARE (July 7, 2009)
|
113
119
|
|
114
120
|
* Cody Fauser
|
@@ -133,6 +139,95 @@ SallieMae (October 2, 2009)
|
|
133
139
|
|
134
140
|
* iamjwc
|
135
141
|
|
142
|
+
Netaxept (February 08, 2010)
|
143
|
+
|
144
|
+
* Nathaniel Talbott
|
145
|
+
|
136
146
|
Garanti (May 05, 2010)
|
137
147
|
|
138
|
-
* Selem Delul (moon@mac.home)
|
148
|
+
* Selem Delul (moon@mac.home)
|
149
|
+
|
150
|
+
Braintree Blue Gateway (May 19th, 2010)
|
151
|
+
|
152
|
+
* Braintree (code@getbraintree.com)
|
153
|
+
|
154
|
+
Inspire Gateway (September 27, 2010)
|
155
|
+
|
156
|
+
* ryan r. smith
|
157
|
+
|
158
|
+
SecureNet Gateway (September 27, 2010)
|
159
|
+
|
160
|
+
* Kal
|
161
|
+
|
162
|
+
PayboxDirect Gateway (September 27, 2010)
|
163
|
+
|
164
|
+
* Donald Piret <donald@donaldpiret.com>
|
165
|
+
|
166
|
+
SagePay Form Offsite Gateway (October 14, 2010)
|
167
|
+
|
168
|
+
* Adrian Irving-Beer
|
169
|
+
|
170
|
+
DirecPay Gateway (October 14, 2010)
|
171
|
+
|
172
|
+
* Soleone
|
173
|
+
|
174
|
+
ePay Gateway (November 23, 2010)
|
175
|
+
|
176
|
+
* Original code by ePay (epay.dk)
|
177
|
+
* Refactored by Jonathan Rudenberg
|
178
|
+
|
179
|
+
iDEAL/Rabobank Gateway (January 10, 2011)
|
180
|
+
|
181
|
+
* Original code by Soemirno Kartosoewito
|
182
|
+
* Refactored by Cody Fauser
|
183
|
+
* Refactored and updated by Jonathan Rudenberg
|
184
|
+
|
185
|
+
Quantum Gateway
|
186
|
+
|
187
|
+
* Joshua Lippiner
|
188
|
+
* Refactored by Nathaniel Talbott
|
189
|
+
|
190
|
+
BluePay Gateway
|
191
|
+
|
192
|
+
* Mel Sleight
|
193
|
+
* Refactored by Nathaniel Talbott
|
194
|
+
|
195
|
+
Valitor Integration (January 2011)
|
196
|
+
|
197
|
+
* Nathaniel Talbott
|
198
|
+
* Sponsored by Sævar Öfjörð Magnússon
|
199
|
+
|
200
|
+
Barclays ePDQ
|
201
|
+
|
202
|
+
* Original code by Rob W (rfwatson)
|
203
|
+
* Refactored by Nathaniel Talbott
|
204
|
+
|
205
|
+
Federated Canada
|
206
|
+
|
207
|
+
* Bob Larrick (deathbob)
|
208
|
+
|
209
|
+
NMI
|
210
|
+
|
211
|
+
* Nathaniel Talbott (ntalbott)
|
212
|
+
|
213
|
+
QBMS
|
214
|
+
|
215
|
+
* Will Glozer (wg)
|
216
|
+
|
217
|
+
WorldPay Integration (Feb 17, 2011)
|
218
|
+
|
219
|
+
* Original code by Unknown from this patch: https://jadedpixel.lighthouseapp.com/projects/11599/tickets/3-patch-integration-support-for-worldpay-uk
|
220
|
+
* Refactored by Soleone
|
221
|
+
|
222
|
+
WorldPay Gateway
|
223
|
+
|
224
|
+
* Original code by Amit kumar (ask4amit@gmail.com)
|
225
|
+
* Refactored by Nathaniel Talbott (ntalbott)
|
226
|
+
|
227
|
+
Orbital Paymentech Gateway (July, 2009)
|
228
|
+
|
229
|
+
* Sam Vincent - http://ecommerce.versapay.com
|
230
|
+
|
231
|
+
DIRECTebanking - Payment Network AG (May, 2011)
|
232
|
+
|
233
|
+
* Gerwin Brunner (Vilango)
|
data/README.rdoc
CHANGED
@@ -13,21 +13,38 @@ The {ActiveMerchant Wiki}[http://github.com/Shopify/active_merchant/wikis] conta
|
|
13
13
|
|
14
14
|
* {Authorize.Net CIM}[http://www.authorize.net/] - US
|
15
15
|
* {Authorize.Net}[http://www.authorize.net/] - US
|
16
|
+
* {Barclays ePDQ}[http://www.barclaycard.co.uk/business/accepting-payments/epdq-mpi/] - UK
|
16
17
|
* {Beanstream.com}[http://www.beanstream.com/] - CA
|
18
|
+
* {BluePay}[http://www.bluepay.com/] - US
|
17
19
|
* {Braintree}[http://www.braintreepaymentsolutions.com] - US
|
18
20
|
* {CardStream}[http://www.cardstream.com/] - GB
|
19
21
|
* {CyberSource}[http://www.cybersource.com] - US
|
20
22
|
* {DataCash}[http://www.datacash.com/] - GB
|
21
23
|
* {Efsnet}[http://www.concordefsnet.com/] - US
|
24
|
+
* {Elavon MyVirtualMerchant}[http://www.elavon.com] - US, CA
|
25
|
+
* {ePay}[http://www.epay.dk/] - DK
|
22
26
|
* {eWAY}[http://www.eway.com.au/] - AU
|
23
27
|
* {E-xact}[http://www.e-xact.com] - CA, US
|
28
|
+
* {Federated Canada}[http://www.federatedcanada.com/] - CA
|
29
|
+
* {FirstPay}[http://www.first-pay.com] - US
|
30
|
+
* {Garanti Sanal POS}[https://ccpos.garanti.com.tr/ccRaporlar/garanti/ccReports] - US, TR
|
31
|
+
* {Inspire}[http://www.inspiregateway.com] - US
|
32
|
+
* {InstaPay}[http://www.instapayllc.com] - US
|
33
|
+
* {Iridium}[http://www.iridiumcorp.co.uk/] - UK, ES
|
34
|
+
* {JetPay}[http://www.jetpay.com] - US
|
24
35
|
* {LinkPoint}[http://www.linkpoint.com/] - US
|
25
36
|
* {Merchant e-Solutions}[http://merchante-solutions.com/] - US
|
37
|
+
* {MerchantWare}[http://merchantwarehouse.com/merchantware] - US
|
26
38
|
* {Modern Payments}[http://www.modpay.com] - US
|
27
39
|
* {Moneris}[http://www.moneris.com/] - CA
|
40
|
+
* {Netaxept}[http://www.betalingsterminal.no/Netthandel-forside] - NO, DK, SE, FI
|
28
41
|
* {NetRegistry}[http://www.netregistry.com.au] - AU
|
29
42
|
* {NELiX TransaX Gateway}[http://www.nelixtransax.com] - US
|
30
43
|
* {NETbilling}[http://www.netbilling.com] - US
|
44
|
+
* {NMI}[http://nmi.com/] - US
|
45
|
+
* {Ogone DirectLink}[http://www.ogone.com] - BE, DE, FR, NL, AT, CH
|
46
|
+
* {Orbital Paymentech}[http://chasepaymentech.com/] - CA, US
|
47
|
+
* {PayBox Direct}[http://www.paybox.com] - FR
|
31
48
|
* {PayJunction}[http://www.payjunction.com/] - US
|
32
49
|
* {PaySecure}[http://www.commsecure.com.au/paysecure.shtml] - AU
|
33
50
|
* {PayPal Express Checkout}[https://www.paypal.com/cgi-bin/webscr?cmd=xpt/merchant/ExpressCheckoutIntro-outside] - US, CA, SG, AU
|
@@ -41,10 +58,14 @@ The {ActiveMerchant Wiki}[http://github.com/Shopify/active_merchant/wikis] conta
|
|
41
58
|
* {Protx}[http://www.protx.com] - GB
|
42
59
|
* {Psigate}[http://www.psigate.com/] - CA
|
43
60
|
* {PSL Payment Solutions}[http://www.paymentsolutionsltd.com/] - GB
|
44
|
-
* {
|
61
|
+
* {Quantum}[http://www.quantumgateway.com] - US
|
62
|
+
* {QuickBooks Merchant Services}[http://payments.intuit.com/] - US
|
63
|
+
* {Quickpay}[http://quickpay.dk/] - DK, SE
|
64
|
+
* {Rabobank Nederland}[http://www.rabobank.nl/] - NL
|
45
65
|
* {Realex}[http://www.realexpayments.com/] - IE, GB
|
46
66
|
* {Sage Payment Solutions}[http://www.sagepayments.com] - US, CA
|
47
67
|
* {Sallie Mae}[http://www.salliemae.com] - US
|
68
|
+
* {SecureNet}[http://www.securenet.com] - US
|
48
69
|
* {SecurePay}[http://securepay.com.au] - AU
|
49
70
|
* {SecurePay}[http://www.securepay.com/] - US
|
50
71
|
* {SecurePayTech}[http://www.securepaytech.com/] - NZ
|
@@ -55,15 +76,22 @@ The {ActiveMerchant Wiki}[http://github.com/Shopify/active_merchant/wikis] conta
|
|
55
76
|
* {Verifi}[http://www.verifi.com/] - US
|
56
77
|
* {ViaKLIX}[http://viaklix.com] - US
|
57
78
|
* {Wirecard}[http://www.wirecard.com] - DE
|
79
|
+
* {WorldPay}[http://www.worldpay.com] - AU, HK, GB, US
|
58
80
|
|
59
81
|
== Supported Offsite Payment Gateways
|
60
82
|
|
61
|
-
* {PayPal Website Payments Standard}[https://www.paypal.com/cgi-bin/webscr?cmd=_wp-standard-overview-outside]
|
62
|
-
* Chronopay[http://www.chronopay.com]
|
63
|
-
* Nochex[http://www.nochex.com]
|
64
|
-
* {Banca Sella GestPay}[https://www.sella.it/banca/ecommerce/gestpay/gestpay.jsp]
|
65
83
|
* {2 Checkout}[http://www.2checkout.com]
|
84
|
+
* {Banca Sella GestPay}[https://www.sella.it/banca/ecommerce/gestpay/gestpay.jsp]
|
85
|
+
* {Chronopay}[http://www.chronopay.com]
|
86
|
+
* {Direct-eBanking / sofortueberweisung.de by Payment-Networks AG}[https://www.payment-network.com/deb_com_en/merchantarea/home] - DE, AT, CH, BE, UK, NL
|
87
|
+
* {DirecPay}[http://www.timesofmoney.com/direcpay/jsp/home.jsp]
|
66
88
|
* {HiTRUST}[http://www.hitrust.com.hk/]
|
89
|
+
* {Moneybookers}[http://www.moneybookers.com]
|
90
|
+
* {Nochex}[http://www.nochex.com]
|
91
|
+
* {PayPal Website Payments Standard}[https://www.paypal.com/cgi-bin/webscr?cmd=_wp-standard-overview-outside]
|
92
|
+
* {SagePay Form}[http://www.sagepay.com/products_services/sage_pay_go/integration/form]
|
93
|
+
* {Valitor}[http://www.valitor.is/] - IS
|
94
|
+
* {WorldPay}[http://www.worldpay.com]
|
67
95
|
|
68
96
|
== Download
|
69
97
|
|
data/lib/active_merchant.rb
CHANGED
@@ -24,12 +24,24 @@
|
|
24
24
|
$:.unshift File.dirname(__FILE__)
|
25
25
|
|
26
26
|
require 'active_support'
|
27
|
+
require 'active_support/core_ext/string/inflections'
|
28
|
+
require 'active_support/core_ext/hash/indifferent_access'
|
29
|
+
require 'active_support/core_ext/hash/conversions'
|
30
|
+
require 'active_support/core_ext/class/attribute'
|
31
|
+
require 'active_support/core_ext/class/attribute_accessors'
|
32
|
+
require 'active_support/core_ext/class/delegating_attributes'
|
33
|
+
require 'active_support/core_ext/module/attribute_accessors'
|
34
|
+
require 'active_support/core_ext/kernel/requires'
|
35
|
+
require 'active_support/base64'
|
36
|
+
require 'active_support/secure_random'
|
37
|
+
|
27
38
|
require 'builder'
|
28
39
|
require 'cgi'
|
29
40
|
require 'rexml/document'
|
30
41
|
|
31
42
|
require 'active_merchant/common'
|
32
43
|
require 'active_merchant/billing'
|
44
|
+
require 'active_merchant/version'
|
33
45
|
|
34
46
|
module ActiveMerchant #:nodoc:
|
35
47
|
module Billing #:nodoc:
|
@@ -7,52 +7,54 @@ module ActiveMerchant #:nodoc:
|
|
7
7
|
# == Description
|
8
8
|
# This credit card object can be used as a stand alone object. It acts just like an ActiveRecord object
|
9
9
|
# but doesn't support the .save method as its not backed by a database.
|
10
|
-
#
|
11
|
-
# For testing purposes, use the 'bogus' credit card type. This card skips the vast majority of
|
12
|
-
# validations. This allows you to focus on your core concerns until you're ready to be more concerned
|
10
|
+
#
|
11
|
+
# For testing purposes, use the 'bogus' credit card type. This card skips the vast majority of
|
12
|
+
# validations. This allows you to focus on your core concerns until you're ready to be more concerned
|
13
13
|
# with the details of particular creditcards or your gateway.
|
14
|
-
#
|
14
|
+
#
|
15
15
|
# == Testing With CreditCard
|
16
|
-
# Often when testing we don't care about the particulars of a given card type. When using the 'test'
|
17
|
-
# mode in your Gateway, there are six different valid card numbers: 1, 2, 3, 'success', 'fail',
|
16
|
+
# Often when testing we don't care about the particulars of a given card type. When using the 'test'
|
17
|
+
# mode in your Gateway, there are six different valid card numbers: 1, 2, 3, 'success', 'fail',
|
18
18
|
# and 'error'.
|
19
|
-
#
|
19
|
+
#
|
20
20
|
#--
|
21
21
|
# For details, see CreditCardMethods#valid_number?
|
22
22
|
#++
|
23
|
-
#
|
23
|
+
#
|
24
24
|
# == Example Usage
|
25
25
|
# cc = CreditCard.new(
|
26
|
-
# :first_name => 'Steve',
|
27
|
-
# :last_name => 'Smith',
|
28
|
-
# :month => '9',
|
29
|
-
# :year => '2010',
|
30
|
-
# :type => 'visa',
|
26
|
+
# :first_name => 'Steve',
|
27
|
+
# :last_name => 'Smith',
|
28
|
+
# :month => '9',
|
29
|
+
# :year => '2010',
|
30
|
+
# :type => 'visa',
|
31
31
|
# :number => '4242424242424242'
|
32
32
|
# )
|
33
|
-
#
|
33
|
+
#
|
34
34
|
# cc.valid? # => true
|
35
35
|
# cc.display_number # => XXXX-XXXX-XXXX-4242
|
36
36
|
#
|
37
37
|
class CreditCard
|
38
38
|
include CreditCardMethods
|
39
39
|
include Validateable
|
40
|
-
|
40
|
+
|
41
41
|
## Attributes
|
42
|
-
|
42
|
+
|
43
43
|
cattr_accessor :require_verification_value
|
44
44
|
self.require_verification_value = true
|
45
|
-
|
45
|
+
|
46
46
|
# Essential attributes for a valid, non-bogus creditcards
|
47
47
|
attr_accessor :number, :month, :year, :type, :first_name, :last_name
|
48
|
-
|
48
|
+
|
49
49
|
# Required for Switch / Solo cards
|
50
50
|
attr_accessor :start_month, :start_year, :issue_number
|
51
51
|
|
52
|
-
# Optional verification_value (CVV, CVV2 etc). Gateways will try their best to
|
52
|
+
# Optional verification_value (CVV, CVV2 etc). Gateways will try their best to
|
53
53
|
# run validation on the passed in value if it is supplied
|
54
54
|
attr_accessor :verification_value
|
55
55
|
|
56
|
+
alias_method :brand, :type
|
57
|
+
|
56
58
|
# Provides proxy access to an expiry date object
|
57
59
|
def expiry_date
|
58
60
|
ExpiryDate.new(@month, @year)
|
@@ -61,23 +63,23 @@ module ActiveMerchant #:nodoc:
|
|
61
63
|
def expired?
|
62
64
|
expiry_date.expired?
|
63
65
|
end
|
64
|
-
|
66
|
+
|
65
67
|
def name?
|
66
|
-
first_name?
|
68
|
+
first_name? || last_name?
|
67
69
|
end
|
68
|
-
|
70
|
+
|
69
71
|
def first_name?
|
70
|
-
|
72
|
+
@first_name.present?
|
71
73
|
end
|
72
|
-
|
74
|
+
|
73
75
|
def last_name?
|
74
|
-
|
76
|
+
@last_name.present?
|
75
77
|
end
|
76
|
-
|
78
|
+
|
77
79
|
def name
|
78
|
-
|
80
|
+
[@first_name, @last_name].compact.join(' ')
|
79
81
|
end
|
80
|
-
|
82
|
+
|
81
83
|
def verification_value?
|
82
84
|
!@verification_value.blank?
|
83
85
|
end
|
@@ -86,11 +88,11 @@ module ActiveMerchant #:nodoc:
|
|
86
88
|
def display_number
|
87
89
|
self.class.mask(number)
|
88
90
|
end
|
89
|
-
|
91
|
+
|
90
92
|
def last_digits
|
91
93
|
self.class.last_digits(number)
|
92
94
|
end
|
93
|
-
|
95
|
+
|
94
96
|
def validate
|
95
97
|
validate_essential_attributes
|
96
98
|
|
@@ -102,14 +104,14 @@ module ActiveMerchant #:nodoc:
|
|
102
104
|
validate_verification_value
|
103
105
|
validate_switch_or_solo_attributes
|
104
106
|
end
|
105
|
-
|
107
|
+
|
106
108
|
def self.requires_verification_value?
|
107
109
|
require_verification_value
|
108
110
|
end
|
109
|
-
|
111
|
+
|
110
112
|
private
|
111
|
-
|
112
|
-
def before_validate #:nodoc:
|
113
|
+
|
114
|
+
def before_validate #:nodoc:
|
113
115
|
self.month = month.to_i
|
114
116
|
self.year = year.to_i
|
115
117
|
self.start_month = start_month.to_i unless start_month.nil?
|
@@ -118,27 +120,38 @@ module ActiveMerchant #:nodoc:
|
|
118
120
|
self.type.downcase! if type.respond_to?(:downcase)
|
119
121
|
self.type = self.class.type?(number) if type.blank?
|
120
122
|
end
|
121
|
-
|
123
|
+
|
122
124
|
def validate_card_number #:nodoc:
|
123
|
-
|
125
|
+
if number.blank?
|
126
|
+
errors.add :number, "is required"
|
127
|
+
elsif !CreditCard.valid_number?(number)
|
128
|
+
errors.add :number, "is not a valid credit card number"
|
129
|
+
end
|
130
|
+
|
124
131
|
unless errors.on(:number) || errors.on(:type)
|
125
132
|
errors.add :type, "is not the correct card type" unless CreditCard.matching_type?(number, type)
|
126
133
|
end
|
127
134
|
end
|
128
|
-
|
135
|
+
|
129
136
|
def validate_card_type #:nodoc:
|
130
|
-
errors.add :type, "is required" if type.blank?
|
131
|
-
errors.add :type, "is invalid" unless CreditCard.card_companies.keys.include?(type)
|
137
|
+
errors.add :type, "is required" if type.blank? && number.present?
|
138
|
+
errors.add :type, "is invalid" unless type.blank? || CreditCard.card_companies.keys.include?(type)
|
132
139
|
end
|
133
|
-
|
140
|
+
|
134
141
|
def validate_essential_attributes #:nodoc:
|
135
142
|
errors.add :first_name, "cannot be empty" if @first_name.blank?
|
136
143
|
errors.add :last_name, "cannot be empty" if @last_name.blank?
|
137
|
-
|
138
|
-
|
139
|
-
|
144
|
+
|
145
|
+
if @month.to_i.zero? || @year.to_i.zero?
|
146
|
+
errors.add :month, "is required" if @month.to_i.zero?
|
147
|
+
errors.add :year, "is required" if @year.to_i.zero?
|
148
|
+
else
|
149
|
+
errors.add :month, "is not a valid month" unless valid_month?(@month)
|
150
|
+
errors.add :year, "expired" if expired?
|
151
|
+
errors.add :year, "is not a valid year" unless valid_expiry_year?(@year)
|
152
|
+
end
|
140
153
|
end
|
141
|
-
|
154
|
+
|
142
155
|
def validate_switch_or_solo_attributes #:nodoc:
|
143
156
|
if %w[switch solo].include?(type)
|
144
157
|
unless valid_month?(@start_month) && valid_start_year?(@start_year) || valid_issue_number?(@issue_number)
|
@@ -148,10 +161,10 @@ module ActiveMerchant #:nodoc:
|
|
148
161
|
end
|
149
162
|
end
|
150
163
|
end
|
151
|
-
|
164
|
+
|
152
165
|
def validate_verification_value #:nodoc:
|
153
166
|
if CreditCard.requires_verification_value?
|
154
|
-
errors.add :verification_value, "is required" unless verification_value?
|
167
|
+
errors.add :verification_value, "is required" unless verification_value?
|
155
168
|
end
|
156
169
|
end
|
157
170
|
end
|