activemerchant 1.79.2 → 1.80.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (219) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +33 -0
  3. data/README.md +10 -2
  4. data/lib/active_merchant.rb +1 -1
  5. data/lib/active_merchant/billing/check.rb +4 -4
  6. data/lib/active_merchant/billing/compatibility.rb +1 -1
  7. data/lib/active_merchant/billing/credit_card.rb +21 -21
  8. data/lib/active_merchant/billing/credit_card_formatting.rb +2 -2
  9. data/lib/active_merchant/billing/credit_card_methods.rb +2 -2
  10. data/lib/active_merchant/billing/gateway.rb +13 -13
  11. data/lib/active_merchant/billing/gateways/adyen.rb +31 -15
  12. data/lib/active_merchant/billing/gateways/allied_wallet.rb +22 -22
  13. data/lib/active_merchant/billing/gateways/authorize_net.rb +72 -72
  14. data/lib/active_merchant/billing/gateways/authorize_net_arb.rb +3 -3
  15. data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +3 -3
  16. data/lib/active_merchant/billing/gateways/axcessms.rb +51 -51
  17. data/lib/active_merchant/billing/gateways/balanced.rb +29 -29
  18. data/lib/active_merchant/billing/gateways/bank_frick.rb +3 -3
  19. data/lib/active_merchant/billing/gateways/banwire.rb +8 -8
  20. data/lib/active_merchant/billing/gateways/barclaycard_smartpay.rb +5 -5
  21. data/lib/active_merchant/billing/gateways/barclays_epdq_extra_plus.rb +6 -6
  22. data/lib/active_merchant/billing/gateways/be2bill.rb +2 -2
  23. data/lib/active_merchant/billing/gateways/beanstream.rb +1 -1
  24. data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +69 -69
  25. data/lib/active_merchant/billing/gateways/blue_pay.rb +19 -19
  26. data/lib/active_merchant/billing/gateways/blue_snap.rb +42 -42
  27. data/lib/active_merchant/billing/gateways/bogus.rb +10 -10
  28. data/lib/active_merchant/billing/gateways/borgun.rb +10 -10
  29. data/lib/active_merchant/billing/gateways/bpoint.rb +1 -1
  30. data/lib/active_merchant/billing/gateways/braintree/braintree_common.rb +2 -2
  31. data/lib/active_merchant/billing/gateways/braintree_blue.rb +94 -94
  32. data/lib/active_merchant/billing/gateways/braintree_orange.rb +1 -1
  33. data/lib/active_merchant/billing/gateways/bridge_pay.rb +39 -39
  34. data/lib/active_merchant/billing/gateways/cams.rb +12 -12
  35. data/lib/active_merchant/billing/gateways/card_connect.rb +38 -13
  36. data/lib/active_merchant/billing/gateways/card_stream.rb +116 -116
  37. data/lib/active_merchant/billing/gateways/cardknox.rb +7 -7
  38. data/lib/active_merchant/billing/gateways/cardprocess.rb +1 -1
  39. data/lib/active_merchant/billing/gateways/cashnet.rb +10 -10
  40. data/lib/active_merchant/billing/gateways/cc5.rb +3 -5
  41. data/lib/active_merchant/billing/gateways/cecabank.rb +6 -6
  42. data/lib/active_merchant/billing/gateways/cenpos.rb +36 -36
  43. data/lib/active_merchant/billing/gateways/checkout.rb +5 -5
  44. data/lib/active_merchant/billing/gateways/checkout_v2.rb +31 -31
  45. data/lib/active_merchant/billing/gateways/clearhaus.rb +5 -5
  46. data/lib/active_merchant/billing/gateways/commercegate.rb +6 -6
  47. data/lib/active_merchant/billing/gateways/conekta.rb +24 -19
  48. data/lib/active_merchant/billing/gateways/creditcall.rb +41 -41
  49. data/lib/active_merchant/billing/gateways/credorax.rb +104 -103
  50. data/lib/active_merchant/billing/gateways/culqi.rb +25 -25
  51. data/lib/active_merchant/billing/gateways/cyber_source.rb +65 -65
  52. data/lib/active_merchant/billing/gateways/data_cash.rb +4 -4
  53. data/lib/active_merchant/billing/gateways/dibs.rb +24 -24
  54. data/lib/active_merchant/billing/gateways/digitzs.rb +35 -35
  55. data/lib/active_merchant/billing/gateways/ebanx.rb +26 -26
  56. data/lib/active_merchant/billing/gateways/efsnet.rb +10 -10
  57. data/lib/active_merchant/billing/gateways/elavon.rb +5 -5
  58. data/lib/active_merchant/billing/gateways/element.rb +35 -35
  59. data/lib/active_merchant/billing/gateways/epay.rb +4 -4
  60. data/lib/active_merchant/billing/gateways/evo_ca.rb +1 -1
  61. data/lib/active_merchant/billing/gateways/eway.rb +65 -65
  62. data/lib/active_merchant/billing/gateways/eway_managed.rb +11 -11
  63. data/lib/active_merchant/billing/gateways/eway_rapid.rb +31 -31
  64. data/lib/active_merchant/billing/gateways/exact.rb +12 -12
  65. data/lib/active_merchant/billing/gateways/ezic.rb +13 -13
  66. data/lib/active_merchant/billing/gateways/fat_zebra.rb +24 -24
  67. data/lib/active_merchant/billing/gateways/federated_canada.rb +3 -3
  68. data/lib/active_merchant/billing/gateways/first_giving.rb +16 -16
  69. data/lib/active_merchant/billing/gateways/first_pay.rb +7 -4
  70. data/lib/active_merchant/billing/gateways/firstdata_e4.rb +71 -71
  71. data/lib/active_merchant/billing/gateways/flo2cash.rb +12 -12
  72. data/lib/active_merchant/billing/gateways/flo2cash_simple.rb +1 -1
  73. data/lib/active_merchant/billing/gateways/forte.rb +26 -16
  74. data/lib/active_merchant/billing/gateways/garanti.rb +10 -12
  75. data/lib/active_merchant/billing/gateways/global_collect.rb +88 -88
  76. data/lib/active_merchant/billing/gateways/global_transport.rb +4 -4
  77. data/lib/active_merchant/billing/gateways/hdfc.rb +33 -33
  78. data/lib/active_merchant/billing/gateways/hps.rb +28 -28
  79. data/lib/active_merchant/billing/gateways/iats_payments.rb +26 -26
  80. data/lib/active_merchant/billing/gateways/inspire.rb +15 -15
  81. data/lib/active_merchant/billing/gateways/instapay.rb +4 -4
  82. data/lib/active_merchant/billing/gateways/ipp.rb +17 -17
  83. data/lib/active_merchant/billing/gateways/iridium.rb +207 -207
  84. data/lib/active_merchant/billing/gateways/iveri.rb +8 -8
  85. data/lib/active_merchant/billing/gateways/jetpay.rb +134 -134
  86. data/lib/active_merchant/billing/gateways/jetpay_v2.rb +141 -141
  87. data/lib/active_merchant/billing/gateways/komoju.rb +15 -15
  88. data/lib/active_merchant/billing/gateways/kushki.rb +31 -37
  89. data/lib/active_merchant/billing/gateways/latitude19.rb +64 -64
  90. data/lib/active_merchant/billing/gateways/linkpoint.rb +22 -22
  91. data/lib/active_merchant/billing/gateways/litle.rb +4 -4
  92. data/lib/active_merchant/billing/gateways/mastercard.rb +3 -3
  93. data/lib/active_merchant/billing/gateways/maxipago.rb +2 -2
  94. data/lib/active_merchant/billing/gateways/mercado_pago.rb +28 -28
  95. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +9 -9
  96. data/lib/active_merchant/billing/gateways/merchant_one.rb +6 -6
  97. data/lib/active_merchant/billing/gateways/merchant_partners.rb +24 -24
  98. data/lib/active_merchant/billing/gateways/merchant_ware.rb +49 -49
  99. data/lib/active_merchant/billing/gateways/merchant_ware_version_four.rb +36 -36
  100. data/lib/active_merchant/billing/gateways/merchant_warrior.rb +4 -4
  101. data/lib/active_merchant/billing/gateways/mercury.rb +28 -28
  102. data/lib/active_merchant/billing/gateways/metrics_global.rb +7 -7
  103. data/lib/active_merchant/billing/gateways/micropayment.rb +31 -31
  104. data/lib/active_merchant/billing/gateways/migs.rb +11 -9
  105. data/lib/active_merchant/billing/gateways/modern_payments.rb +1 -1
  106. data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +16 -16
  107. data/lib/active_merchant/billing/gateways/monei.rb +5 -5
  108. data/lib/active_merchant/billing/gateways/moneris.rb +26 -26
  109. data/lib/active_merchant/billing/gateways/moneris_us.rb +81 -37
  110. data/lib/active_merchant/billing/gateways/money_movers.rb +3 -3
  111. data/lib/active_merchant/billing/gateways/mundipagg.rb +1 -1
  112. data/lib/active_merchant/billing/gateways/nab_transact.rb +6 -6
  113. data/lib/active_merchant/billing/gateways/ncr_secure_pay.rb +3 -3
  114. data/lib/active_merchant/billing/gateways/netaxept.rb +15 -15
  115. data/lib/active_merchant/billing/gateways/netbanx.rb +2 -2
  116. data/lib/active_merchant/billing/gateways/netbilling.rb +1 -1
  117. data/lib/active_merchant/billing/gateways/netpay.rb +5 -5
  118. data/lib/active_merchant/billing/gateways/nmi.rb +18 -18
  119. data/lib/active_merchant/billing/gateways/ogone.rb +22 -22
  120. data/lib/active_merchant/billing/gateways/omise.rb +3 -3
  121. data/lib/active_merchant/billing/gateways/openpay.rb +6 -4
  122. data/lib/active_merchant/billing/gateways/opp.rb +4 -4
  123. data/lib/active_merchant/billing/gateways/optimal_payment.rb +2 -2
  124. data/lib/active_merchant/billing/gateways/orbital.rb +61 -61
  125. data/lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb +4 -4
  126. data/lib/active_merchant/billing/gateways/pac_net_raven.rb +5 -5
  127. data/lib/active_merchant/billing/gateways/pagarme.rb +27 -27
  128. data/lib/active_merchant/billing/gateways/pago_facil.rb +8 -8
  129. data/lib/active_merchant/billing/gateways/pay_conex.rb +25 -25
  130. data/lib/active_merchant/billing/gateways/pay_gate_xml.rb +32 -32
  131. data/lib/active_merchant/billing/gateways/pay_hub.rb +29 -29
  132. data/lib/active_merchant/billing/gateways/pay_junction.rb +7 -7
  133. data/lib/active_merchant/billing/gateways/pay_junction_v2.rb +30 -30
  134. data/lib/active_merchant/billing/gateways/pay_secure.rb +4 -4
  135. data/lib/active_merchant/billing/gateways/paybox_direct.rb +15 -15
  136. data/lib/active_merchant/billing/gateways/payeezy.rb +5 -5
  137. data/lib/active_merchant/billing/gateways/payex.rb +4 -4
  138. data/lib/active_merchant/billing/gateways/payflow.rb +7 -7
  139. data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +23 -22
  140. data/lib/active_merchant/billing/gateways/payflow_express.rb +2 -2
  141. data/lib/active_merchant/billing/gateways/payment_express.rb +40 -37
  142. data/lib/active_merchant/billing/gateways/paymentez.rb +11 -3
  143. data/lib/active_merchant/billing/gateways/paymill.rb +115 -115
  144. data/lib/active_merchant/billing/gateways/paypal.rb +1 -1
  145. data/lib/active_merchant/billing/gateways/paypal_digital_goods.rb +1 -1
  146. data/lib/active_merchant/billing/gateways/payscout.rb +1 -1
  147. data/lib/active_merchant/billing/gateways/paystation.rb +14 -14
  148. data/lib/active_merchant/billing/gateways/payu_in.rb +43 -43
  149. data/lib/active_merchant/billing/gateways/payu_latam.rb +41 -41
  150. data/lib/active_merchant/billing/gateways/payway.rb +6 -6
  151. data/lib/active_merchant/billing/gateways/pin.rb +7 -7
  152. data/lib/active_merchant/billing/gateways/plugnpay.rb +62 -62
  153. data/lib/active_merchant/billing/gateways/pro_pay.rb +123 -123
  154. data/lib/active_merchant/billing/gateways/psigate.rb +16 -16
  155. data/lib/active_merchant/billing/gateways/psl_card.rb +13 -13
  156. data/lib/active_merchant/billing/gateways/qbms.rb +52 -52
  157. data/lib/active_merchant/billing/gateways/quantum.rb +5 -5
  158. data/lib/active_merchant/billing/gateways/quickbooks.rb +10 -10
  159. data/lib/active_merchant/billing/gateways/quickpay.rb +1 -1
  160. data/lib/active_merchant/billing/gateways/quickpay/quickpay_v10.rb +11 -11
  161. data/lib/active_merchant/billing/gateways/quickpay/quickpay_v4to7.rb +3 -3
  162. data/lib/active_merchant/billing/gateways/qvalent.rb +55 -55
  163. data/lib/active_merchant/billing/gateways/realex.rb +16 -15
  164. data/lib/active_merchant/billing/gateways/redsys.rb +128 -121
  165. data/lib/active_merchant/billing/gateways/s5.rb +5 -5
  166. data/lib/active_merchant/billing/gateways/safe_charge.rb +16 -16
  167. data/lib/active_merchant/billing/gateways/sage.rb +20 -20
  168. data/lib/active_merchant/billing/gateways/sage_pay.rb +32 -32
  169. data/lib/active_merchant/billing/gateways/sallie_mae.rb +11 -11
  170. data/lib/active_merchant/billing/gateways/secure_net.rb +19 -19
  171. data/lib/active_merchant/billing/gateways/secure_pay.rb +5 -5
  172. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +7 -7
  173. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +9 -9
  174. data/lib/active_merchant/billing/gateways/securion_pay.rb +12 -12
  175. data/lib/active_merchant/billing/gateways/skip_jack.rb +28 -28
  176. data/lib/active_merchant/billing/gateways/smart_ps.rb +31 -31
  177. data/lib/active_merchant/billing/gateways/so_easy_pay.rb +3 -3
  178. data/lib/active_merchant/billing/gateways/spreedly_core.rb +1 -1
  179. data/lib/active_merchant/billing/gateways/stripe.rb +63 -63
  180. data/lib/active_merchant/billing/gateways/swipe_checkout.rb +5 -5
  181. data/lib/active_merchant/billing/gateways/telr.rb +26 -26
  182. data/lib/active_merchant/billing/gateways/trans_first.rb +28 -28
  183. data/lib/active_merchant/billing/gateways/trans_first_transaction_express.rb +224 -224
  184. data/lib/active_merchant/billing/gateways/transact_pro.rb +7 -7
  185. data/lib/active_merchant/billing/gateways/transnational.rb +1 -1
  186. data/lib/active_merchant/billing/gateways/trexle.rb +5 -5
  187. data/lib/active_merchant/billing/gateways/trust_commerce.rb +38 -38
  188. data/lib/active_merchant/billing/gateways/usa_epay.rb +3 -3
  189. data/lib/active_merchant/billing/gateways/usa_epay_advanced.rb +37 -37
  190. data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +3 -3
  191. data/lib/active_merchant/billing/gateways/vanco.rb +25 -25
  192. data/lib/active_merchant/billing/gateways/verifi.rb +40 -40
  193. data/lib/active_merchant/billing/gateways/viaklix.rb +5 -5
  194. data/lib/active_merchant/billing/gateways/visanet_peru.rb +64 -36
  195. data/lib/active_merchant/billing/gateways/webpay.rb +8 -8
  196. data/lib/active_merchant/billing/gateways/wepay.rb +25 -25
  197. data/lib/active_merchant/billing/gateways/wirecard.rb +26 -26
  198. data/lib/active_merchant/billing/gateways/worldpay.rb +15 -15
  199. data/lib/active_merchant/billing/gateways/worldpay_online_payments.rb +42 -42
  200. data/lib/active_merchant/billing/gateways/worldpay_us.rb +17 -17
  201. data/lib/active_merchant/billing/model.rb +2 -2
  202. data/lib/active_merchant/billing/network_tokenization_credit_card.rb +1 -1
  203. data/lib/active_merchant/billing/rails.rb +1 -1
  204. data/lib/active_merchant/connection.rb +10 -8
  205. data/lib/active_merchant/country.rb +1 -1
  206. data/lib/active_merchant/net_http_ssl_connection.rb +1 -0
  207. data/lib/active_merchant/network_connection_retries.rb +12 -12
  208. data/lib/active_merchant/post_data.rb +1 -1
  209. data/lib/active_merchant/posts_data.rb +1 -1
  210. data/lib/active_merchant/version.rb +1 -1
  211. data/lib/certs/cacert.pem +37 -0
  212. data/lib/support/gateway_support.rb +2 -2
  213. data/lib/support/ssl_verify.rb +5 -5
  214. data/lib/support/ssl_version.rb +7 -7
  215. metadata +3 -7
  216. data/lib/active_merchant/billing/gateways/ideal/ideal_base.rb +0 -246
  217. data/lib/active_merchant/billing/gateways/ideal/ideal_rabobank.pem +0 -13
  218. data/lib/active_merchant/billing/gateways/ideal/ideal_response.rb +0 -29
  219. data/lib/active_merchant/billing/gateways/ideal_rabobank.rb +0 -66
@@ -7,15 +7,15 @@ module ActiveMerchant #:nodoc:
7
7
  AUTHORIZATION_EMV_SUCCESS = '8A023030'
8
8
  AUTHORIZATION_EMV_DECLINE = '8A023035'
9
9
 
10
- SUCCESS_MESSAGE = "Bogus Gateway: Forced success"
11
- FAILURE_MESSAGE = "Bogus Gateway: Forced failure"
12
- NUMBER_ERROR_MESSAGE = "Bogus Gateway: Use CreditCard number ending in 1 for success, 2 for exception and anything else for error"
13
- AMOUNT_ERROR_MESSAGE = "Bogus Gateway: Use amount ending in 00 for success, 05 for failure and anything else for exception"
14
- UNSTORE_ERROR_MESSAGE = "Bogus Gateway: Use trans_id ending in 1 for success, 2 for exception and anything else for error"
15
- CAPTURE_ERROR_MESSAGE = "Bogus Gateway: Use authorization number ending in 1 for exception, 2 for error and anything else for success"
16
- VOID_ERROR_MESSAGE = "Bogus Gateway: Use authorization number ending in 1 for exception, 2 for error and anything else for success"
17
- REFUND_ERROR_MESSAGE = "Bogus Gateway: Use trans_id number ending in 1 for exception, 2 for error and anything else for success"
18
- CHECK_ERROR_MESSAGE = "Bogus Gateway: Use bank account number ending in 1 for success, 2 for exception and anything else for error"
10
+ SUCCESS_MESSAGE = 'Bogus Gateway: Forced success'
11
+ FAILURE_MESSAGE = 'Bogus Gateway: Forced failure'
12
+ NUMBER_ERROR_MESSAGE = 'Bogus Gateway: Use CreditCard number ending in 1 for success, 2 for exception and anything else for error'
13
+ AMOUNT_ERROR_MESSAGE = 'Bogus Gateway: Use amount ending in 00 for success, 05 for failure and anything else for exception'
14
+ UNSTORE_ERROR_MESSAGE = 'Bogus Gateway: Use trans_id ending in 1 for success, 2 for exception and anything else for error'
15
+ CAPTURE_ERROR_MESSAGE = 'Bogus Gateway: Use authorization number ending in 1 for exception, 2 for error and anything else for success'
16
+ VOID_ERROR_MESSAGE = 'Bogus Gateway: Use authorization number ending in 1 for exception, 2 for error and anything else for success'
17
+ REFUND_ERROR_MESSAGE = 'Bogus Gateway: Use trans_id number ending in 1 for exception, 2 for error and anything else for success'
18
+ CHECK_ERROR_MESSAGE = 'Bogus Gateway: Use bank account number ending in 1 for success, 2 for exception and anything else for error'
19
19
 
20
20
  self.supported_countries = []
21
21
  self.supported_cardtypes = [:bogus]
@@ -129,7 +129,7 @@ module ActiveMerchant #:nodoc:
129
129
  def authorize_swipe(money, paysource, options = {})
130
130
  money = amount(money)
131
131
  case normalize(paysource)
132
- when /1$/
132
+ when /1$/, AUTHORIZATION
133
133
  Response.new(true, SUCCESS_MESSAGE, {:authorized_amount => money}, :test => true, :authorization => AUTHORIZATION )
134
134
  when /2$/
135
135
  Response.new(false, FAILURE_MESSAGE, {:authorized_amount => money, :error => FAILURE_MESSAGE }, :test => true, :error_code => STANDARD_ERROR_CODE[:processing_error])
@@ -1,9 +1,9 @@
1
- require "nokogiri"
1
+ require 'nokogiri'
2
2
 
3
3
  module ActiveMerchant #:nodoc:
4
4
  module Billing #:nodoc:
5
5
  class BorgunGateway < Gateway
6
- self.display_name = "Borgun"
6
+ self.display_name = 'Borgun'
7
7
  self.homepage_url = 'http://www.borgun.com'
8
8
 
9
9
  self.test_url = 'https://gatewaytest.borgun.is/ws/Heimir.pub.ws:Authorization'
@@ -77,9 +77,9 @@ module ActiveMerchant #:nodoc:
77
77
  private
78
78
 
79
79
  CURRENCY_CODES = Hash.new{|h,k| raise ArgumentError.new("Unsupported currency for HDFC: #{k}")}
80
- CURRENCY_CODES["ISK"] = "352"
81
- CURRENCY_CODES["EUR"] = "978"
82
- CURRENCY_CODES["USD"] = "840"
80
+ CURRENCY_CODES['ISK'] = '352'
81
+ CURRENCY_CODES['EUR'] = '978'
82
+ CURRENCY_CODES['USD'] = '840'
83
83
 
84
84
  def add_invoice(post, money, options)
85
85
  post[:TrAmount] = amount(money)
@@ -91,12 +91,12 @@ module ActiveMerchant #:nodoc:
91
91
  post[:PAN] = payment_method.number
92
92
  post[:ExpDate] = format(payment_method.year, :two_digits) + format(payment_method.month, :two_digits)
93
93
  post[:CVC2] = payment_method.verification_value
94
- post[:DateAndTime] = Time.now.strftime("%y%m%d%H%M%S")
94
+ post[:DateAndTime] = Time.now.strftime('%y%m%d%H%M%S')
95
95
  post[:RRN] = 'AMRCNT' + six_random_digits
96
96
  end
97
97
 
98
98
  def add_reference(post, authorization)
99
- dateandtime, batch, transaction, rrn, authcode, _, _, _ = split_authorization(authorization)
99
+ dateandtime, _batch, transaction, rrn, authcode, _, _, _ = split_authorization(authorization)
100
100
  post[:DateAndTime] = dateandtime
101
101
  post[:Transaction] = transaction
102
102
  post[:RRN] = rrn
@@ -151,7 +151,7 @@ module ActiveMerchant #:nodoc:
151
151
 
152
152
  def message_from(succeeded, response)
153
153
  if succeeded
154
- "Succeeded"
154
+ 'Succeeded'
155
155
  else
156
156
  response[:message] || "Error with ActionCode=#{response[:actioncode]}"
157
157
  end
@@ -167,11 +167,11 @@ module ActiveMerchant #:nodoc:
167
167
  response[:transtype],
168
168
  response[:tramount],
169
169
  response[:trcurrency]
170
- ].join("|")
170
+ ].join('|')
171
171
  end
172
172
 
173
173
  def split_authorization(authorization)
174
- dateandtime, batch, transaction, rrn, authcode, transtype, tramount, currency = authorization.split("|")
174
+ dateandtime, batch, transaction, rrn, authcode, transtype, tramount, currency = authorization.split('|')
175
175
  [dateandtime, batch, transaction, rrn, authcode, transtype, tramount, currency]
176
176
  end
177
177
 
@@ -185,7 +185,7 @@ module ActiveMerchant #:nodoc:
185
185
  end
186
186
 
187
187
  def request_headers
188
- { "Content-Type" => "application/soap+xml; charset=utf-8" }
188
+ { 'Content-Type' => 'application/soap+xml; charset=utf-8' }
189
189
  end
190
190
 
191
191
  def parse(body)
@@ -1,7 +1,7 @@
1
1
  module BraintreeCommon
2
2
  def self.included(base)
3
3
  base.supported_countries = %w(US CA AD AT BE BG HR CY CZ DK EE FI FR GI DE GR GG HU IS IM IE IT JE LV LI LT LU MT MC NL NO PL PT RO SM SK SI ES SE CH TR GB SG HK MY AU NZ)
4
- base.supported_cardtypes = [:visa, :master, :american_express, :discover, :jcb, :diners_club]
4
+ base.supported_cardtypes = [:visa, :master, :american_express, :discover, :jcb, :diners_club, :maestro]
5
5
  base.homepage_url = 'http://www.braintreepaymentsolutions.com'
6
6
  base.display_name = 'Braintree'
7
7
  base.default_currency = 'USD'
@@ -13,7 +13,7 @@ module BraintreeCommon
13
13
  end
14
14
 
15
15
  def scrub(transcript)
16
- return "" if transcript.blank?
16
+ return '' if transcript.blank?
17
17
  transcript.
18
18
  gsub(%r((Authorization: Basic )\w+), '\1[FILTERED]').
19
19
  gsub(%r((&?ccnumber=)\d*(&?)), '\1[FILTERED]\2').
@@ -1,9 +1,9 @@
1
1
  require 'active_merchant/billing/gateways/braintree/braintree_common'
2
2
 
3
3
  begin
4
- require "braintree"
4
+ require 'braintree'
5
5
  rescue LoadError
6
- raise "Could not load the braintree gem. Use `gem install braintree` to install it."
6
+ raise 'Could not load the braintree gem. Use `gem install braintree` to install it.'
7
7
  end
8
8
 
9
9
  unless Braintree::Version::Major == 2 && Braintree::Version::Minor >= 78
@@ -125,7 +125,7 @@ module ActiveMerchant #:nodoc:
125
125
  customer_exists_response = nil
126
126
  r.process{customer_exists_response = check_customer_exists(options[:customer])}
127
127
  r.process do
128
- if customer_exists_response.params["exists"]
128
+ if customer_exists_response.params['exists']
129
129
  add_credit_card_to_customer(creditcard, options)
130
130
  else
131
131
  add_customer_with_credit_card(creditcard, options)
@@ -149,7 +149,7 @@ module ActiveMerchant #:nodoc:
149
149
  :cardholder_name => creditcard.name,
150
150
  :number => creditcard.number,
151
151
  :cvv => creditcard.verification_value,
152
- :expiration_month => creditcard.month.to_s.rjust(2, "0"),
152
+ :expiration_month => creditcard.month.to_s.rjust(2, '0'),
153
153
  :expiration_year => creditcard.year.to_s
154
154
  }
155
155
  }, options)[:credit_card]
@@ -176,7 +176,7 @@ module ActiveMerchant #:nodoc:
176
176
  else
177
177
  @braintree_gateway.customer.delete(customer_vault_id)
178
178
  end
179
- Response.new(true, "OK")
179
+ Response.new(true, 'OK')
180
180
  end
181
181
  end
182
182
  alias_method :delete, :unstore
@@ -187,7 +187,7 @@ module ActiveMerchant #:nodoc:
187
187
 
188
188
  def verify_credentials
189
189
  begin
190
- @braintree_gateway.transaction.find("non_existent_token")
190
+ @braintree_gateway.transaction.find('non_existent_token')
191
191
  rescue Braintree::AuthenticationError
192
192
  return false
193
193
  rescue Braintree::NotFoundError
@@ -203,9 +203,9 @@ module ActiveMerchant #:nodoc:
203
203
  commit do
204
204
  begin
205
205
  @braintree_gateway.customer.find(customer_vault_id)
206
- ActiveMerchant::Billing::Response.new(true, "Customer found", {exists: true}, authorization: customer_vault_id)
206
+ ActiveMerchant::Billing::Response.new(true, 'Customer found', {exists: true}, authorization: customer_vault_id)
207
207
  rescue Braintree::NotFoundError
208
- ActiveMerchant::Billing::Response.new(true, "Customer not found", {exists: false})
208
+ ActiveMerchant::Billing::Response.new(true, 'Customer not found', {exists: false})
209
209
  end
210
210
  end
211
211
  end
@@ -220,7 +220,7 @@ module ActiveMerchant #:nodoc:
220
220
  :cardholder_name => creditcard.name,
221
221
  :number => creditcard.number,
222
222
  :cvv => creditcard.verification_value,
223
- :expiration_month => creditcard.month.to_s.rjust(2, "0"),
223
+ :expiration_month => creditcard.month.to_s.rjust(2, '0'),
224
224
  :expiration_year => creditcard.year.to_s,
225
225
  :token => options[:credit_card_token]
226
226
  }
@@ -254,7 +254,7 @@ module ActiveMerchant #:nodoc:
254
254
  cardholder_name: credit_card.name,
255
255
  number: credit_card.number,
256
256
  cvv: credit_card.verification_value,
257
- expiration_month: credit_card.month.to_s.rjust(2, "0"),
257
+ expiration_month: credit_card.month.to_s.rjust(2, '0'),
258
258
  expiration_year: credit_card.year.to_s,
259
259
  }
260
260
  parameters[:billing_address] = map_address(options[:billing_address]) if options[:billing_address]
@@ -336,9 +336,9 @@ module ActiveMerchant #:nodoc:
336
336
 
337
337
  def message_from_result(result)
338
338
  if result.success?
339
- "OK"
339
+ 'OK'
340
340
  elsif result.errors.any?
341
- result.errors.map { |e| "#{e.message} (#{e.code})" }.join(" ")
341
+ result.errors.map { |e| "#{e.message} (#{e.code})" }.join(' ')
342
342
  elsif result.credit_card_verification
343
343
  "Processor declined: #{result.credit_card_verification.processor_response_text} (#{result.credit_card_verification.processor_response_code})"
344
344
  else
@@ -377,41 +377,41 @@ module ActiveMerchant #:nodoc:
377
377
 
378
378
  def avs_mapping
379
379
  {
380
- "street: M, zip: M" => "M",
381
- "street: M, zip: N" => "A",
382
- "street: M, zip: U" => "B",
383
- "street: M, zip: I" => "B",
384
- "street: M, zip: A" => "B",
385
-
386
- "street: N, zip: M" => "Z",
387
- "street: N, zip: N" => "C",
388
- "street: N, zip: U" => "C",
389
- "street: N, zip: I" => "C",
390
- "street: N, zip: A" => "C",
391
-
392
- "street: U, zip: M" => "P",
393
- "street: U, zip: N" => "N",
394
- "street: U, zip: U" => "I",
395
- "street: U, zip: I" => "I",
396
- "street: U, zip: A" => "I",
397
-
398
- "street: I, zip: M" => "P",
399
- "street: I, zip: N" => "C",
400
- "street: I, zip: U" => "I",
401
- "street: I, zip: I" => "I",
402
- "street: I, zip: A" => "I",
403
-
404
- "street: A, zip: M" => "P",
405
- "street: A, zip: N" => "C",
406
- "street: A, zip: U" => "I",
407
- "street: A, zip: I" => "I",
408
- "street: A, zip: A" => "I"
380
+ 'street: M, zip: M' => 'M',
381
+ 'street: M, zip: N' => 'A',
382
+ 'street: M, zip: U' => 'B',
383
+ 'street: M, zip: I' => 'B',
384
+ 'street: M, zip: A' => 'B',
385
+
386
+ 'street: N, zip: M' => 'Z',
387
+ 'street: N, zip: N' => 'C',
388
+ 'street: N, zip: U' => 'C',
389
+ 'street: N, zip: I' => 'C',
390
+ 'street: N, zip: A' => 'C',
391
+
392
+ 'street: U, zip: M' => 'P',
393
+ 'street: U, zip: N' => 'N',
394
+ 'street: U, zip: U' => 'I',
395
+ 'street: U, zip: I' => 'I',
396
+ 'street: U, zip: A' => 'I',
397
+
398
+ 'street: I, zip: M' => 'P',
399
+ 'street: I, zip: N' => 'C',
400
+ 'street: I, zip: U' => 'I',
401
+ 'street: I, zip: I' => 'I',
402
+ 'street: I, zip: A' => 'I',
403
+
404
+ 'street: A, zip: M' => 'P',
405
+ 'street: A, zip: N' => 'C',
406
+ 'street: A, zip: U' => 'I',
407
+ 'street: A, zip: I' => 'I',
408
+ 'street: A, zip: A' => 'I'
409
409
  }
410
410
  end
411
411
 
412
412
  def message_from_transaction_result(result)
413
- if result.transaction && result.transaction.status == "gateway_rejected"
414
- "Transaction declined - gateway rejected"
413
+ if result.transaction && result.transaction.status == 'gateway_rejected'
414
+ 'Transaction declined - gateway rejected'
415
415
  elsif result.transaction
416
416
  "#{result.transaction.processor_response_code} #{result.transaction.processor_response_text}"
417
417
  else
@@ -454,22 +454,22 @@ module ActiveMerchant #:nodoc:
454
454
 
455
455
  def customer_hash(customer, include_credit_cards=false)
456
456
  hash = {
457
- "email" => customer.email,
458
- "phone" => customer.phone,
459
- "first_name" => customer.first_name,
460
- "last_name" => customer.last_name,
461
- "id" => customer.id
457
+ 'email' => customer.email,
458
+ 'phone' => customer.phone,
459
+ 'first_name' => customer.first_name,
460
+ 'last_name' => customer.last_name,
461
+ 'id' => customer.id
462
462
  }
463
463
 
464
464
  if include_credit_cards
465
- hash["credit_cards"] = customer.credit_cards.map do |cc|
465
+ hash['credit_cards'] = customer.credit_cards.map do |cc|
466
466
  {
467
- "bin" => cc.bin,
468
- "expiration_date" => cc.expiration_date,
469
- "token" => cc.token,
470
- "last_4" => cc.last_4,
471
- "card_type" => cc.card_type,
472
- "masked_number" => cc.masked_number
467
+ 'bin' => cc.bin,
468
+ 'expiration_date' => cc.expiration_date,
469
+ 'token' => cc.token,
470
+ 'last_4' => cc.last_4,
471
+ 'card_type' => cc.card_type,
472
+ 'masked_number' => cc.masked_number
473
473
  }
474
474
  end
475
475
  end
@@ -479,16 +479,16 @@ module ActiveMerchant #:nodoc:
479
479
 
480
480
  def transaction_hash(result)
481
481
  unless result.success?
482
- return { "processor_response_code" => response_code_from_result(result) }
482
+ return { 'processor_response_code' => response_code_from_result(result) }
483
483
  end
484
484
 
485
485
  transaction = result.transaction
486
486
  if transaction.vault_customer
487
487
  vault_customer = {
488
488
  }
489
- vault_customer["credit_cards"] = transaction.vault_customer.credit_cards.map do |cc|
489
+ vault_customer['credit_cards'] = transaction.vault_customer.credit_cards.map do |cc|
490
490
  {
491
- "bin" => cc.bin
491
+ 'bin' => cc.bin
492
492
  }
493
493
  end
494
494
  else
@@ -496,49 +496,49 @@ module ActiveMerchant #:nodoc:
496
496
  end
497
497
 
498
498
  customer_details = {
499
- "id" => transaction.customer_details.id,
500
- "email" => transaction.customer_details.email,
501
- "phone" => transaction.customer_details.phone,
499
+ 'id' => transaction.customer_details.id,
500
+ 'email' => transaction.customer_details.email,
501
+ 'phone' => transaction.customer_details.phone,
502
502
  }
503
503
 
504
504
  billing_details = {
505
- "street_address" => transaction.billing_details.street_address,
506
- "extended_address" => transaction.billing_details.extended_address,
507
- "company" => transaction.billing_details.company,
508
- "locality" => transaction.billing_details.locality,
509
- "region" => transaction.billing_details.region,
510
- "postal_code" => transaction.billing_details.postal_code,
511
- "country_name" => transaction.billing_details.country_name,
505
+ 'street_address' => transaction.billing_details.street_address,
506
+ 'extended_address' => transaction.billing_details.extended_address,
507
+ 'company' => transaction.billing_details.company,
508
+ 'locality' => transaction.billing_details.locality,
509
+ 'region' => transaction.billing_details.region,
510
+ 'postal_code' => transaction.billing_details.postal_code,
511
+ 'country_name' => transaction.billing_details.country_name,
512
512
  }
513
513
 
514
514
  shipping_details = {
515
- "street_address" => transaction.shipping_details.street_address,
516
- "extended_address" => transaction.shipping_details.extended_address,
517
- "company" => transaction.shipping_details.company,
518
- "locality" => transaction.shipping_details.locality,
519
- "region" => transaction.shipping_details.region,
520
- "postal_code" => transaction.shipping_details.postal_code,
521
- "country_name" => transaction.shipping_details.country_name,
515
+ 'street_address' => transaction.shipping_details.street_address,
516
+ 'extended_address' => transaction.shipping_details.extended_address,
517
+ 'company' => transaction.shipping_details.company,
518
+ 'locality' => transaction.shipping_details.locality,
519
+ 'region' => transaction.shipping_details.region,
520
+ 'postal_code' => transaction.shipping_details.postal_code,
521
+ 'country_name' => transaction.shipping_details.country_name,
522
522
  }
523
523
  credit_card_details = {
524
- "masked_number" => transaction.credit_card_details.masked_number,
525
- "bin" => transaction.credit_card_details.bin,
526
- "last_4" => transaction.credit_card_details.last_4,
527
- "card_type" => transaction.credit_card_details.card_type,
528
- "token" => transaction.credit_card_details.token
524
+ 'masked_number' => transaction.credit_card_details.masked_number,
525
+ 'bin' => transaction.credit_card_details.bin,
526
+ 'last_4' => transaction.credit_card_details.last_4,
527
+ 'card_type' => transaction.credit_card_details.card_type,
528
+ 'token' => transaction.credit_card_details.token
529
529
  }
530
530
 
531
531
  {
532
- "order_id" => transaction.order_id,
533
- "amount" => transaction.amount.to_s,
534
- "status" => transaction.status,
535
- "credit_card_details" => credit_card_details,
536
- "customer_details" => customer_details,
537
- "billing_details" => billing_details,
538
- "shipping_details" => shipping_details,
539
- "vault_customer" => vault_customer,
540
- "merchant_account_id" => transaction.merchant_account_id,
541
- "processor_response_code" => response_code_from_result(result)
532
+ 'order_id' => transaction.order_id,
533
+ 'amount' => transaction.amount.to_s,
534
+ 'status' => transaction.status,
535
+ 'credit_card_details' => credit_card_details,
536
+ 'customer_details' => customer_details,
537
+ 'billing_details' => billing_details,
538
+ 'shipping_details' => shipping_details,
539
+ 'vault_customer' => vault_customer,
540
+ 'merchant_account_id' => transaction.merchant_account_id,
541
+ 'processor_response_code' => response_code_from_result(result)
542
542
  }
543
543
  end
544
544
 
@@ -547,7 +547,7 @@ module ActiveMerchant #:nodoc:
547
547
  :amount => localized_amount(money, options[:currency] || default_currency).to_s,
548
548
  :order_id => options[:order_id],
549
549
  :customer => {
550
- :id => options[:store] == true ? "" : options[:store],
550
+ :id => options[:store] == true ? '' : options[:store],
551
551
  :email => scrub_email(options[:email]),
552
552
  :phone => options[:phone] || (options[:billing_address][:phone] if options[:billing_address] &&
553
553
  options[:billing_address][:phone])
@@ -592,7 +592,7 @@ module ActiveMerchant #:nodoc:
592
592
  if credit_card_or_vault_id.source == :apple_pay
593
593
  parameters[:apple_pay_card] = {
594
594
  :number => credit_card_or_vault_id.number,
595
- :expiration_month => credit_card_or_vault_id.month.to_s.rjust(2, "0"),
595
+ :expiration_month => credit_card_or_vault_id.month.to_s.rjust(2, '0'),
596
596
  :expiration_year => credit_card_or_vault_id.year.to_s,
597
597
  :cardholder_name => credit_card_or_vault_id.name,
598
598
  :cryptogram => credit_card_or_vault_id.payment_cryptogram,
@@ -602,7 +602,7 @@ module ActiveMerchant #:nodoc:
602
602
  parameters[:android_pay_card] = {
603
603
  :number => credit_card_or_vault_id.number,
604
604
  :cryptogram => credit_card_or_vault_id.payment_cryptogram,
605
- :expiration_month => credit_card_or_vault_id.month.to_s.rjust(2, "0"),
605
+ :expiration_month => credit_card_or_vault_id.month.to_s.rjust(2, '0'),
606
606
  :expiration_year => credit_card_or_vault_id.year.to_s,
607
607
  :google_transaction_id => credit_card_or_vault_id.transaction_id,
608
608
  :source_card_type => credit_card_or_vault_id.brand,
@@ -614,7 +614,7 @@ module ActiveMerchant #:nodoc:
614
614
  parameters[:credit_card] = {
615
615
  :number => credit_card_or_vault_id.number,
616
616
  :cvv => credit_card_or_vault_id.verification_value,
617
- :expiration_month => credit_card_or_vault_id.month.to_s.rjust(2, "0"),
617
+ :expiration_month => credit_card_or_vault_id.month.to_s.rjust(2, '0'),
618
618
  :expiration_year => credit_card_or_vault_id.year.to_s,
619
619
  :cardholder_name => credit_card_or_vault_id.name
620
620
  }