tlconnor-activemerchant 1.20.4 → 1.23.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +86 -6
- data/CONTRIBUTORS +33 -0
- data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +2 -0
- data/lib/active_merchant/billing/gateways/barclays_epdq.rb +4 -4
- data/lib/active_merchant/billing/gateways/blue_pay.rb +492 -11
- data/lib/active_merchant/billing/gateways/braintree_blue.rb +46 -19
- data/lib/active_merchant/billing/gateways/certo_direct.rb +1 -1
- data/lib/active_merchant/billing/gateways/elavon.rb +2 -0
- data/lib/active_merchant/billing/gateways/epay.rb +3 -1
- data/lib/active_merchant/billing/gateways/itransact.rb +450 -0
- data/lib/active_merchant/billing/gateways/litle.rb +275 -0
- data/lib/active_merchant/billing/gateways/migs.rb +259 -0
- data/lib/active_merchant/billing/gateways/migs/migs_codes.rb +100 -0
- data/lib/active_merchant/billing/gateways/moneris.rb +4 -30
- data/lib/active_merchant/billing/gateways/moneris_us.rb +211 -0
- data/lib/active_merchant/billing/gateways/nab_transact.rb +1 -1
- data/lib/active_merchant/billing/gateways/ogone.rb +104 -12
- data/lib/active_merchant/billing/gateways/orbital.rb +15 -6
- data/lib/active_merchant/billing/gateways/paybox_direct.rb +1 -4
- data/lib/active_merchant/billing/gateways/payflow.rb +8 -3
- data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +4 -1
- data/lib/active_merchant/billing/gateways/payflow_express.rb +4 -2
- data/lib/active_merchant/billing/gateways/payment_express.rb +60 -13
- data/lib/active_merchant/billing/gateways/paypal.rb +3 -18
- data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +333 -3
- data/lib/active_merchant/billing/gateways/paypal/paypal_recurring_api.rb +245 -0
- data/lib/active_merchant/billing/gateways/paypal_digital_goods.rb +43 -0
- data/lib/active_merchant/billing/gateways/paypal_express.rb +14 -65
- data/lib/active_merchant/billing/gateways/paypal_express_common.rb +8 -3
- data/lib/active_merchant/billing/gateways/realex.rb +5 -7
- data/lib/active_merchant/billing/gateways/secure_pay_au.rb +3 -2
- data/lib/active_merchant/billing/gateways/stripe.rb +1 -9
- data/lib/active_merchant/billing/gateways/usa_epay_advanced.rb +2 -2
- data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +1 -5
- data/lib/active_merchant/billing/gateways/viaklix.rb +7 -2
- data/lib/active_merchant/billing/gateways/vindicia.rb +359 -0
- data/lib/active_merchant/billing/integrations/dotpay.rb +22 -0
- data/lib/active_merchant/billing/integrations/dotpay/helper.rb +77 -0
- data/lib/active_merchant/billing/integrations/dotpay/notification.rb +86 -0
- data/lib/active_merchant/billing/integrations/dotpay/return.rb +11 -0
- data/lib/active_merchant/billing/integrations/epay.rb +21 -0
- data/lib/active_merchant/billing/integrations/epay/helper.rb +55 -0
- data/lib/active_merchant/billing/integrations/epay/notification.rb +110 -0
- data/lib/active_merchant/billing/integrations/paypal/notification.rb +2 -1
- data/lib/active_merchant/billing/integrations/quickpay/helper.rb +2 -3
- data/lib/active_merchant/billing/integrations/robokassa.rb +49 -0
- data/lib/active_merchant/billing/integrations/robokassa/common.rb +19 -0
- data/lib/active_merchant/billing/integrations/robokassa/helper.rb +50 -0
- data/lib/active_merchant/billing/integrations/robokassa/notification.rb +55 -0
- data/lib/active_merchant/billing/integrations/robokassa/return.rb +17 -0
- data/lib/active_merchant/billing/integrations/two_checkout.rb +25 -3
- data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +58 -26
- data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +71 -46
- data/lib/active_merchant/billing/integrations/verkkomaksut.rb +20 -0
- data/lib/active_merchant/billing/integrations/verkkomaksut/helper.rb +87 -0
- data/lib/active_merchant/billing/integrations/verkkomaksut/notification.rb +59 -0
- data/lib/active_merchant/version.rb +1 -1
- metadata +28 -5
@@ -0,0 +1,20 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/verkkomaksut/helper.rb'
|
2
|
+
require File.dirname(__FILE__) + '/verkkomaksut/notification.rb'
|
3
|
+
|
4
|
+
module ActiveMerchant #:nodoc:
|
5
|
+
module Billing #:nodoc:
|
6
|
+
module Integrations #:nodoc:
|
7
|
+
|
8
|
+
# Usage, see the blog post here: http://blog.kiskolabs.com/post/22374612968/understanding-active-merchant-integrations and E1 API documentation here: http://docs.verkkomaksut.fi/
|
9
|
+
module Verkkomaksut
|
10
|
+
|
11
|
+
mattr_accessor :service_url
|
12
|
+
self.service_url = 'https://payment.verkkomaksut.fi/'
|
13
|
+
|
14
|
+
def self.notification(post)
|
15
|
+
Notification.new(post)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
module ActiveMerchant #:nodoc:
|
2
|
+
module Billing #:nodoc:
|
3
|
+
module Integrations #:nodoc:
|
4
|
+
module Verkkomaksut
|
5
|
+
class Helper < ActiveMerchant::Billing::Integrations::Helper
|
6
|
+
|
7
|
+
# Fetches the md5secret and adds MERCHANT_ID and API TYPE to the form
|
8
|
+
def initialize(order, account, options = {})
|
9
|
+
md5secret options.delete(:credential2)
|
10
|
+
super
|
11
|
+
add_field("MERCHANT_ID", account)
|
12
|
+
add_field("TYPE", "E1")
|
13
|
+
end
|
14
|
+
|
15
|
+
def md5secret(value)
|
16
|
+
@md5secret = value
|
17
|
+
end
|
18
|
+
|
19
|
+
# Adds the AUTHCODE to the form
|
20
|
+
def form_fields
|
21
|
+
@fields.merge("AUTHCODE" => generate_md5string)
|
22
|
+
end
|
23
|
+
|
24
|
+
# Calculates the AUTHCODE
|
25
|
+
def generate_md5string
|
26
|
+
fields = [@md5secret, @fields["MERCHANT_ID"], @fields["ORDER_NUMBER"], @fields["REFERENCE_NUMBER"], @fields["ORDER_DESCRIPTION"], @fields["CURRENCY"], @fields["RETURN_ADDRESS"], @fields["CANCEL_ADDRESS"], @fields["PENDING_ADDRESS"],
|
27
|
+
@fields["NOTIFY_ADDRESS"], @fields["TYPE"], @fields["CULTURE"], @fields["PRESELECTED_METHOD"], @fields["MODE"], @fields["VISIBLE_METHODS"], @fields["GROUP"], @fields["CONTACT_TELNO"], @fields["CONTACT_CELLNO"],
|
28
|
+
@fields["CONTACT_EMAIL"], @fields["CONTACT_FIRSTNAME"], @fields["CONTACT_LASTNAME"], @fields["CONTACT_COMPANY"], @fields["CONTACT_ADDR_STREET"], @fields["CONTACT_ADDR_ZIP"], @fields["CONTACT_ADDR_CITY"], @fields["CONTACT_ADDR_COUNTRY"], @fields["INCLUDE_VAT"],
|
29
|
+
@fields["ITEMS"]]
|
30
|
+
|
31
|
+
(0..@fields["ITEMS"].to_i-1).each do |i|
|
32
|
+
fields += [@fields["ITEM_TITLE[#{i}]"], @fields["ITEM_NO[#{i}]"], @fields["ITEM_AMOUNT[#{i}]"], @fields["ITEM_PRICE[#{i}]"], @fields["ITEM_TAX[#{i}]"], @fields["ITEM_DISCOUNT[#{i}]"], @fields["ITEM_TYPE[#{i}]"]]
|
33
|
+
end
|
34
|
+
|
35
|
+
fields = fields.join("|")
|
36
|
+
|
37
|
+
return Digest::MD5.hexdigest(fields).upcase
|
38
|
+
end
|
39
|
+
|
40
|
+
# Mappings
|
41
|
+
mapping :merchant_id, "MERCHANT_ID"
|
42
|
+
mapping :order, "ORDER_NUMBER"
|
43
|
+
mapping :reference_number, "REFERENCE_NUMBER"
|
44
|
+
mapping :customer, :first_name => "CONTACT_FIRSTNAME",
|
45
|
+
:last_name => "CONTACT_LASTNAME",
|
46
|
+
:email => "CONTACT_EMAIL",
|
47
|
+
:phone => "CONTACT_CELLNO",
|
48
|
+
:tellno => "CONTACT_TELLNO",
|
49
|
+
:company => "CONTACT_COMPANY"
|
50
|
+
|
51
|
+
|
52
|
+
mapping :billing_address, :city => "CONTACT_ADDR_CITY",
|
53
|
+
:address1 => "CONTACT_ADDR_STREET",
|
54
|
+
:address2 => "",
|
55
|
+
:state => "",
|
56
|
+
:zip => "CONTACT_ADDR_ZIP",
|
57
|
+
:country => "CONTACT_ADDR_COUNTRY"
|
58
|
+
|
59
|
+
mapping :notify_url, "NOTIFY_ADDRESS"
|
60
|
+
mapping :currency, "CURRENCY"
|
61
|
+
mapping :return_url, "RETURN_ADDRESS"
|
62
|
+
mapping :cancel_return_url, "CANCEL_ADDRESS"
|
63
|
+
mapping :description, "ORDER_DESCRIPTION"
|
64
|
+
mapping :tax, ""
|
65
|
+
mapping :shipping, ""
|
66
|
+
mapping :include_vat, "INCLUDE_VAT"
|
67
|
+
mapping :pending_address, "PENDING_ADDRESS"
|
68
|
+
mapping :culture, "CULTURE"
|
69
|
+
mapping :items, "ITEMS"
|
70
|
+
mapping :preselected_method, "PRESELECTED_METHOD"
|
71
|
+
mapping :mode, "MODE"
|
72
|
+
mapping :visible_methods, "VISIBLE_METHODS"
|
73
|
+
mapping :group, "GROUP"
|
74
|
+
|
75
|
+
(0..499.to_i).each do |i|
|
76
|
+
mapping "item_no_#{i}".to_sym, "ITEM_NO[#{i}]"
|
77
|
+
mapping "item_amount_#{i}".to_sym, "ITEM_AMOUNT[#{i}]"
|
78
|
+
mapping "item_price_#{i}".to_sym, "ITEM_PRICE[#{i}]"
|
79
|
+
mapping "item_tax_#{i}".to_sym, "ITEM_TAX[#{i}]"
|
80
|
+
mapping "item_discount_#{i}".to_sym, "ITEM_DISCOUNT[#{i}]"
|
81
|
+
mapping "item_type_#{i}".to_sym, "ITEM_TYPE[#{i}]"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
|
3
|
+
module ActiveMerchant #:nodoc:
|
4
|
+
module Billing #:nodoc:
|
5
|
+
module Integrations #:nodoc:
|
6
|
+
module Verkkomaksut
|
7
|
+
class Notification < ActiveMerchant::Billing::Integrations::Notification
|
8
|
+
|
9
|
+
# Is the payment complete or not. Verkkomaksut only has two statuses: random string or 0000000000 which means pending
|
10
|
+
def complete?
|
11
|
+
params['PAID'] != "0000000000"
|
12
|
+
end
|
13
|
+
|
14
|
+
# Order id
|
15
|
+
def order_id
|
16
|
+
params['ORDER_NUMBER']
|
17
|
+
end
|
18
|
+
|
19
|
+
# Payment method used
|
20
|
+
def method
|
21
|
+
params['METHOD']
|
22
|
+
end
|
23
|
+
|
24
|
+
# When was this payment received by the client.
|
25
|
+
def received_at
|
26
|
+
params['TIMESTAMP']
|
27
|
+
end
|
28
|
+
|
29
|
+
# Security key got from Verkkomaksut
|
30
|
+
def security_key
|
31
|
+
params['RETURN_AUTHCODE']
|
32
|
+
end
|
33
|
+
|
34
|
+
# Another way of asking the payment status
|
35
|
+
def status
|
36
|
+
if complete?
|
37
|
+
"PAID"
|
38
|
+
else
|
39
|
+
"PENDING"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# Acknowldges the payment. If the authcodes match, returns true.
|
44
|
+
def acknowledge(authcode)
|
45
|
+
return_authcode = [params["ORDER_NUMBER"], params["TIMESTAMP"], params["PAID"], params["METHOD"], authcode].join("|")
|
46
|
+
Digest::MD5.hexdigest(return_authcode).upcase == params["RETURN_AUTHCODE"]
|
47
|
+
end
|
48
|
+
private
|
49
|
+
|
50
|
+
def parse(post)
|
51
|
+
post.each do |key, value|
|
52
|
+
params[key] = value
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tlconnor-activemerchant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 75
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 1.
|
8
|
+
- 23
|
9
|
+
- 0
|
10
|
+
version: 1.23.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tobias Luetke
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain:
|
17
17
|
- gem-public_cert.pem
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-06-04 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -225,13 +225,18 @@ files:
|
|
225
225
|
- lib/active_merchant/billing/gateways/inspire.rb
|
226
226
|
- lib/active_merchant/billing/gateways/instapay.rb
|
227
227
|
- lib/active_merchant/billing/gateways/iridium.rb
|
228
|
+
- lib/active_merchant/billing/gateways/itransact.rb
|
228
229
|
- lib/active_merchant/billing/gateways/jetpay.rb
|
229
230
|
- lib/active_merchant/billing/gateways/linkpoint.rb
|
231
|
+
- lib/active_merchant/billing/gateways/litle.rb
|
230
232
|
- lib/active_merchant/billing/gateways/merchant_e_solutions.rb
|
231
233
|
- lib/active_merchant/billing/gateways/merchant_ware.rb
|
234
|
+
- lib/active_merchant/billing/gateways/migs/migs_codes.rb
|
235
|
+
- lib/active_merchant/billing/gateways/migs.rb
|
232
236
|
- lib/active_merchant/billing/gateways/modern_payments.rb
|
233
237
|
- lib/active_merchant/billing/gateways/modern_payments_cim.rb
|
234
238
|
- lib/active_merchant/billing/gateways/moneris.rb
|
239
|
+
- lib/active_merchant/billing/gateways/moneris_us.rb
|
235
240
|
- lib/active_merchant/billing/gateways/nab_transact.rb
|
236
241
|
- lib/active_merchant/billing/gateways/net_registry.rb
|
237
242
|
- lib/active_merchant/billing/gateways/netaxept.rb
|
@@ -254,8 +259,10 @@ files:
|
|
254
259
|
- lib/active_merchant/billing/gateways/payment_express.rb
|
255
260
|
- lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb
|
256
261
|
- lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb
|
262
|
+
- lib/active_merchant/billing/gateways/paypal/paypal_recurring_api.rb
|
257
263
|
- lib/active_merchant/billing/gateways/paypal.rb
|
258
264
|
- lib/active_merchant/billing/gateways/paypal_ca.rb
|
265
|
+
- lib/active_merchant/billing/gateways/paypal_digital_goods.rb
|
259
266
|
- lib/active_merchant/billing/gateways/paypal_express.rb
|
260
267
|
- lib/active_merchant/billing/gateways/paypal_express_common.rb
|
261
268
|
- lib/active_merchant/billing/gateways/paystation.rb
|
@@ -288,6 +295,7 @@ files:
|
|
288
295
|
- lib/active_merchant/billing/gateways/usa_epay_transaction.rb
|
289
296
|
- lib/active_merchant/billing/gateways/verifi.rb
|
290
297
|
- lib/active_merchant/billing/gateways/viaklix.rb
|
298
|
+
- lib/active_merchant/billing/gateways/vindicia.rb
|
291
299
|
- lib/active_merchant/billing/gateways/wirecard.rb
|
292
300
|
- lib/active_merchant/billing/gateways/worldpay.rb
|
293
301
|
- lib/active_merchant/billing/gateways.rb
|
@@ -312,6 +320,10 @@ files:
|
|
312
320
|
- lib/active_merchant/billing/integrations/directebanking/notification.rb
|
313
321
|
- lib/active_merchant/billing/integrations/directebanking/return.rb
|
314
322
|
- lib/active_merchant/billing/integrations/directebanking.rb
|
323
|
+
- lib/active_merchant/billing/integrations/dotpay/helper.rb
|
324
|
+
- lib/active_merchant/billing/integrations/dotpay/notification.rb
|
325
|
+
- lib/active_merchant/billing/integrations/dotpay/return.rb
|
326
|
+
- lib/active_merchant/billing/integrations/dotpay.rb
|
315
327
|
- lib/active_merchant/billing/integrations/dwolla/helper.rb
|
316
328
|
- lib/active_merchant/billing/integrations/dwolla/notification.rb
|
317
329
|
- lib/active_merchant/billing/integrations/dwolla/return.rb
|
@@ -319,6 +331,9 @@ files:
|
|
319
331
|
- lib/active_merchant/billing/integrations/e_payment_plans/helper.rb
|
320
332
|
- lib/active_merchant/billing/integrations/e_payment_plans/notification.rb
|
321
333
|
- lib/active_merchant/billing/integrations/e_payment_plans.rb
|
334
|
+
- lib/active_merchant/billing/integrations/epay/helper.rb
|
335
|
+
- lib/active_merchant/billing/integrations/epay/notification.rb
|
336
|
+
- lib/active_merchant/billing/integrations/epay.rb
|
322
337
|
- lib/active_merchant/billing/integrations/gestpay/common.rb
|
323
338
|
- lib/active_merchant/billing/integrations/gestpay/helper.rb
|
324
339
|
- lib/active_merchant/billing/integrations/gestpay/notification.rb
|
@@ -348,6 +363,11 @@ files:
|
|
348
363
|
- lib/active_merchant/billing/integrations/quickpay/notification.rb
|
349
364
|
- lib/active_merchant/billing/integrations/quickpay.rb
|
350
365
|
- lib/active_merchant/billing/integrations/return.rb
|
366
|
+
- lib/active_merchant/billing/integrations/robokassa/common.rb
|
367
|
+
- lib/active_merchant/billing/integrations/robokassa/helper.rb
|
368
|
+
- lib/active_merchant/billing/integrations/robokassa/notification.rb
|
369
|
+
- lib/active_merchant/billing/integrations/robokassa/return.rb
|
370
|
+
- lib/active_merchant/billing/integrations/robokassa.rb
|
351
371
|
- lib/active_merchant/billing/integrations/sage_pay_form/encryption.rb
|
352
372
|
- lib/active_merchant/billing/integrations/sage_pay_form/helper.rb
|
353
373
|
- lib/active_merchant/billing/integrations/sage_pay_form/notification.rb
|
@@ -362,6 +382,9 @@ files:
|
|
362
382
|
- lib/active_merchant/billing/integrations/valitor/response_fields.rb
|
363
383
|
- lib/active_merchant/billing/integrations/valitor/return.rb
|
364
384
|
- lib/active_merchant/billing/integrations/valitor.rb
|
385
|
+
- lib/active_merchant/billing/integrations/verkkomaksut/helper.rb
|
386
|
+
- lib/active_merchant/billing/integrations/verkkomaksut/notification.rb
|
387
|
+
- lib/active_merchant/billing/integrations/verkkomaksut.rb
|
365
388
|
- lib/active_merchant/billing/integrations/world_pay/helper.rb
|
366
389
|
- lib/active_merchant/billing/integrations/world_pay/notification.rb
|
367
390
|
- lib/active_merchant/billing/integrations/world_pay.rb
|