activemerchant 1.18.1 → 1.20.0
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 +5 -0
- data/CHANGELOG +15 -0
- data/CONTRIBUTORS +4 -0
- data/lib/active_merchant.rb +1 -0
- data/lib/active_merchant/billing/credit_card.rb +1 -1
- data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +5 -1
- data/lib/active_merchant/billing/gateways/braintree_blue.rb +6 -2
- data/lib/active_merchant/billing/gateways/elavon.rb +2 -1
- data/lib/active_merchant/billing/gateways/exact.rb +5 -0
- data/lib/active_merchant/billing/gateways/moneris.rb +4 -0
- data/lib/active_merchant/billing/gateways/ogone.rb +94 -56
- data/lib/active_merchant/billing/gateways/orbital.rb +34 -26
- data/lib/active_merchant/billing/gateways/pay_junction.rb +6 -1
- data/lib/active_merchant/billing/gateways/samurai.rb +120 -0
- data/lib/active_merchant/billing/gateways/skip_jack.rb +6 -1
- data/lib/active_merchant/billing/gateways/usa_epay.rb +13 -184
- data/lib/active_merchant/billing/gateways/usa_epay_advanced.rb +1496 -0
- data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +194 -0
- data/lib/active_merchant/billing/integrations/dwolla.rb +2 -2
- data/lib/active_merchant/billing/integrations/dwolla/helper.rb +7 -4
- data/lib/active_merchant/billing/integrations/dwolla/notification.rb +5 -0
- data/lib/active_merchant/billing/integrations/helper.rb +6 -1
- data/lib/active_merchant/billing/integrations/payflow_link/helper.rb +46 -4
- data/lib/active_merchant/billing/integrations/two_checkout.rb +1 -2
- data/lib/active_merchant/version.rb +1 -1
- metadata +66 -40
- metadata.gz.sig +0 -0
@@ -0,0 +1,194 @@
|
|
1
|
+
module ActiveMerchant #:nodoc:
|
2
|
+
module Billing #:nodoc:
|
3
|
+
|
4
|
+
class UsaEpayTransactionGateway < Gateway
|
5
|
+
URL = 'https://www.usaepay.com/gate.php'
|
6
|
+
|
7
|
+
self.supported_cardtypes = [:visa, :master, :american_express]
|
8
|
+
self.supported_countries = ['US']
|
9
|
+
self.homepage_url = 'http://www.usaepay.com/'
|
10
|
+
self.display_name = 'USA ePay'
|
11
|
+
|
12
|
+
TRANSACTIONS = {
|
13
|
+
:authorization => 'authonly',
|
14
|
+
:purchase => 'sale',
|
15
|
+
:capture => 'capture'
|
16
|
+
}
|
17
|
+
|
18
|
+
def initialize(options = {})
|
19
|
+
requires!(options, :login)
|
20
|
+
@options = options
|
21
|
+
super
|
22
|
+
end
|
23
|
+
|
24
|
+
def authorize(money, credit_card, options = {})
|
25
|
+
post = {}
|
26
|
+
|
27
|
+
add_amount(post, money)
|
28
|
+
add_invoice(post, options)
|
29
|
+
add_credit_card(post, credit_card)
|
30
|
+
add_address(post, credit_card, options)
|
31
|
+
add_customer_data(post, options)
|
32
|
+
|
33
|
+
commit(:authorization, post)
|
34
|
+
end
|
35
|
+
|
36
|
+
def purchase(money, credit_card, options = {})
|
37
|
+
post = {}
|
38
|
+
|
39
|
+
add_amount(post, money)
|
40
|
+
add_invoice(post, options)
|
41
|
+
add_credit_card(post, credit_card)
|
42
|
+
add_address(post, credit_card, options)
|
43
|
+
add_customer_data(post, options)
|
44
|
+
|
45
|
+
commit(:purchase, post)
|
46
|
+
end
|
47
|
+
|
48
|
+
def capture(money, authorization, options = {})
|
49
|
+
post = {
|
50
|
+
:refNum => authorization
|
51
|
+
}
|
52
|
+
|
53
|
+
add_amount(post, money)
|
54
|
+
commit(:capture, post)
|
55
|
+
end
|
56
|
+
|
57
|
+
private
|
58
|
+
|
59
|
+
def add_amount(post, money)
|
60
|
+
post[:amount] = amount(money)
|
61
|
+
end
|
62
|
+
|
63
|
+
def expdate(credit_card)
|
64
|
+
year = format(credit_card.year, :two_digits)
|
65
|
+
month = format(credit_card.month, :two_digits)
|
66
|
+
|
67
|
+
"#{month}#{year}"
|
68
|
+
end
|
69
|
+
|
70
|
+
def add_customer_data(post, options)
|
71
|
+
address = options[:billing_address] || options[:address] || {}
|
72
|
+
post[:street] = address[:address1]
|
73
|
+
post[:zip] = address[:zip]
|
74
|
+
|
75
|
+
if options.has_key? :email
|
76
|
+
post[:custemail] = options[:email]
|
77
|
+
post[:custreceipt] = 'No'
|
78
|
+
end
|
79
|
+
|
80
|
+
if options.has_key? :customer
|
81
|
+
post[:custid] = options[:customer]
|
82
|
+
end
|
83
|
+
|
84
|
+
if options.has_key? :ip
|
85
|
+
post[:ip] = options[:ip]
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def add_address(post, credit_card, options)
|
90
|
+
billing_address = options[:billing_address] || options[:address]
|
91
|
+
|
92
|
+
add_address_for_type(:billing, post, credit_card, billing_address) if billing_address
|
93
|
+
add_address_for_type(:shipping, post, credit_card, options[:shipping_address]) if options[:shipping_address]
|
94
|
+
end
|
95
|
+
|
96
|
+
def add_address_for_type(type, post, credit_card, address)
|
97
|
+
prefix = address_key_prefix(type)
|
98
|
+
|
99
|
+
post[address_key(prefix, 'fname')] = credit_card.first_name
|
100
|
+
post[address_key(prefix, 'lname')] = credit_card.last_name
|
101
|
+
post[address_key(prefix, 'company')] = address[:company] unless address[:company].blank?
|
102
|
+
post[address_key(prefix, 'street')] = address[:address1] unless address[:address1].blank?
|
103
|
+
post[address_key(prefix, 'street2')] = address[:address2] unless address[:address2].blank?
|
104
|
+
post[address_key(prefix, 'city')] = address[:city] unless address[:city].blank?
|
105
|
+
post[address_key(prefix, 'state')] = address[:state] unless address[:state].blank?
|
106
|
+
post[address_key(prefix, 'zip')] = address[:zip] unless address[:zip].blank?
|
107
|
+
post[address_key(prefix, 'country')] = address[:country] unless address[:country].blank?
|
108
|
+
post[address_key(prefix, 'phone')] = address[:phone] unless address[:phone].blank?
|
109
|
+
end
|
110
|
+
|
111
|
+
def address_key_prefix(type)
|
112
|
+
case type
|
113
|
+
when :shipping then 'ship'
|
114
|
+
when :billing then 'bill'
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
def address_key(prefix, key)
|
119
|
+
"#{prefix}#{key}".to_sym
|
120
|
+
end
|
121
|
+
|
122
|
+
def add_invoice(post, options)
|
123
|
+
post[:invoice] = options[:order_id]
|
124
|
+
end
|
125
|
+
|
126
|
+
def add_credit_card(post, credit_card)
|
127
|
+
post[:card] = credit_card.number
|
128
|
+
post[:cvv2] = credit_card.verification_value if credit_card.verification_value?
|
129
|
+
post[:expir] = expdate(credit_card)
|
130
|
+
post[:name] = credit_card.name
|
131
|
+
end
|
132
|
+
|
133
|
+
def parse(body)
|
134
|
+
fields = {}
|
135
|
+
for line in body.split('&')
|
136
|
+
key, value = *line.scan( %r{^(\w+)\=(.*)$} ).flatten
|
137
|
+
fields[key] = CGI.unescape(value.to_s)
|
138
|
+
end
|
139
|
+
|
140
|
+
{
|
141
|
+
:status => fields['UMstatus'],
|
142
|
+
:auth_code => fields['UMauthCode'],
|
143
|
+
:ref_num => fields['UMrefNum'],
|
144
|
+
:batch => fields['UMbatch'],
|
145
|
+
:avs_result => fields['UMavsResult'],
|
146
|
+
:avs_result_code => fields['UMavsResultCode'],
|
147
|
+
:cvv2_result => fields['UMcvv2Result'],
|
148
|
+
:cvv2_result_code => fields['UMcvv2ResultCode'],
|
149
|
+
:vpas_result_code => fields['UMvpasResultCode'],
|
150
|
+
:result => fields['UMresult'],
|
151
|
+
:error => fields['UMerror'],
|
152
|
+
:error_code => fields['UMerrorcode'],
|
153
|
+
:acs_url => fields['UMacsurl'],
|
154
|
+
:payload => fields['UMpayload']
|
155
|
+
}.delete_if{|k, v| v.nil?}
|
156
|
+
end
|
157
|
+
|
158
|
+
|
159
|
+
def commit(action, parameters)
|
160
|
+
response = parse( ssl_post(URL, post_data(action, parameters)) )
|
161
|
+
|
162
|
+
Response.new(response[:status] == 'Approved', message_from(response), response,
|
163
|
+
:test => @options[:test] || test?,
|
164
|
+
:authorization => response[:ref_num],
|
165
|
+
:cvv_result => response[:cvv2_result_code],
|
166
|
+
:avs_result => {
|
167
|
+
:street_match => response[:avs_result_code].to_s[0,1],
|
168
|
+
:postal_match => response[:avs_result_code].to_s[1,1],
|
169
|
+
:code => response[:avs_result_code].to_s[2,1]
|
170
|
+
}
|
171
|
+
)
|
172
|
+
end
|
173
|
+
|
174
|
+
def message_from(response)
|
175
|
+
if response[:status] == "Approved"
|
176
|
+
return 'Success'
|
177
|
+
else
|
178
|
+
return 'Unspecified error' if response[:error].blank?
|
179
|
+
return response[:error]
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
def post_data(action, parameters = {})
|
184
|
+
parameters[:command] = TRANSACTIONS[action]
|
185
|
+
parameters[:key] = @options[:login]
|
186
|
+
parameters[:software] = 'Active Merchant'
|
187
|
+
parameters[:testmode] = @options[:test] ? 1 : 0
|
188
|
+
|
189
|
+
parameters.collect { |key, value| "UM#{key}=#{CGI.escape(value.to_s)}" }.join("&")
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
@@ -17,11 +17,11 @@ module ActiveMerchant #:nodoc:
|
|
17
17
|
mattr_accessor :service_url
|
18
18
|
self.service_url = 'https://www.dwolla.com/payment/pay'
|
19
19
|
|
20
|
-
def self.notification(post)
|
20
|
+
def self.notification(post, options={})
|
21
21
|
Notification.new(post)
|
22
22
|
end
|
23
23
|
|
24
|
-
def self.return(query_string)
|
24
|
+
def self.return(query_string, options={})
|
25
25
|
Return.new(query_string)
|
26
26
|
end
|
27
27
|
end
|
@@ -7,16 +7,19 @@ module ActiveMerchant #:nodoc:
|
|
7
7
|
def initialize(order, account, options = {})
|
8
8
|
super
|
9
9
|
add_field('name', 'Store Purchase')
|
10
|
+
|
11
|
+
if ActiveMerchant::Billing::Base.integration_mode == :test || options[:test]
|
12
|
+
add_field('test', 'true')
|
13
|
+
end
|
10
14
|
end
|
11
15
|
|
12
16
|
# Replace with the real mapping
|
13
|
-
mapping :
|
14
|
-
mapping :credential2, '
|
17
|
+
mapping :account, 'destinationid'
|
18
|
+
mapping :credential2, 'key'
|
19
|
+
mapping :credential3, 'secret'
|
15
20
|
mapping :notify_url, 'callback'
|
16
21
|
mapping :return_url, 'redirect'
|
17
|
-
mapping :test_mode, 'test'
|
18
22
|
mapping :description, 'description'
|
19
|
-
mapping :account, 'destinationid'
|
20
23
|
mapping :amount, 'amount'
|
21
24
|
mapping :tax, 'tax'
|
22
25
|
mapping :shipping, 'shipping'
|
@@ -14,6 +14,10 @@ module ActiveMerchant #:nodoc:
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def transaction_id
|
17
|
+
params['TransactionId']
|
18
|
+
end
|
19
|
+
|
20
|
+
def item_id
|
17
21
|
params['OrderId']
|
18
22
|
end
|
19
23
|
|
@@ -40,6 +44,7 @@ module ActiveMerchant #:nodoc:
|
|
40
44
|
private
|
41
45
|
# Take the posted data and move the relevant data into a hash
|
42
46
|
def parse(post)
|
47
|
+
@raw = post.to_s
|
43
48
|
json_post = JSON.parse(post)
|
44
49
|
params.merge!(json_post)
|
45
50
|
end
|
@@ -15,7 +15,8 @@ module ActiveMerchant #:nodoc:
|
|
15
15
|
|
16
16
|
def initialize(order, account, options = {})
|
17
17
|
options.assert_valid_keys([:amount, :currency, :test, :credential2, :credential3, :credential4, :country, :account_name])
|
18
|
-
@fields
|
18
|
+
@fields = {}
|
19
|
+
@test = options[:test]
|
19
20
|
self.order = order
|
20
21
|
self.account = account
|
21
22
|
self.amount = options[:amount]
|
@@ -54,6 +55,10 @@ module ActiveMerchant #:nodoc:
|
|
54
55
|
@fields
|
55
56
|
end
|
56
57
|
|
58
|
+
def test?
|
59
|
+
@test_mode ||= ActiveMerchant::Billing::Base.integration_mode == :test || @test
|
60
|
+
end
|
61
|
+
|
57
62
|
private
|
58
63
|
|
59
64
|
def add_address(key, params)
|
@@ -3,22 +3,27 @@ module ActiveMerchant #:nodoc:
|
|
3
3
|
module Integrations #:nodoc:
|
4
4
|
module PayflowLink
|
5
5
|
class Helper < ActiveMerchant::Billing::Integrations::Helper
|
6
|
+
include PostsData
|
6
7
|
|
7
8
|
def initialize(order, account, options = {})
|
8
9
|
super
|
9
10
|
add_field('login', account)
|
10
|
-
add_field('type', 'S')
|
11
11
|
add_field('echodata', 'True')
|
12
|
-
add_field('user2',
|
12
|
+
add_field('user2', self.test?)
|
13
13
|
add_field('invoice', order)
|
14
|
+
add_field('vendor', account)
|
15
|
+
add_field('user', options[:credential4] || account)
|
16
|
+
add_field('trxtype', 'S')
|
14
17
|
end
|
15
18
|
|
16
|
-
mapping :amount, 'amount'
|
17
19
|
mapping :account, 'login'
|
18
|
-
mapping :credential2, '
|
20
|
+
mapping :credential2, 'pwd'
|
21
|
+
mapping :credential3, 'partner'
|
19
22
|
mapping :order, 'user1'
|
20
23
|
mapping :description, 'description'
|
21
24
|
|
25
|
+
mapping :amount, 'amt'
|
26
|
+
|
22
27
|
|
23
28
|
mapping :billing_address, :city => 'city',
|
24
29
|
:address => 'address',
|
@@ -51,6 +56,43 @@ module ActiveMerchant #:nodoc:
|
|
51
56
|
add_field(field, v) unless field.nil?
|
52
57
|
end
|
53
58
|
end
|
59
|
+
|
60
|
+
def form_fields
|
61
|
+
token, token_id = request_secure_token
|
62
|
+
|
63
|
+
{"securetoken" => token, "securetokenid" => token_id, "mode" => test? ? "test" : "live"}
|
64
|
+
end
|
65
|
+
|
66
|
+
private
|
67
|
+
|
68
|
+
def secure_token_id
|
69
|
+
@secure_token_id ||= Utils.generate_unique_id
|
70
|
+
end
|
71
|
+
|
72
|
+
def secure_token_url
|
73
|
+
test? ? "https://pilot-payflowpro.paypal.com" : "https://payflowpro.paypal.com"
|
74
|
+
end
|
75
|
+
|
76
|
+
def request_secure_token
|
77
|
+
@fields["securetokenid"] = secure_token_id
|
78
|
+
@fields["createsecuretoken"] = "Y"
|
79
|
+
|
80
|
+
fields = @fields.collect {|key, value| "#{key}[#{value.length}]=#{value}" }.join("&")
|
81
|
+
|
82
|
+
response = ssl_post(secure_token_url, fields)
|
83
|
+
|
84
|
+
parse_response(response)
|
85
|
+
end
|
86
|
+
|
87
|
+
def parse_response(response)
|
88
|
+
response = response.split("&").inject({}) do |hash, param|
|
89
|
+
key, value = param.split("=")
|
90
|
+
hash[key] = value
|
91
|
+
hash
|
92
|
+
end
|
93
|
+
|
94
|
+
[response['SECURETOKEN'], response['SECURETOKENID']] if response['RESPMSG'] && response['RESPMSG'].downcase == "approved"
|
95
|
+
end
|
54
96
|
end
|
55
97
|
end
|
56
98
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
module ActiveMerchant #:nodoc:
|
3
2
|
module Billing #:nodoc:
|
4
3
|
module Integrations #:nodoc:
|
@@ -8,7 +7,7 @@ module ActiveMerchant #:nodoc:
|
|
8
7
|
autoload 'Notification', File.dirname(__FILE__) + '/two_checkout/notification'
|
9
8
|
|
10
9
|
mattr_accessor :service_url
|
11
|
-
self.service_url = 'https://www.2checkout.com/
|
10
|
+
self.service_url = 'https://www.2checkout.com/checkout/purchase'
|
12
11
|
|
13
12
|
def self.notification(post, options = {})
|
14
13
|
Notification.new(post)
|
metadata
CHANGED
@@ -1,26 +1,46 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activemerchant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 71
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 1.
|
8
|
+
- 20
|
9
|
+
- 0
|
10
|
+
version: 1.20.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tobias Luetke
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain:
|
17
|
-
-
|
18
|
-
|
17
|
+
- |
|
18
|
+
-----BEGIN CERTIFICATE-----
|
19
|
+
MIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMRMwEQYDVQQDDApjb2R5
|
20
|
+
ZmF1c2VyMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZFgNj
|
21
|
+
b20wHhcNMDcwMjIyMTcyMTI3WhcNMDgwMjIyMTcyMTI3WjBBMRMwEQYDVQQDDApj
|
22
|
+
b2R5ZmF1c2VyMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZ
|
23
|
+
FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6T4Iqt5iWvAlU
|
24
|
+
iXI6L8UO0URQhIC65X/gJ9hL/x4lwSl/ckVm/R/bPrJGmifT+YooFv824N3y/TIX
|
25
|
+
25o/lZtRj1TUZJK4OCb0aVzosQVxBHSe6rLmxO8cItNTMOM9wn3thaITFrTa1DOQ
|
26
|
+
O3wqEjvW2L6VMozVfK1MfjL9IGgy0rCnl+2g4Gh4jDDpkLfnMG5CWI6cTCf3C1ye
|
27
|
+
ytOpWgi0XpOEy8nQWcFmt/KCQ/kFfzBo4QxqJi54b80842EyvzWT9OB7Oew/CXZG
|
28
|
+
F2yIHtiYxonz6N09vvSzq4CvEuisoUFLKZnktndxMEBKwJU3XeSHAbuS7ix40OKO
|
29
|
+
WKuI54fHAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
|
30
|
+
BBR9QQpefI3oDCAxiqJW/3Gg6jI6qjANBgkqhkiG9w0BAQUFAAOCAQEAs0lX26O+
|
31
|
+
HpyMp7WL+SgZuM8k76AjfOHuKajl2GEn3S8pWYGpsa0xu07HtehJhKLiavrfUYeE
|
32
|
+
qlFtyYMUyOh6/1S2vfkH6VqjX7mWjoi7XKHW/99fkMS40B5SbN+ypAUst+6c5R84
|
33
|
+
w390mjtLHpdDE6WQYhS6bFvBN53vK6jG3DLyCJc0K9uMQ7gdHWoxq7RnG92ncQpT
|
34
|
+
ThpRA+fky5Xt2Q63YJDnJpkYAz79QIama1enSnd4jslKzSl89JS2luq/zioPe/Us
|
35
|
+
hbyalWR1+HrhgPoSPq7nk+s2FQUBJ9UZFK1lgMzho/4fZgzJwbu+cO8SNuaLS/bj
|
36
|
+
hPaSTyVU0yCSnw==
|
37
|
+
-----END CERTIFICATE-----
|
38
|
+
|
39
|
+
date: 2011-11-14 00:00:00 -05:00
|
19
40
|
default_executable:
|
20
41
|
dependencies:
|
21
42
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
43
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
44
|
none: false
|
25
45
|
requirements:
|
26
46
|
- - ">="
|
@@ -32,11 +52,11 @@ dependencies:
|
|
32
52
|
- 11
|
33
53
|
version: 2.3.11
|
34
54
|
name: activesupport
|
35
|
-
|
55
|
+
type: :runtime
|
36
56
|
prerelease: false
|
57
|
+
requirement: *id001
|
37
58
|
- !ruby/object:Gem::Dependency
|
38
|
-
|
39
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
59
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
40
60
|
none: false
|
41
61
|
requirements:
|
42
62
|
- - ">="
|
@@ -46,25 +66,27 @@ dependencies:
|
|
46
66
|
- 0
|
47
67
|
version: "0"
|
48
68
|
name: i18n
|
49
|
-
|
69
|
+
type: :runtime
|
50
70
|
prerelease: false
|
71
|
+
requirement: *id002
|
51
72
|
- !ruby/object:Gem::Dependency
|
52
|
-
|
53
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
73
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
54
74
|
none: false
|
55
75
|
requirements:
|
56
|
-
- -
|
76
|
+
- - <=
|
57
77
|
- !ruby/object:Gem::Version
|
58
|
-
hash:
|
78
|
+
hash: 25
|
59
79
|
segments:
|
60
|
-
-
|
61
|
-
|
80
|
+
- 3
|
81
|
+
- 7
|
82
|
+
- 1
|
83
|
+
version: 3.7.1
|
62
84
|
name: money
|
63
|
-
|
85
|
+
type: :runtime
|
64
86
|
prerelease: false
|
87
|
+
requirement: *id003
|
65
88
|
- !ruby/object:Gem::Dependency
|
66
|
-
|
67
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
89
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
68
90
|
none: false
|
69
91
|
requirements:
|
70
92
|
- - ">="
|
@@ -76,11 +98,11 @@ dependencies:
|
|
76
98
|
- 0
|
77
99
|
version: 2.0.0
|
78
100
|
name: builder
|
79
|
-
|
101
|
+
type: :runtime
|
80
102
|
prerelease: false
|
103
|
+
requirement: *id004
|
81
104
|
- !ruby/object:Gem::Dependency
|
82
|
-
|
83
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
105
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
84
106
|
none: false
|
85
107
|
requirements:
|
86
108
|
- - ">="
|
@@ -92,11 +114,11 @@ dependencies:
|
|
92
114
|
- 0
|
93
115
|
version: 2.0.0
|
94
116
|
name: braintree
|
95
|
-
|
117
|
+
type: :runtime
|
96
118
|
prerelease: false
|
119
|
+
requirement: *id005
|
97
120
|
- !ruby/object:Gem::Dependency
|
98
|
-
|
99
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
121
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
100
122
|
none: false
|
101
123
|
requirements:
|
102
124
|
- - ">="
|
@@ -108,11 +130,11 @@ dependencies:
|
|
108
130
|
- 1
|
109
131
|
version: 1.5.1
|
110
132
|
name: json
|
111
|
-
|
133
|
+
type: :runtime
|
112
134
|
prerelease: false
|
135
|
+
requirement: *id006
|
113
136
|
- !ruby/object:Gem::Dependency
|
114
|
-
|
115
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
137
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
116
138
|
none: false
|
117
139
|
requirements:
|
118
140
|
- - ">="
|
@@ -124,11 +146,11 @@ dependencies:
|
|
124
146
|
- 1
|
125
147
|
version: 1.0.1
|
126
148
|
name: active_utils
|
127
|
-
|
149
|
+
type: :runtime
|
128
150
|
prerelease: false
|
151
|
+
requirement: *id007
|
129
152
|
- !ruby/object:Gem::Dependency
|
130
|
-
|
131
|
-
requirement: &id008 !ruby/object:Gem::Requirement
|
153
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
132
154
|
none: false
|
133
155
|
requirements:
|
134
156
|
- - ">="
|
@@ -138,11 +160,11 @@ dependencies:
|
|
138
160
|
- 0
|
139
161
|
version: "0"
|
140
162
|
name: rake
|
141
|
-
|
163
|
+
type: :development
|
142
164
|
prerelease: false
|
165
|
+
requirement: *id008
|
143
166
|
- !ruby/object:Gem::Dependency
|
144
|
-
|
145
|
-
requirement: &id009 !ruby/object:Gem::Requirement
|
167
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
146
168
|
none: false
|
147
169
|
requirements:
|
148
170
|
- - ">="
|
@@ -152,11 +174,11 @@ dependencies:
|
|
152
174
|
- 0
|
153
175
|
version: "0"
|
154
176
|
name: mocha
|
155
|
-
|
177
|
+
type: :development
|
156
178
|
prerelease: false
|
179
|
+
requirement: *id009
|
157
180
|
- !ruby/object:Gem::Dependency
|
158
|
-
|
159
|
-
requirement: &id010 !ruby/object:Gem::Requirement
|
181
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
160
182
|
none: false
|
161
183
|
requirements:
|
162
184
|
- - ">="
|
@@ -168,8 +190,9 @@ dependencies:
|
|
168
190
|
- 11
|
169
191
|
version: 2.3.11
|
170
192
|
name: rails
|
171
|
-
|
193
|
+
type: :development
|
172
194
|
prerelease: false
|
195
|
+
requirement: *id010
|
173
196
|
description: Active Merchant is a simple payment abstraction library used in and sponsored by Shopify. It is written by Tobias Luetke, Cody Fauser, and contributors. The aim of the project is to feel natural to Ruby users and to abstract as many parts as possible away from the user to offer a consistent interface across all supported gateways.
|
174
197
|
email: tobi@leetsoft.com
|
175
198
|
executables: []
|
@@ -270,6 +293,7 @@ files:
|
|
270
293
|
- lib/active_merchant/billing/gateways/sage.rb
|
271
294
|
- lib/active_merchant/billing/gateways/sage_pay.rb
|
272
295
|
- lib/active_merchant/billing/gateways/sallie_mae.rb
|
296
|
+
- lib/active_merchant/billing/gateways/samurai.rb
|
273
297
|
- lib/active_merchant/billing/gateways/secure_net.rb
|
274
298
|
- lib/active_merchant/billing/gateways/secure_pay.rb
|
275
299
|
- lib/active_merchant/billing/gateways/secure_pay_au.rb
|
@@ -281,6 +305,8 @@ files:
|
|
281
305
|
- lib/active_merchant/billing/gateways/transax.rb
|
282
306
|
- lib/active_merchant/billing/gateways/trust_commerce.rb
|
283
307
|
- lib/active_merchant/billing/gateways/usa_epay.rb
|
308
|
+
- lib/active_merchant/billing/gateways/usa_epay_advanced.rb
|
309
|
+
- lib/active_merchant/billing/gateways/usa_epay_transaction.rb
|
284
310
|
- lib/active_merchant/billing/gateways/verifi.rb
|
285
311
|
- lib/active_merchant/billing/gateways/viaklix.rb
|
286
312
|
- lib/active_merchant/billing/gateways/wirecard.rb
|