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
@@ -11,25 +11,25 @@ module ActiveMerchant #:nodoc:
11
11
  self.homepage_url = 'http://merchantwarehouse.com/merchantware'
12
12
  self.display_name = 'MerchantWARE'
13
13
 
14
- ENV_NAMESPACES = { "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
15
- "xmlns:xsd" => "http://www.w3.org/2001/XMLSchema",
16
- "xmlns:env" => "http://schemas.xmlsoap.org/soap/envelope/"
14
+ ENV_NAMESPACES = { 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
15
+ 'xmlns:xsd' => 'http://www.w3.org/2001/XMLSchema',
16
+ 'xmlns:env' => 'http://schemas.xmlsoap.org/soap/envelope/'
17
17
  }
18
- ENV_NAMESPACES_V4 = { "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
19
- "xmlns:xsd" => "http://www.w3.org/2001/XMLSchema",
20
- "xmlns:soap" => "http://schemas.xmlsoap.org/soap/envelope/"
18
+ ENV_NAMESPACES_V4 = { 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
19
+ 'xmlns:xsd' => 'http://www.w3.org/2001/XMLSchema',
20
+ 'xmlns:soap' => 'http://schemas.xmlsoap.org/soap/envelope/'
21
21
  }
22
22
 
23
- TX_NAMESPACE = "http://merchantwarehouse.com/MerchantWARE/Client/TransactionRetail"
24
- TX_NAMESPACE_V4 = "http://schemas.merchantwarehouse.com/merchantware/40/Credit/"
23
+ TX_NAMESPACE = 'http://merchantwarehouse.com/MerchantWARE/Client/TransactionRetail'
24
+ TX_NAMESPACE_V4 = 'http://schemas.merchantwarehouse.com/merchantware/40/Credit/'
25
25
 
26
26
  ACTIONS = {
27
- :purchase => "IssueKeyedSale",
28
- :authorize => "IssueKeyedPreAuth",
29
- :capture => "IssuePostAuth",
30
- :void => "VoidPreAuthorization",
31
- :credit => "IssueKeyedRefund",
32
- :reference_credit => "IssueRefundByReference"
27
+ :purchase => 'IssueKeyedSale',
28
+ :authorize => 'IssueKeyedPreAuth',
29
+ :capture => 'IssuePostAuth',
30
+ :void => 'VoidPreAuthorization',
31
+ :credit => 'IssueKeyedRefund',
32
+ :reference_credit => 'IssueRefundByReference'
33
33
  }
34
34
 
35
35
  # Creates a new MerchantWareGateway
@@ -121,9 +121,9 @@ module ActiveMerchant #:nodoc:
121
121
  def soap_request(action)
122
122
  xml = Builder::XmlMarkup.new :indent => 2
123
123
  xml.instruct!
124
- xml.tag! "env:Envelope", ENV_NAMESPACES do
125
- xml.tag! "env:Body" do
126
- xml.tag! ACTIONS[action], "xmlns" => TX_NAMESPACE do
124
+ xml.tag! 'env:Envelope', ENV_NAMESPACES do
125
+ xml.tag! 'env:Body' do
126
+ xml.tag! ACTIONS[action], 'xmlns' => TX_NAMESPACE do
127
127
  add_credentials(xml)
128
128
  yield xml
129
129
  end
@@ -135,12 +135,12 @@ module ActiveMerchant #:nodoc:
135
135
  def v4_soap_request(action)
136
136
  xml = Builder::XmlMarkup.new :indent => 2
137
137
  xml.instruct!
138
- xml.tag! "soap:Envelope", ENV_NAMESPACES_V4 do
139
- xml.tag! "soap:Body" do
140
- xml.tag! ACTIONS[:void], "xmlns" => TX_NAMESPACE_V4 do
141
- xml.tag! "merchantName", @options[:name]
142
- xml.tag! "merchantSiteId", @options[:login]
143
- xml.tag! "merchantKey", @options[:password]
138
+ xml.tag! 'soap:Envelope', ENV_NAMESPACES_V4 do
139
+ xml.tag! 'soap:Body' do
140
+ xml.tag! ACTIONS[:void], 'xmlns' => TX_NAMESPACE_V4 do
141
+ xml.tag! 'merchantName', @options[:name]
142
+ xml.tag! 'merchantSiteId', @options[:login]
143
+ xml.tag! 'merchantKey', @options[:password]
144
144
  yield xml
145
145
  end
146
146
  end
@@ -175,7 +175,7 @@ module ActiveMerchant #:nodoc:
175
175
  request = soap_request(:reference_credit) do |xml|
176
176
  add_reference(xml, reference)
177
177
  add_invoice(xml, options)
178
- add_amount(xml, money, "strOverrideAmount")
178
+ add_amount(xml, money, 'strOverrideAmount')
179
179
  end
180
180
 
181
181
  commit(:reference_credit, request)
@@ -194,47 +194,47 @@ module ActiveMerchant #:nodoc:
194
194
  end
195
195
 
196
196
  def add_credentials(xml)
197
- xml.tag! "strSiteId", @options[:login]
198
- xml.tag! "strKey", @options[:password]
199
- xml.tag! "strName", @options[:name]
197
+ xml.tag! 'strSiteId', @options[:login]
198
+ xml.tag! 'strKey', @options[:password]
199
+ xml.tag! 'strName', @options[:name]
200
200
  end
201
201
 
202
202
  def add_invoice(xml, options)
203
- xml.tag! "strOrderNumber", options[:order_id].to_s.gsub(/[^\w]/, '').slice(0, 25)
203
+ xml.tag! 'strOrderNumber', options[:order_id].to_s.gsub(/[^\w]/, '').slice(0, 25)
204
204
  end
205
205
 
206
- def add_amount(xml, money, tag = "strAmount")
206
+ def add_amount(xml, money, tag = 'strAmount')
207
207
  xml.tag! tag, amount(money)
208
208
  end
209
209
 
210
210
  def add_reference(xml, reference)
211
- xml.tag! "strReferenceCode", reference
211
+ xml.tag! 'strReferenceCode', reference
212
212
  end
213
213
 
214
214
  def add_reference_token(xml, reference)
215
- xml.tag! "token", reference
215
+ xml.tag! 'token', reference
216
216
  end
217
217
 
218
218
  def add_address(xml, options)
219
219
  if address = options[:billing_address] || options[:address]
220
- xml.tag! "strAVSStreetAddress", address[:address1]
221
- xml.tag! "strAVSZipCode", address[:zip]
220
+ xml.tag! 'strAVSStreetAddress', address[:address1]
221
+ xml.tag! 'strAVSZipCode', address[:zip]
222
222
  end
223
223
  end
224
224
 
225
225
  def add_credit_card(xml, credit_card)
226
226
  if credit_card.respond_to?(:track_data) && credit_card.track_data.present?
227
- xml.tag! "trackData", credit_card.track_data
227
+ xml.tag! 'trackData', credit_card.track_data
228
228
  else
229
- xml.tag! "strPAN", credit_card.number
230
- xml.tag! "strExpDate", expdate(credit_card)
231
- xml.tag! "strCardHolder", credit_card.name
232
- xml.tag! "strCVCode", credit_card.verification_value if credit_card.verification_value?
229
+ xml.tag! 'strPAN', credit_card.number
230
+ xml.tag! 'strExpDate', expdate(credit_card)
231
+ xml.tag! 'strCardHolder', credit_card.name
232
+ xml.tag! 'strCVCode', credit_card.verification_value if credit_card.verification_value?
233
233
  end
234
234
  end
235
235
 
236
236
  def split_reference(reference)
237
- reference.to_s.split(";")
237
+ reference.to_s.split(';')
238
238
  end
239
239
 
240
240
  def parse(action, data)
@@ -247,10 +247,10 @@ module ActiveMerchant #:nodoc:
247
247
  response[element.name] = element.text
248
248
  end
249
249
 
250
- status, code, message = response["ApprovalStatus"].split(";")
250
+ status, code, message = response['ApprovalStatus'].split(';')
251
251
  response[:status] = status
252
252
 
253
- if response[:success] = status == "APPROVED"
253
+ if response[:success] = status == 'APPROVED'
254
254
  response[:message] = status
255
255
  else
256
256
  response[:message] = message
@@ -268,17 +268,17 @@ module ActiveMerchant #:nodoc:
268
268
 
269
269
  document = REXML::Document.new(http_response.body)
270
270
 
271
- node = REXML::XPath.first(document, "//soap:Fault")
271
+ node = REXML::XPath.first(document, '//soap:Fault')
272
272
 
273
273
  node.elements.each do |element|
274
274
  response[element.name] = element.text
275
275
  end
276
276
 
277
- response[:message] = response["faultstring"].to_s.gsub("\n", " ")
277
+ response[:message] = response['faultstring'].to_s.gsub("\n", ' ')
278
278
  response
279
279
  rescue REXML::ParseException
280
280
  response[:http_body] = http_response.body
281
- response[:message] = "Failed to parse the failed response"
281
+ response[:message] = 'Failed to parse the failed response'
282
282
  response
283
283
  end
284
284
 
@@ -293,8 +293,8 @@ module ActiveMerchant #:nodoc:
293
293
  def commit(action, request, v4 = false)
294
294
  begin
295
295
  data = ssl_post(url(v4), request,
296
- "Content-Type" => 'text/xml; charset=utf-8',
297
- "SOAPAction" => soap_action(action, v4)
296
+ 'Content-Type' => 'text/xml; charset=utf-8',
297
+ 'SOAPAction' => soap_action(action, v4)
298
298
  )
299
299
  response = parse(action, data)
300
300
  rescue ActiveMerchant::ResponseError => e
@@ -304,14 +304,14 @@ module ActiveMerchant #:nodoc:
304
304
  Response.new(response[:success], response[:message], response,
305
305
  :test => test?,
306
306
  :authorization => authorization_from(response),
307
- :avs_result => { :code => response["AVSResponse"] },
308
- :cvv_result => response["CVResponse"]
307
+ :avs_result => { :code => response['AVSResponse'] },
308
+ :cvv_result => response['CVResponse']
309
309
  )
310
310
  end
311
311
 
312
312
  def authorization_from(response)
313
313
  if response[:success]
314
- [ response["ReferenceID"], response["OrderNumber"] ].join(";")
314
+ [ response['ReferenceID'], response['OrderNumber'] ].join(';')
315
315
  end
316
316
  end
317
317
  end
@@ -9,19 +9,19 @@ module ActiveMerchant #:nodoc:
9
9
  self.homepage_url = 'http://merchantwarehouse.com/merchantware'
10
10
  self.display_name = 'MerchantWARE'
11
11
 
12
- ENV_NAMESPACES = { "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
13
- "xmlns:xsd" => "http://www.w3.org/2001/XMLSchema",
14
- "xmlns:soap" => "http://schemas.xmlsoap.org/soap/envelope/" }
12
+ ENV_NAMESPACES = { 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
13
+ 'xmlns:xsd' => 'http://www.w3.org/2001/XMLSchema',
14
+ 'xmlns:soap' => 'http://schemas.xmlsoap.org/soap/envelope/' }
15
15
 
16
- TX_NAMESPACE = "http://schemas.merchantwarehouse.com/merchantware/40/Credit/"
16
+ TX_NAMESPACE = 'http://schemas.merchantwarehouse.com/merchantware/40/Credit/'
17
17
 
18
18
  ACTIONS = {
19
- :purchase => "SaleKeyed",
19
+ :purchase => 'SaleKeyed',
20
20
  :reference_purchase => 'RepeatSale',
21
- :authorize => "PreAuthorizationKeyed",
22
- :capture => "PostAuthorization",
23
- :void => "Void",
24
- :refund => "Refund"
21
+ :authorize => 'PreAuthorizationKeyed',
22
+ :capture => 'PostAuthorization',
23
+ :void => 'Void',
24
+ :refund => 'Refund'
25
25
  }
26
26
 
27
27
  # Creates a new MerchantWareVersionFourGateway
@@ -102,7 +102,7 @@ module ActiveMerchant #:nodoc:
102
102
  request = soap_request(:refund) do |xml|
103
103
  add_reference_token(xml, reference)
104
104
  add_invoice(xml, options)
105
- add_amount(xml, money, "overrideAmount")
105
+ add_amount(xml, money, 'overrideAmount')
106
106
  end
107
107
 
108
108
  commit(:refund, request)
@@ -131,12 +131,12 @@ module ActiveMerchant #:nodoc:
131
131
  def soap_request(action)
132
132
  xml = Builder::XmlMarkup.new :indent => 2
133
133
  xml.instruct!
134
- xml.tag! "soap:Envelope", ENV_NAMESPACES do
135
- xml.tag! "soap:Body" do
136
- xml.tag! ACTIONS[action], "xmlns" => TX_NAMESPACE do
137
- xml.tag! "merchantName", @options[:name]
138
- xml.tag! "merchantSiteId", @options[:login]
139
- xml.tag! "merchantKey", @options[:password]
134
+ xml.tag! 'soap:Envelope', ENV_NAMESPACES do
135
+ xml.tag! 'soap:Body' do
136
+ xml.tag! ACTIONS[action], 'xmlns' => TX_NAMESPACE do
137
+ xml.tag! 'merchantName', @options[:name]
138
+ xml.tag! 'merchantSiteId', @options[:login]
139
+ xml.tag! 'merchantKey', @options[:password]
140
140
  yield xml
141
141
  end
142
142
  end
@@ -166,21 +166,21 @@ module ActiveMerchant #:nodoc:
166
166
  end
167
167
 
168
168
  def add_invoice(xml, options)
169
- xml.tag! "invoiceNumber", truncate(options[:order_id].to_s.gsub(/[^\w]/, ''), 8)
169
+ xml.tag! 'invoiceNumber', truncate(options[:order_id].to_s.gsub(/[^\w]/, ''), 8)
170
170
  end
171
171
 
172
- def add_amount(xml, money, tag = "amount")
172
+ def add_amount(xml, money, tag = 'amount')
173
173
  xml.tag! tag, amount(money)
174
174
  end
175
175
 
176
176
  def add_reference_token(xml, reference)
177
- xml.tag! "token", reference
177
+ xml.tag! 'token', reference
178
178
  end
179
179
 
180
180
  def add_address(xml, options)
181
181
  address = options[:billing_address] || options[:address] || {}
182
- xml.tag! "avsStreetAddress", address[:address1]
183
- xml.tag! "avsStreetZipCode", address[:zip]
182
+ xml.tag! 'avsStreetAddress', address[:address1]
183
+ xml.tag! 'avsStreetZipCode', address[:zip]
184
184
  end
185
185
 
186
186
  def add_payment_source(xml, source)
@@ -192,14 +192,14 @@ module ActiveMerchant #:nodoc:
192
192
  end
193
193
 
194
194
  def add_credit_card(xml, credit_card)
195
- xml.tag! "cardNumber", credit_card.number
196
- xml.tag! "expirationDate", expdate(credit_card)
197
- xml.tag! "cardholder", credit_card.name
198
- xml.tag! "cardSecurityCode", credit_card.verification_value if credit_card.verification_value?
195
+ xml.tag! 'cardNumber', credit_card.number
196
+ xml.tag! 'expirationDate', expdate(credit_card)
197
+ xml.tag! 'cardholder', credit_card.name
198
+ xml.tag! 'cardSecurityCode', credit_card.verification_value if credit_card.verification_value?
199
199
  end
200
200
 
201
201
  def split_reference(reference)
202
- reference.to_s.split(";")
202
+ reference.to_s.split(';')
203
203
  end
204
204
 
205
205
  def parse(action, data)
@@ -212,14 +212,14 @@ module ActiveMerchant #:nodoc:
212
212
  response[element.name] = element.text
213
213
  end
214
214
 
215
- if response["ErrorMessage"].present?
216
- response[:message] = response["ErrorMessage"]
215
+ if response['ErrorMessage'].present?
216
+ response[:message] = response['ErrorMessage']
217
217
  response[:success] = false
218
218
  else
219
- status, code, message = response["ApprovalStatus"].split(";")
219
+ status, code, message = response['ApprovalStatus'].split(';')
220
220
  response[:status] = status
221
221
 
222
- if response[:success] = status == "APPROVED"
222
+ if response[:success] = status == 'APPROVED'
223
223
  response[:message] = status
224
224
  else
225
225
  response[:message] = message
@@ -243,11 +243,11 @@ module ActiveMerchant #:nodoc:
243
243
  response[element.name] = element.text
244
244
  end
245
245
 
246
- response[:message] = response["ErrorMessage"].to_s.gsub("\n", " ")
246
+ response[:message] = response['ErrorMessage'].to_s.gsub("\n", ' ')
247
247
  response
248
248
  rescue REXML::ParseException
249
249
  response[:http_body] = http_response.body
250
- response[:message] = "Failed to parse the failed response"
250
+ response[:message] = 'Failed to parse the failed response'
251
251
  response
252
252
  end
253
253
 
@@ -262,8 +262,8 @@ module ActiveMerchant #:nodoc:
262
262
  def commit(action, request)
263
263
  begin
264
264
  data = ssl_post(url, request,
265
- "Content-Type" => 'text/xml; charset=utf-8',
266
- "SOAPAction" => soap_action(action)
265
+ 'Content-Type' => 'text/xml; charset=utf-8',
266
+ 'SOAPAction' => soap_action(action)
267
267
  )
268
268
  response = parse(action, data)
269
269
  rescue ActiveMerchant::ResponseError => e
@@ -273,8 +273,8 @@ module ActiveMerchant #:nodoc:
273
273
  Response.new(response[:success], response[:message], response,
274
274
  :test => test?,
275
275
  :authorization => authorization_from(response),
276
- :avs_result => { :code => response["AvsResponse"] },
277
- :cvv_result => response["CvResponse"]
276
+ :avs_result => { :code => response['AvsResponse'] },
277
+ :cvv_result => response['CvResponse']
278
278
  )
279
279
  end
280
280
 
@@ -119,7 +119,7 @@ module ActiveMerchant #:nodoc:
119
119
  def add_creditcard(post, creditcard)
120
120
  post['paymentCardNumber'] = creditcard.number
121
121
  post['paymentCardName'] = scrub_name(creditcard.name)
122
- post['paymentCardExpiry'] = creditcard.expiry_date.expiration.strftime("%m%y")
122
+ post['paymentCardExpiry'] = creditcard.expiry_date.expiration.strftime('%m%y')
123
123
  post['paymentCardCSC'] = creditcard.verification_value if creditcard.verification_value?
124
124
  end
125
125
 
@@ -188,14 +188,14 @@ module ActiveMerchant #:nodoc:
188
188
 
189
189
  def url_for(action, post)
190
190
  if token?(post)
191
- [(test? ? TOKEN_TEST_URL : TOKEN_LIVE_URL), action].join("/")
191
+ [(test? ? TOKEN_TEST_URL : TOKEN_LIVE_URL), action].join('/')
192
192
  else
193
193
  (test? ? POST_TEST_URL : POST_LIVE_URL)
194
194
  end
195
195
  end
196
196
 
197
197
  def token?(post)
198
- (post["cardID"] || post["cardName"])
198
+ (post['cardID'] || post['cardName'])
199
199
  end
200
200
 
201
201
  def success?(response)
@@ -203,7 +203,7 @@ module ActiveMerchant #:nodoc:
203
203
  end
204
204
 
205
205
  def post_data(post)
206
- post.collect{|k,v| "#{k}=#{CGI.escape(v.to_s)}" }.join("&")
206
+ post.collect{|k,v| "#{k}=#{CGI.escape(v.to_s)}" }.join('&')
207
207
  end
208
208
  end
209
209
  end
@@ -87,8 +87,8 @@ module ActiveMerchant #:nodoc:
87
87
 
88
88
  def scrub(transcript)
89
89
  transcript.
90
- gsub(%r(&lt;), "<").
91
- gsub(%r(&gt;), ">").
90
+ gsub(%r(&lt;), '<').
91
+ gsub(%r(&gt;), '>').
92
92
  gsub(%r((<pw>).*(</pw>))i, '\1[FILTERED]\2').
93
93
  gsub(%r((<AcctNo>)(\d|x)*(</AcctNo>))i, '\1[FILTERED]\3').
94
94
  gsub(%r((<CVVData>)\d*(</CVVData>))i, '\1[FILTERED]\2')
@@ -99,15 +99,15 @@ module ActiveMerchant #:nodoc:
99
99
  def build_non_authorized_request(action, money, credit_card, options)
100
100
  xml = Builder::XmlMarkup.new
101
101
 
102
- xml.tag! "TStream" do
103
- xml.tag! "Transaction" do
102
+ xml.tag! 'TStream' do
103
+ xml.tag! 'Transaction' do
104
104
  xml.tag! 'TranType', 'Credit'
105
105
  xml.tag! 'TranCode', action
106
106
  if options[:allow_partial_auth] && (action == 'PreAuth' || action == 'Sale')
107
- xml.tag! "PartialAuth", "Allow"
107
+ xml.tag! 'PartialAuth', 'Allow'
108
108
  end
109
109
  add_invoice(xml, options[:order_id], nil, options)
110
- add_reference(xml, "RecordNumberRequested")
110
+ add_reference(xml, 'RecordNumberRequested')
111
111
  add_customer_data(xml, options)
112
112
  add_amount(xml, money, options)
113
113
  add_credit_card(xml, credit_card, action)
@@ -121,15 +121,15 @@ module ActiveMerchant #:nodoc:
121
121
  xml = Builder::XmlMarkup.new
122
122
 
123
123
  invoice_no, ref_no, auth_code, acq_ref_data, process_data, record_no, amount = split_authorization(authorization)
124
- ref_no = "1" if ref_no.blank?
124
+ ref_no = '1' if ref_no.blank?
125
125
 
126
- xml.tag! "TStream" do
127
- xml.tag! "Transaction" do
126
+ xml.tag! 'TStream' do
127
+ xml.tag! 'Transaction' do
128
128
  xml.tag! 'TranType', 'Credit'
129
129
  if options[:allow_partial_auth] && (action == 'PreAuthCapture')
130
- xml.tag! "PartialAuth", "Allow"
130
+ xml.tag! 'PartialAuth', 'Allow'
131
131
  end
132
- xml.tag! 'TranCode', (@use_tokenization ? (action + "ByRecordNo") : action)
132
+ xml.tag! 'TranCode', (@use_tokenization ? (action + 'ByRecordNo') : action)
133
133
  add_invoice(xml, invoice_no, ref_no, options)
134
134
  add_reference(xml, record_no)
135
135
  add_customer_data(xml, options)
@@ -137,9 +137,9 @@ module ActiveMerchant #:nodoc:
137
137
  add_credit_card(xml, credit_card, action) if credit_card
138
138
  add_address(xml, options)
139
139
  xml.tag! 'TranInfo' do
140
- xml.tag! "AuthCode", auth_code
141
- xml.tag! "AcqRefData", acq_ref_data
142
- xml.tag! "ProcessData", process_data
140
+ xml.tag! 'AuthCode', auth_code
141
+ xml.tag! 'AcqRefData', acq_ref_data
142
+ xml.tag! 'ProcessData', process_data
143
143
  end
144
144
  end
145
145
  end
@@ -149,8 +149,8 @@ module ActiveMerchant #:nodoc:
149
149
  def build_card_lookup_request(credit_card, options)
150
150
  xml = Builder::XmlMarkup.new
151
151
 
152
- xml.tag! "TStream" do
153
- xml.tag! "Transaction" do
152
+ xml.tag! 'TStream' do
153
+ xml.tag! 'Transaction' do
154
154
  xml.tag! 'TranType', 'CardLookup'
155
155
  xml.tag! 'RecordNo', 'RecordNumberRequested'
156
156
  xml.tag! 'Frequency', 'OneTime'
@@ -172,15 +172,15 @@ module ActiveMerchant #:nodoc:
172
172
 
173
173
  def add_reference(xml, record_no)
174
174
  if @use_tokenization
175
- xml.tag! "Frequency", "OneTime"
176
- xml.tag! "RecordNo", record_no
175
+ xml.tag! 'Frequency', 'OneTime'
176
+ xml.tag! 'RecordNo', record_no
177
177
  end
178
178
  end
179
179
 
180
180
  def add_customer_data(xml, options)
181
181
  xml.tag! 'IpAddress', options[:ip] if options[:ip]
182
182
  if options[:customer]
183
- xml.tag! "TranInfo" do
183
+ xml.tag! 'TranInfo' do
184
184
  xml.tag! 'CustomerCode', options[:customer]
185
185
  end
186
186
  end
@@ -255,12 +255,12 @@ module ActiveMerchant #:nodoc:
255
255
  def hashify_xml!(xml, response)
256
256
  xml = REXML::Document.new(xml)
257
257
 
258
- xml.elements.each("//CmdResponse/*") do |node|
258
+ xml.elements.each('//CmdResponse/*') do |node|
259
259
  response[node.name.underscore.to_sym] = node.text
260
260
  end
261
261
 
262
- xml.elements.each("//TranResponse/*") do |node|
263
- if node.name.to_s == "Amount"
262
+ xml.elements.each('//TranResponse/*') do |node|
263
+ if node.name.to_s == 'Amount'
264
264
  node.elements.each do |amt|
265
265
  response[amt.name.underscore.to_sym] = amt.text
266
266
  end
@@ -293,8 +293,8 @@ module ActiveMerchant #:nodoc:
293
293
 
294
294
  def build_header
295
295
  {
296
- "SOAPAction" => "http://www.mercurypay.com/CreditTransaction",
297
- "Content-Type" => "text/xml; charset=utf-8"
296
+ 'SOAPAction' => 'http://www.mercurypay.com/CreditTransaction',
297
+ 'Content-Type' => 'text/xml; charset=utf-8'
298
298
  }
299
299
  end
300
300
 
@@ -319,7 +319,7 @@ module ActiveMerchant #:nodoc:
319
319
  end
320
320
 
321
321
  def authorization_from(response)
322
- dollars, cents = (response[:purchase] || "").split(".").collect{|e| e.to_i}
322
+ dollars, cents = (response[:purchase] || '').split('.').collect{|e| e.to_i}
323
323
  dollars ||= 0
324
324
  cents ||= 0
325
325
  [
@@ -330,17 +330,17 @@ module ActiveMerchant #:nodoc:
330
330
  response[:process_data],
331
331
  response[:record_no],
332
332
  ((dollars * 100) + cents).to_s
333
- ].join(";")
333
+ ].join(';')
334
334
  end
335
335
 
336
336
  def split_authorization(authorization)
337
- invoice_no, ref_no, auth_code, acq_ref_data, process_data, record_no, amount = authorization.split(";")
337
+ invoice_no, ref_no, auth_code, acq_ref_data, process_data, record_no, amount = authorization.split(';')
338
338
  [invoice_no, ref_no, auth_code, acq_ref_data, process_data, record_no, amount]
339
339
  end
340
340
 
341
341
  ENVELOPE_NAMESPACES = {
342
342
  'xmlns:xsd' => 'http://www.w3.org/2001/XMLSchema',
343
- 'xmlns:soap' => "http://schemas.xmlsoap.org/soap/envelope/",
343
+ 'xmlns:soap' => 'http://schemas.xmlsoap.org/soap/envelope/',
344
344
  'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
345
345
  }
346
346