activemerchant 1.20.2 → 1.20.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +0 -0
- data/CHANGELOG +10 -0
- data/lib/active_merchant/billing/credit_card.rb +4 -0
- data/lib/active_merchant/billing/credit_card_methods.rb +4 -0
- data/lib/active_merchant/billing/gateways/optimal_payment.rb +9 -6
- data/lib/active_merchant/billing/gateways/orbital.rb +20 -5
- data/lib/active_merchant/billing/gateways/skip_jack.rb +1 -1
- data/lib/active_merchant/billing/gateways/stripe.rb +3 -2
- data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +55 -43
- data/lib/active_merchant/billing/gateways/worldpay.rb +1 -1
- data/lib/active_merchant/billing/integrations/sage_pay_form/encryption.rb +2 -2
- data/lib/active_merchant/version.rb +1 -1
- metadata +110 -162
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGELOG
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
= ActiveMerchant CHANGELOG
|
2
2
|
|
3
|
+
== Version 1.20.3 (February 7, 2012)
|
4
|
+
|
5
|
+
* Various fixes to support Ruby 1.9 [wisq]
|
6
|
+
* SkipJack: Fix partial capture [jduff]
|
7
|
+
* Optimal Payments: submit region when outside North America [jduff]
|
8
|
+
* USA ePay: Add void and refund support [duff/ntalbott]
|
9
|
+
* Add first digits to credit card [codyfauser]
|
10
|
+
* Orbital: fixes to authentication and order id [Soleone]
|
11
|
+
* Stripe: fixes to purchase method [duff/ntalbott]
|
12
|
+
|
3
13
|
== Version 1.20.2 (January 16, 2012)
|
4
14
|
|
5
15
|
* Remove authorize/capture support for Stripe [gdb]
|
@@ -246,13 +246,16 @@ module ActiveMerchant #:nodoc:
|
|
246
246
|
xml.tag! 'firstName', CGI.escape(addr[:name].split(' ').first) # TODO: parse properly
|
247
247
|
xml.tag! 'lastName' , CGI.escape(addr[:name].split(' ').last )
|
248
248
|
end
|
249
|
-
xml.tag! 'street' , CGI.escape(addr[:address1]) if addr[:address1]
|
250
|
-
xml.tag! 'street2', CGI.escape(addr[:address2]) if addr[:address2]
|
251
|
-
xml.tag! 'city' , CGI.escape(addr[:city] ) if addr[:city]
|
252
|
-
|
253
|
-
|
249
|
+
xml.tag! 'street' , CGI.escape(addr[:address1]) if addr[:address1].present?
|
250
|
+
xml.tag! 'street2', CGI.escape(addr[:address2]) if addr[:address2].present?
|
251
|
+
xml.tag! 'city' , CGI.escape(addr[:city] ) if addr[:city].present?
|
252
|
+
if addr[:state].present?
|
253
|
+
state_tag = %w(US CA).include?(addr[:country]) ? 'state' : 'region'
|
254
|
+
xml.tag! state_tag, CGI.escape(addr[:state])
|
255
|
+
end
|
256
|
+
xml.tag! 'country', CGI.escape(addr[:country] ) if addr[:country].present?
|
254
257
|
xml.tag! 'zip' , CGI.escape(addr[:zip] ) # this one's actually required
|
255
|
-
xml.tag! 'phone' , CGI.escape(addr[:phone] ) if addr[:phone]
|
258
|
+
xml.tag! 'phone' , CGI.escape(addr[:phone] ) if addr[:phone].present?
|
256
259
|
#xml.tag! 'email' , ''
|
257
260
|
end
|
258
261
|
end
|
@@ -78,9 +78,8 @@ module ActiveMerchant #:nodoc:
|
|
78
78
|
}
|
79
79
|
|
80
80
|
def initialize(options = {})
|
81
|
-
|
82
|
-
|
83
|
-
end
|
81
|
+
requires!(options, :merchant_id)
|
82
|
+
requires!(options, :login, :password) unless options[:ip_authentication]
|
84
83
|
@options = options
|
85
84
|
super
|
86
85
|
end
|
@@ -253,7 +252,7 @@ module ActiveMerchant #:nodoc:
|
|
253
252
|
yield xml if block_given?
|
254
253
|
|
255
254
|
xml.tag! :Comments, parameters[:comments] if parameters[:comments]
|
256
|
-
xml.tag! :OrderID, parameters[:order_id]
|
255
|
+
xml.tag! :OrderID, format_order_id(parameters[:order_id])
|
257
256
|
xml.tag! :Amount, amount(money)
|
258
257
|
|
259
258
|
# Append Transaction Reference Number at the end for Refund transactions
|
@@ -305,7 +304,7 @@ module ActiveMerchant #:nodoc:
|
|
305
304
|
end
|
306
305
|
|
307
306
|
def bin
|
308
|
-
@options[:bin] || '000001'
|
307
|
+
@options[:bin] || (salem_mid? ? '000001' : '000002')
|
309
308
|
end
|
310
309
|
|
311
310
|
def xml_envelope
|
@@ -324,6 +323,22 @@ module ActiveMerchant #:nodoc:
|
|
324
323
|
xml.tag! :MerchantID, @options[:merchant_id]
|
325
324
|
xml.tag! :TerminalID, parameters[:terminal_id] || '001'
|
326
325
|
end
|
326
|
+
|
327
|
+
def salem_mid?
|
328
|
+
@options[:merchant_id].length == 6
|
329
|
+
end
|
330
|
+
|
331
|
+
# The valid characters include:
|
332
|
+
#
|
333
|
+
# 1. all letters and digits
|
334
|
+
# 2. - , $ @ & and a space character, though the space character cannot be the leading character
|
335
|
+
# 3. PINless Debit transactions can only use uppercase and lowercase alpha (A-Z, a-z) and numeric (0-9)
|
336
|
+
def format_order_id(order_id)
|
337
|
+
illegal_characters = /[^,$@\- \w]/
|
338
|
+
order_id = order_id.to_s.gsub(/\./, '-')
|
339
|
+
order_id.gsub!(illegal_characters, '')
|
340
|
+
order_id[0...22]
|
341
|
+
end
|
327
342
|
end
|
328
343
|
end
|
329
344
|
end
|
@@ -20,7 +20,7 @@ module ActiveMerchant #:nodoc:
|
|
20
20
|
|
21
21
|
SUCCESS_MESSAGE = 'The transaction was successful.'
|
22
22
|
|
23
|
-
MONETARY_CHANGE_STATUSES = ['AUTHORIZE', 'AUTHORIZE ADDITIONAL', 'CREDIT', 'SPLITSETTLE']
|
23
|
+
MONETARY_CHANGE_STATUSES = ['SETTLE', 'AUTHORIZE', 'AUTHORIZE ADDITIONAL', 'CREDIT', 'SPLITSETTLE']
|
24
24
|
|
25
25
|
CARD_CODE_ERRORS = %w( N S "" )
|
26
26
|
|
@@ -48,7 +48,7 @@ module ActiveMerchant #:nodoc:
|
|
48
48
|
add_amount(post, money, options)
|
49
49
|
add_creditcard(post, creditcard, options)
|
50
50
|
add_customer(post, options)
|
51
|
-
|
51
|
+
post[:description] = options[:description] || options[:email]
|
52
52
|
add_flags(post, options)
|
53
53
|
|
54
54
|
raise ArgumentError.new("Customer or Credit Card required.") if !post[:card] && !post[:customer]
|
@@ -79,7 +79,8 @@ module ActiveMerchant #:nodoc:
|
|
79
79
|
def store(creditcard, options = {})
|
80
80
|
post = {}
|
81
81
|
add_creditcard(post, creditcard, options)
|
82
|
-
|
82
|
+
post[:description] = options[:description]
|
83
|
+
post[:email] = options[:email]
|
83
84
|
|
84
85
|
if options[:customer]
|
85
86
|
commit("customers/#{CGI.escape(options[:customer])}", post)
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module ActiveMerchant #:nodoc:
|
2
2
|
module Billing #:nodoc:
|
3
|
-
|
3
|
+
|
4
4
|
class UsaEpayTransactionGateway < Gateway
|
5
5
|
URL = 'https://www.usaepay.com/gate.php'
|
6
|
-
|
6
|
+
|
7
7
|
self.supported_cardtypes = [:visa, :master, :american_express]
|
8
8
|
self.supported_countries = ['US']
|
9
9
|
self.homepage_url = 'http://www.usaepay.com/'
|
@@ -12,61 +12,73 @@ module ActiveMerchant #:nodoc:
|
|
12
12
|
TRANSACTIONS = {
|
13
13
|
:authorization => 'authonly',
|
14
14
|
:purchase => 'sale',
|
15
|
-
:capture => 'capture'
|
15
|
+
:capture => 'capture',
|
16
|
+
:refund => 'refund',
|
17
|
+
:void => 'void'
|
16
18
|
}
|
17
19
|
|
18
20
|
def initialize(options = {})
|
19
21
|
requires!(options, :login)
|
20
22
|
@options = options
|
21
23
|
super
|
22
|
-
end
|
23
|
-
|
24
|
+
end
|
25
|
+
|
24
26
|
def authorize(money, credit_card, options = {})
|
25
27
|
post = {}
|
26
|
-
|
28
|
+
|
27
29
|
add_amount(post, money)
|
28
30
|
add_invoice(post, options)
|
29
|
-
add_credit_card(post, credit_card)
|
30
|
-
add_address(post, credit_card, options)
|
31
|
+
add_credit_card(post, credit_card)
|
32
|
+
add_address(post, credit_card, options)
|
31
33
|
add_customer_data(post, options)
|
32
|
-
|
34
|
+
|
33
35
|
commit(:authorization, post)
|
34
36
|
end
|
35
|
-
|
37
|
+
|
36
38
|
def purchase(money, credit_card, options = {})
|
37
39
|
post = {}
|
38
|
-
|
40
|
+
|
39
41
|
add_amount(post, money)
|
40
42
|
add_invoice(post, options)
|
41
|
-
add_credit_card(post, credit_card)
|
42
|
-
add_address(post, credit_card, options)
|
43
|
+
add_credit_card(post, credit_card)
|
44
|
+
add_address(post, credit_card, options)
|
43
45
|
add_customer_data(post, options)
|
44
|
-
|
46
|
+
|
45
47
|
commit(:purchase, post)
|
46
|
-
end
|
47
|
-
|
48
|
+
end
|
49
|
+
|
48
50
|
def capture(money, authorization, options = {})
|
49
|
-
post = {
|
50
|
-
|
51
|
-
}
|
52
|
-
|
51
|
+
post = { :refNum => authorization }
|
52
|
+
|
53
53
|
add_amount(post, money)
|
54
54
|
commit(:capture, post)
|
55
55
|
end
|
56
|
-
|
57
|
-
|
58
|
-
|
56
|
+
|
57
|
+
def refund(money, authorization, options = {})
|
58
|
+
post = { :refNum => authorization }
|
59
|
+
|
60
|
+
add_amount(post, money)
|
61
|
+
commit(:refund, post)
|
62
|
+
end
|
63
|
+
|
64
|
+
def void(authorization, options = {})
|
65
|
+
post = { :refNum => authorization }
|
66
|
+
commit(:void, post)
|
67
|
+
end
|
68
|
+
|
69
|
+
private
|
70
|
+
|
59
71
|
def add_amount(post, money)
|
60
72
|
post[:amount] = amount(money)
|
61
73
|
end
|
62
|
-
|
74
|
+
|
63
75
|
def expdate(credit_card)
|
64
76
|
year = format(credit_card.year, :two_digits)
|
65
77
|
month = format(credit_card.month, :two_digits)
|
66
78
|
|
67
79
|
"#{month}#{year}"
|
68
80
|
end
|
69
|
-
|
81
|
+
|
70
82
|
def add_customer_data(post, options)
|
71
83
|
address = options[:billing_address] || options[:address] || {}
|
72
84
|
post[:street] = address[:address1]
|
@@ -76,19 +88,19 @@ module ActiveMerchant #:nodoc:
|
|
76
88
|
post[:custemail] = options[:email]
|
77
89
|
post[:custreceipt] = 'No'
|
78
90
|
end
|
79
|
-
|
91
|
+
|
80
92
|
if options.has_key? :customer
|
81
93
|
post[:custid] = options[:customer]
|
82
94
|
end
|
83
|
-
|
95
|
+
|
84
96
|
if options.has_key? :ip
|
85
97
|
post[:ip] = options[:ip]
|
86
|
-
end
|
98
|
+
end
|
87
99
|
end
|
88
100
|
|
89
101
|
def add_address(post, credit_card, options)
|
90
102
|
billing_address = options[:billing_address] || options[:address]
|
91
|
-
|
103
|
+
|
92
104
|
add_address_for_type(:billing, post, credit_card, billing_address) if billing_address
|
93
105
|
add_address_for_type(:shipping, post, credit_card, options[:shipping_address]) if options[:shipping_address]
|
94
106
|
end
|
@@ -107,8 +119,8 @@ module ActiveMerchant #:nodoc:
|
|
107
119
|
post[address_key(prefix, 'country')] = address[:country] unless address[:country].blank?
|
108
120
|
post[address_key(prefix, 'phone')] = address[:phone] unless address[:phone].blank?
|
109
121
|
end
|
110
|
-
|
111
|
-
def address_key_prefix(type)
|
122
|
+
|
123
|
+
def address_key_prefix(type)
|
112
124
|
case type
|
113
125
|
when :shipping then 'ship'
|
114
126
|
when :billing then 'bill'
|
@@ -118,18 +130,18 @@ module ActiveMerchant #:nodoc:
|
|
118
130
|
def address_key(prefix, key)
|
119
131
|
"#{prefix}#{key}".to_sym
|
120
132
|
end
|
121
|
-
|
133
|
+
|
122
134
|
def add_invoice(post, options)
|
123
135
|
post[:invoice] = options[:order_id]
|
124
136
|
end
|
125
|
-
|
126
|
-
def add_credit_card(post, credit_card)
|
137
|
+
|
138
|
+
def add_credit_card(post, credit_card)
|
127
139
|
post[:card] = credit_card.number
|
128
140
|
post[:cvv2] = credit_card.verification_value if credit_card.verification_value?
|
129
141
|
post[:expir] = expdate(credit_card)
|
130
142
|
post[:name] = credit_card.name
|
131
143
|
end
|
132
|
-
|
144
|
+
|
133
145
|
def parse(body)
|
134
146
|
fields = {}
|
135
147
|
for line in body.split('&')
|
@@ -152,23 +164,23 @@ module ActiveMerchant #:nodoc:
|
|
152
164
|
:error_code => fields['UMerrorcode'],
|
153
165
|
:acs_url => fields['UMacsurl'],
|
154
166
|
:payload => fields['UMpayload']
|
155
|
-
}.delete_if{|k, v| v.nil?}
|
156
|
-
end
|
167
|
+
}.delete_if{|k, v| v.nil?}
|
168
|
+
end
|
169
|
+
|
157
170
|
|
158
|
-
|
159
171
|
def commit(action, parameters)
|
160
172
|
response = parse( ssl_post(URL, post_data(action, parameters)) )
|
161
|
-
|
162
|
-
Response.new(response[:status] == 'Approved', message_from(response), response,
|
173
|
+
|
174
|
+
Response.new(response[:status] == 'Approved', message_from(response), response,
|
163
175
|
:test => @options[:test] || test?,
|
164
176
|
:authorization => response[:ref_num],
|
165
177
|
:cvv_result => response[:cvv2_result_code],
|
166
|
-
:avs_result => {
|
178
|
+
:avs_result => {
|
167
179
|
:street_match => response[:avs_result_code].to_s[0,1],
|
168
180
|
:postal_match => response[:avs_result_code].to_s[1,1],
|
169
181
|
:code => response[:avs_result_code].to_s[2,1]
|
170
182
|
}
|
171
|
-
)
|
183
|
+
)
|
172
184
|
end
|
173
185
|
|
174
186
|
def message_from(response)
|
@@ -179,7 +191,7 @@ module ActiveMerchant #:nodoc:
|
|
179
191
|
return response[:error]
|
180
192
|
end
|
181
193
|
end
|
182
|
-
|
194
|
+
|
183
195
|
def post_data(action, parameters = {})
|
184
196
|
parameters[:command] = TRANSACTIONS[action]
|
185
197
|
parameters[:key] = @options[:login]
|
@@ -27,7 +27,7 @@ module ActiveMerchant #:nodoc:
|
|
27
27
|
def purchase(money, payment_method, options = {})
|
28
28
|
response = MultiResponse.new
|
29
29
|
response << authorize(money, payment_method, options)
|
30
|
-
response << capture(money, response.authorization, :authorization_validated => true) if response.success?
|
30
|
+
response << capture(money, response.authorization, options.merge(:authorization_validated => true)) if response.success?
|
31
31
|
response
|
32
32
|
end
|
33
33
|
|
@@ -21,8 +21,8 @@ module ActiveMerchant #:nodoc:
|
|
21
21
|
def sage_encrypt_xor(data, key)
|
22
22
|
raise 'No key provided' if key.blank?
|
23
23
|
|
24
|
-
key *= (data.
|
25
|
-
key = key[0, data.
|
24
|
+
key *= (data.bytesize.to_f / key.bytesize.to_f).ceil
|
25
|
+
key = key[0, data.bytesize]
|
26
26
|
|
27
27
|
data.bytes.zip(key.bytes).map { |b1, b2| (b1 ^ b2).chr }.join
|
28
28
|
end
|
metadata
CHANGED
@@ -1,207 +1,166 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: activemerchant
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.20.3
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 20
|
9
|
-
- 2
|
10
|
-
version: 1.20.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Tobias Luetke
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
|
-
cert_chain:
|
17
|
-
-
|
18
|
-
|
11
|
+
cert_chain:
|
12
|
+
- ! '-----BEGIN CERTIFICATE-----
|
13
|
+
|
19
14
|
MIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMRMwEQYDVQQDDApjb2R5
|
15
|
+
|
20
16
|
ZmF1c2VyMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZFgNj
|
17
|
+
|
21
18
|
b20wHhcNMDcwMjIyMTcyMTI3WhcNMDgwMjIyMTcyMTI3WjBBMRMwEQYDVQQDDApj
|
19
|
+
|
22
20
|
b2R5ZmF1c2VyMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZ
|
21
|
+
|
23
22
|
FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6T4Iqt5iWvAlU
|
23
|
+
|
24
24
|
iXI6L8UO0URQhIC65X/gJ9hL/x4lwSl/ckVm/R/bPrJGmifT+YooFv824N3y/TIX
|
25
|
+
|
25
26
|
25o/lZtRj1TUZJK4OCb0aVzosQVxBHSe6rLmxO8cItNTMOM9wn3thaITFrTa1DOQ
|
27
|
+
|
26
28
|
O3wqEjvW2L6VMozVfK1MfjL9IGgy0rCnl+2g4Gh4jDDpkLfnMG5CWI6cTCf3C1ye
|
29
|
+
|
27
30
|
ytOpWgi0XpOEy8nQWcFmt/KCQ/kFfzBo4QxqJi54b80842EyvzWT9OB7Oew/CXZG
|
31
|
+
|
28
32
|
F2yIHtiYxonz6N09vvSzq4CvEuisoUFLKZnktndxMEBKwJU3XeSHAbuS7ix40OKO
|
33
|
+
|
29
34
|
WKuI54fHAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
|
35
|
+
|
30
36
|
BBR9QQpefI3oDCAxiqJW/3Gg6jI6qjANBgkqhkiG9w0BAQUFAAOCAQEAs0lX26O+
|
37
|
+
|
31
38
|
HpyMp7WL+SgZuM8k76AjfOHuKajl2GEn3S8pWYGpsa0xu07HtehJhKLiavrfUYeE
|
39
|
+
|
32
40
|
qlFtyYMUyOh6/1S2vfkH6VqjX7mWjoi7XKHW/99fkMS40B5SbN+ypAUst+6c5R84
|
41
|
+
|
33
42
|
w390mjtLHpdDE6WQYhS6bFvBN53vK6jG3DLyCJc0K9uMQ7gdHWoxq7RnG92ncQpT
|
43
|
+
|
34
44
|
ThpRA+fky5Xt2Q63YJDnJpkYAz79QIama1enSnd4jslKzSl89JS2luq/zioPe/Us
|
45
|
+
|
35
46
|
hbyalWR1+HrhgPoSPq7nk+s2FQUBJ9UZFK1lgMzho/4fZgzJwbu+cO8SNuaLS/bj
|
47
|
+
|
36
48
|
hPaSTyVU0yCSnw==
|
49
|
+
|
37
50
|
-----END CERTIFICATE-----
|
38
51
|
|
39
|
-
|
40
|
-
|
41
|
-
dependencies:
|
42
|
-
- !ruby/object:Gem::Dependency
|
52
|
+
'
|
53
|
+
date: 2012-02-07 00:00:00.000000000 Z
|
54
|
+
dependencies:
|
55
|
+
- !ruby/object:Gem::Dependency
|
43
56
|
name: activesupport
|
44
|
-
|
57
|
+
requirement: &2152209620 !ruby/object:Gem::Requirement
|
45
58
|
none: false
|
46
|
-
requirements:
|
47
|
-
- -
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
hash: 21
|
50
|
-
segments:
|
51
|
-
- 2
|
52
|
-
- 3
|
53
|
-
- 11
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
54
62
|
version: 2.3.11
|
55
|
-
prerelease: false
|
56
63
|
type: :runtime
|
57
|
-
|
58
|
-
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: *2152209620
|
66
|
+
- !ruby/object:Gem::Dependency
|
59
67
|
name: i18n
|
60
|
-
|
68
|
+
requirement: &2152209000 !ruby/object:Gem::Requirement
|
61
69
|
none: false
|
62
|
-
requirements:
|
63
|
-
- -
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
|
66
|
-
segments:
|
67
|
-
- 0
|
68
|
-
version: "0"
|
69
|
-
prerelease: false
|
70
|
+
requirements:
|
71
|
+
- - ! '>='
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
70
74
|
type: :runtime
|
71
|
-
|
72
|
-
|
75
|
+
prerelease: false
|
76
|
+
version_requirements: *2152209000
|
77
|
+
- !ruby/object:Gem::Dependency
|
73
78
|
name: money
|
74
|
-
|
79
|
+
requirement: &2152208380 !ruby/object:Gem::Requirement
|
75
80
|
none: false
|
76
|
-
requirements:
|
81
|
+
requirements:
|
77
82
|
- - <=
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
hash: 25
|
80
|
-
segments:
|
81
|
-
- 3
|
82
|
-
- 7
|
83
|
-
- 1
|
83
|
+
- !ruby/object:Gem::Version
|
84
84
|
version: 3.7.1
|
85
|
-
prerelease: false
|
86
85
|
type: :runtime
|
87
|
-
|
88
|
-
|
86
|
+
prerelease: false
|
87
|
+
version_requirements: *2152208380
|
88
|
+
- !ruby/object:Gem::Dependency
|
89
89
|
name: builder
|
90
|
-
|
90
|
+
requirement: &2152207880 !ruby/object:Gem::Requirement
|
91
91
|
none: false
|
92
|
-
requirements:
|
93
|
-
- -
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
hash: 15
|
96
|
-
segments:
|
97
|
-
- 2
|
98
|
-
- 0
|
99
|
-
- 0
|
92
|
+
requirements:
|
93
|
+
- - ! '>='
|
94
|
+
- !ruby/object:Gem::Version
|
100
95
|
version: 2.0.0
|
101
|
-
prerelease: false
|
102
96
|
type: :runtime
|
103
|
-
|
104
|
-
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: *2152207880
|
99
|
+
- !ruby/object:Gem::Dependency
|
105
100
|
name: braintree
|
106
|
-
|
101
|
+
requirement: &2152207380 !ruby/object:Gem::Requirement
|
107
102
|
none: false
|
108
|
-
requirements:
|
109
|
-
- -
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
hash: 15
|
112
|
-
segments:
|
113
|
-
- 2
|
114
|
-
- 0
|
115
|
-
- 0
|
103
|
+
requirements:
|
104
|
+
- - ! '>='
|
105
|
+
- !ruby/object:Gem::Version
|
116
106
|
version: 2.0.0
|
117
|
-
prerelease: false
|
118
107
|
type: :runtime
|
119
|
-
requirement: *id005
|
120
|
-
- !ruby/object:Gem::Dependency
|
121
|
-
name: json
|
122
|
-
version_requirements: &id006 !ruby/object:Gem::Requirement
|
123
|
-
none: false
|
124
|
-
requirements:
|
125
|
-
- - ">="
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
hash: 1
|
128
|
-
segments:
|
129
|
-
- 1
|
130
|
-
- 5
|
131
|
-
- 1
|
132
|
-
version: 1.5.1
|
133
108
|
prerelease: false
|
134
|
-
|
135
|
-
|
136
|
-
- !ruby/object:Gem::Dependency
|
109
|
+
version_requirements: *2152207380
|
110
|
+
- !ruby/object:Gem::Dependency
|
137
111
|
name: active_utils
|
138
|
-
|
112
|
+
requirement: &2152206900 !ruby/object:Gem::Requirement
|
139
113
|
none: false
|
140
|
-
requirements:
|
141
|
-
- -
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
hash: 19
|
144
|
-
segments:
|
145
|
-
- 1
|
146
|
-
- 0
|
147
|
-
- 2
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
148
117
|
version: 1.0.2
|
149
|
-
prerelease: false
|
150
118
|
type: :runtime
|
151
|
-
|
152
|
-
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: *2152206900
|
121
|
+
- !ruby/object:Gem::Dependency
|
153
122
|
name: rake
|
154
|
-
|
123
|
+
requirement: &2152206500 !ruby/object:Gem::Requirement
|
155
124
|
none: false
|
156
|
-
requirements:
|
157
|
-
- -
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
|
160
|
-
segments:
|
161
|
-
- 0
|
162
|
-
version: "0"
|
163
|
-
prerelease: false
|
125
|
+
requirements:
|
126
|
+
- - ! '>='
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
164
129
|
type: :development
|
165
|
-
|
166
|
-
|
130
|
+
prerelease: false
|
131
|
+
version_requirements: *2152206500
|
132
|
+
- !ruby/object:Gem::Dependency
|
167
133
|
name: mocha
|
168
|
-
|
134
|
+
requirement: &2152206040 !ruby/object:Gem::Requirement
|
169
135
|
none: false
|
170
|
-
requirements:
|
171
|
-
- -
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
|
174
|
-
segments:
|
175
|
-
- 0
|
176
|
-
version: "0"
|
177
|
-
prerelease: false
|
136
|
+
requirements:
|
137
|
+
- - ! '>='
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
178
140
|
type: :development
|
179
|
-
|
180
|
-
|
141
|
+
prerelease: false
|
142
|
+
version_requirements: *2152206040
|
143
|
+
- !ruby/object:Gem::Dependency
|
181
144
|
name: rails
|
182
|
-
|
145
|
+
requirement: &2152205540 !ruby/object:Gem::Requirement
|
183
146
|
none: false
|
184
|
-
requirements:
|
185
|
-
- -
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
hash: 21
|
188
|
-
segments:
|
189
|
-
- 2
|
190
|
-
- 3
|
191
|
-
- 11
|
147
|
+
requirements:
|
148
|
+
- - ! '>='
|
149
|
+
- !ruby/object:Gem::Version
|
192
150
|
version: 2.3.11
|
193
|
-
prerelease: false
|
194
151
|
type: :development
|
195
|
-
|
196
|
-
|
152
|
+
prerelease: false
|
153
|
+
version_requirements: *2152205540
|
154
|
+
description: Active Merchant is a simple payment abstraction library used in and sponsored
|
155
|
+
by Shopify. It is written by Tobias Luetke, Cody Fauser, and contributors. The aim
|
156
|
+
of the project is to feel natural to Ruby users and to abstract as many parts as
|
157
|
+
possible away from the user to offer a consistent interface across all supported
|
158
|
+
gateways.
|
197
159
|
email: tobi@leetsoft.com
|
198
160
|
executables: []
|
199
|
-
|
200
161
|
extensions: []
|
201
|
-
|
202
162
|
extra_rdoc_files: []
|
203
|
-
|
204
|
-
files:
|
163
|
+
files:
|
205
164
|
- CHANGELOG
|
206
165
|
- MIT-LICENSE
|
207
166
|
- CONTRIBUTORS
|
@@ -391,39 +350,28 @@ files:
|
|
391
350
|
- lib/activemerchant.rb
|
392
351
|
- lib/support/gateway_support.rb
|
393
352
|
- lib/support/outbound_hosts.rb
|
394
|
-
has_rdoc: true
|
395
353
|
homepage: http://activemerchant.org/
|
396
354
|
licenses: []
|
397
|
-
|
398
355
|
post_install_message:
|
399
356
|
rdoc_options: []
|
400
|
-
|
401
|
-
require_paths:
|
357
|
+
require_paths:
|
402
358
|
- lib
|
403
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
359
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
404
360
|
none: false
|
405
|
-
requirements:
|
406
|
-
- -
|
407
|
-
- !ruby/object:Gem::Version
|
408
|
-
|
409
|
-
|
410
|
-
- 0
|
411
|
-
version: "0"
|
412
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
361
|
+
requirements:
|
362
|
+
- - ! '>='
|
363
|
+
- !ruby/object:Gem::Version
|
364
|
+
version: '0'
|
365
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
413
366
|
none: false
|
414
|
-
requirements:
|
415
|
-
- -
|
416
|
-
- !ruby/object:Gem::Version
|
417
|
-
|
418
|
-
segments:
|
419
|
-
- 0
|
420
|
-
version: "0"
|
367
|
+
requirements:
|
368
|
+
- - ! '>='
|
369
|
+
- !ruby/object:Gem::Version
|
370
|
+
version: '0'
|
421
371
|
requirements: []
|
422
|
-
|
423
372
|
rubyforge_project: activemerchant
|
424
|
-
rubygems_version: 1.
|
373
|
+
rubygems_version: 1.8.11
|
425
374
|
signing_key:
|
426
375
|
specification_version: 3
|
427
376
|
summary: Framework and tools for dealing with credit card transactions.
|
428
377
|
test_files: []
|
429
|
-
|
metadata.gz.sig
CHANGED
Binary file
|