opay 1.2.8 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/opay/transferuj_controller.rb +12 -0
- data/config/routes.rb +10 -0
- data/lib/generators/opay/templates/opay_config.rb +5 -1
- data/lib/opay/configuration.rb +9 -1
- data/lib/opay/engine.rb +1 -0
- data/lib/opay/form_builder.rb +1 -0
- data/lib/opay/helpers/form_helper.rb +4 -0
- data/lib/opay/helpers/transferuj_helper.rb +39 -0
- data/lib/opay/helpers.rb +1 -0
- data/lib/opay/providers/transferuj.rb +44 -0
- data/lib/opay/providers.rb +1 -0
- data/lib/opay/version.rb +1 -1
- data/spec/dummy/app/views/orders/show.html.erb +7 -2
- data/spec/dummy/config/initializers/opay_config.rb +7 -3
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/log/development.log +1167 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e0f0caea5a066b3808a988b401cad530a7fd28c3
|
4
|
+
data.tar.gz: 7f976f362a89553cf3ec02eead51a537d59e75ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26c4bd481500c71ab9fb89750a2120e8014885bac4facbedbc564a60a37f9ff20c4c181ba0043b62ae73f2f60d5c99f6002b439397d6055c238609ae326270ca
|
7
|
+
data.tar.gz: e01fbe6d5bb7d0fb54ec760abf933377cede209ee07463c2331a052045065caf7c0bb1239962693b8fba471ac18f7841c3c8b484c4f482c208fc0d11d99dfb2f
|
data/config/routes.rb
CHANGED
@@ -9,6 +9,16 @@ Opay::Engine.routes.draw do
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
+
# transferuj
|
13
|
+
scope 'transferuj' do
|
14
|
+
post 'online' => 'transferuj#online', as: :transferuj_online
|
15
|
+
|
16
|
+
if Opay.config.process_payments_localy
|
17
|
+
patch 'secure' => 'transferuj#secure', as: :transferuj_new_payment
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
|
12
22
|
# paypal
|
13
23
|
scope 'paypal' do
|
14
24
|
patch 'new' => 'paypal#new', as: :paypal_new_payment
|
@@ -1,5 +1,5 @@
|
|
1
1
|
Opay.configure do |config|
|
2
|
-
config.providers = [:payu, :paypal]
|
2
|
+
config.providers = [:payu, :transferuj, :paypal]
|
3
3
|
|
4
4
|
config.test_mode = true
|
5
5
|
# config.process_payments_localy = true if Rails.env.development?
|
@@ -13,6 +13,10 @@ Opay.configure do |config|
|
|
13
13
|
config.payu_key1 = ENV['PAYU_KEY1']
|
14
14
|
config.payu_key2 = ENV['PAYU_KEY2']
|
15
15
|
|
16
|
+
# transferuj configuration
|
17
|
+
config.transferuj_user_id = ENV['TRANSFERUJ_USER_ID']
|
18
|
+
config.transferuj_secure_code = ENV['TRANSFERUJ_SECURE_CODE']
|
19
|
+
|
16
20
|
# paypal configuration
|
17
21
|
config.paypal_login = ENV['PAYPAL_LOGIN']
|
18
22
|
config.paypal_password = ENV['PAYPAL_PASSWORD']
|
data/lib/opay/configuration.rb
CHANGED
@@ -13,6 +13,10 @@ module Opay
|
|
13
13
|
config_accessor :payu_key1
|
14
14
|
config_accessor :payu_key2
|
15
15
|
|
16
|
+
# transferuj configuration
|
17
|
+
config_accessor :transferuj_user_id
|
18
|
+
config_accessor :transferuj_secure_code
|
19
|
+
|
16
20
|
# paypal configuration
|
17
21
|
config_accessor :paypal_login
|
18
22
|
config_accessor :paypal_password
|
@@ -37,7 +41,7 @@ module Opay
|
|
37
41
|
# Sets configuration back to default
|
38
42
|
def reset_config
|
39
43
|
configure do |config|
|
40
|
-
config.providers = [:payu, :paypal]
|
44
|
+
config.providers = [:payu, :transferuj, :paypal]
|
41
45
|
|
42
46
|
config.success_url = :success_payment_url
|
43
47
|
config.cancel_url = :cancel_payment_url
|
@@ -48,6 +52,10 @@ module Opay
|
|
48
52
|
config.payu_key1 = ENV['PAYU_KEY1']
|
49
53
|
config.payu_key2 = ENV['PAYU_KEY2']
|
50
54
|
|
55
|
+
# transferuj configuration
|
56
|
+
config.transferuj_user_id = ENV['TRANSFERUJ_USER_ID']
|
57
|
+
config.transferuj_secure_code = ENV['TRANSFERUJ_SECURE_CODE']
|
58
|
+
|
51
59
|
# paypal configuration
|
52
60
|
config.paypal_login = ENV['PAYPAL_LOGIN']
|
53
61
|
config.paypal_password = ENV['PAYPAL_PASSWORD']
|
data/lib/opay/engine.rb
CHANGED
data/lib/opay/form_builder.rb
CHANGED
@@ -12,6 +12,8 @@ module Opay
|
|
12
12
|
case @payment_provider
|
13
13
|
when :payu
|
14
14
|
return payu_form_for(record, options, &block)
|
15
|
+
when :transferuj
|
16
|
+
return transferuj_form_for(record, options, &block)
|
15
17
|
when :paypal
|
16
18
|
return paypal_form_for(record, options, &block)
|
17
19
|
end
|
@@ -24,6 +26,8 @@ module Opay
|
|
24
26
|
case @options[:provider]
|
25
27
|
when :payu
|
26
28
|
payu_payment_info(options)
|
29
|
+
when :transferuj
|
30
|
+
transferuj_payment_info(options)
|
27
31
|
when :paypal
|
28
32
|
paypal_payment_info(options)
|
29
33
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Opay
|
2
|
+
module Helpers
|
3
|
+
|
4
|
+
module TransferujHelper
|
5
|
+
|
6
|
+
def transferuj_form_for(record, options = {}, &block)
|
7
|
+
record.prepare_payment
|
8
|
+
|
9
|
+
options[:builder] ||= Opay::FormBuilder
|
10
|
+
options[:url] = Opay::Providers::Transferuj.url
|
11
|
+
options[:html] = { id: "transferuj_payment_form_#{record.id}", class: 'opay-form opay-transferuj-form' }
|
12
|
+
|
13
|
+
form_for(record, options, &block)
|
14
|
+
end
|
15
|
+
|
16
|
+
def transferuj_payment_info(options = {})
|
17
|
+
options[:id] ||= Opay.config.transferuj_user_id
|
18
|
+
options[:crc] ||= object.payment_session_id
|
19
|
+
|
20
|
+
options[:kwota] ||= object.amount
|
21
|
+
options[:opis] ||= options[:desc].present? ? options[:desc] : object.payment_description
|
22
|
+
|
23
|
+
options[:imie] ||= options[:first_name].present? ? options[:first_name] : object.first_name
|
24
|
+
options[:nazwisko] ||= options[:last_name].present? ? options[:last_name] : object.last_name
|
25
|
+
options[:email] ||= object.email
|
26
|
+
|
27
|
+
options[:pow_url] ||= @template.main_app.send(Opay.config.success_url)
|
28
|
+
options[:pow_url_blad] ||= @template.main_app.send(Opay.config.cancel_url)
|
29
|
+
|
30
|
+
# options[:pay_type] = 't' if Opay.config.test_mode
|
31
|
+
options[:md5sum] = Providers::Transferuj.create_form_sig(options)
|
32
|
+
|
33
|
+
options.except(:first_name, :last_name, :desc).map { |key, val| @template.hidden_field_tag(key, val) }.join("\n").html_safe
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
data/lib/opay/helpers.rb
CHANGED
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'uri'
|
3
|
+
|
4
|
+
module Opay
|
5
|
+
module Providers
|
6
|
+
|
7
|
+
class Transferuj
|
8
|
+
TRANSFERUJ_URL = 'https://secure.transferuj.pl/'
|
9
|
+
|
10
|
+
def self.process(params)
|
11
|
+
return false unless verify_sig(params[:md5sum], params[:id], params[:tr_id], params[:tr_amount], params[:tr_crc])
|
12
|
+
|
13
|
+
if params[:tr_status] == 'TRUE'
|
14
|
+
payment = Opay::Payment.where(session_id: params[:tr_crc]).first!
|
15
|
+
payment.payable.finish
|
16
|
+
end
|
17
|
+
|
18
|
+
return true
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.url
|
22
|
+
Opay.config.process_payments_localy == true ? '/opay/transferuj/secure' : TRANSFERUJ_URL
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.create_sig(*values)
|
26
|
+
Digest::MD5.hexdigest(values.join + Opay.config.transferuj_secure_code)
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.verify_sig(sig, *values)
|
30
|
+
sig == Digest::MD5.hexdigest(values.join + Opay.config.transferuj_secure_code)
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.create_form_sig(options)
|
34
|
+
sig_string = ''
|
35
|
+
%w( id kwota crc ).each do |key|
|
36
|
+
sig_string += options[key.to_sym].to_s if options.has_key?(key.to_sym)
|
37
|
+
end
|
38
|
+
|
39
|
+
create_sig(sig_string)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
data/lib/opay/providers.rb
CHANGED
data/lib/opay/version.rb
CHANGED
@@ -18,15 +18,20 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
<%= opay_form_for @order, provider: :payu do |f| %>
|
21
|
-
<%= f.payment_info first_name: 'Jan', last_name: 'Kowalski', email: 'kowalski@gmail.com', desc:
|
21
|
+
<%= f.payment_info first_name: 'Jan', last_name: 'Kowalski', email: 'kowalski@gmail.com', desc: @order.name, client_ip: '127.0.0.1' %>
|
22
22
|
<%= f.submit :pay_with_payu %>
|
23
23
|
<% end -%>
|
24
24
|
|
25
25
|
<%= opay_form_for @order, provider: :paypal do |f| %>
|
26
|
-
<%= f.paypal_payment_info desc:
|
26
|
+
<%= f.paypal_payment_info desc: @order.name, client_ip: '127.0.0.1' %>
|
27
27
|
<%= f.paypal_submit_tag %>
|
28
28
|
<% end -%>
|
29
29
|
|
30
|
+
<%= opay_form_for @order, provider: :transferuj do |f| %>
|
31
|
+
<%= f.payment_info first_name: 'Jan', last_name: 'Kowalski', email: 'kowalski@gmail.com', desc: @order.name %>
|
32
|
+
<%= f.submit :pay_with_transferuj %>
|
33
|
+
<% end -%>
|
34
|
+
|
30
35
|
|
31
36
|
<%= link_to 'Edit', edit_order_path(@order) %> |
|
32
37
|
<%= link_to 'Back', orders_path %>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# WebMock.disable! if Rails.env.development?
|
2
2
|
|
3
3
|
Opay.configure do |config|
|
4
|
-
config.providers = [:payu, :paypal]
|
4
|
+
config.providers = [:payu, :transferuj, :paypal]
|
5
5
|
|
6
|
-
config.success_url = :
|
7
|
-
config.cancel_url = :
|
6
|
+
config.success_url = :root_url
|
7
|
+
config.cancel_url = :root_url
|
8
8
|
|
9
9
|
# payu configuration
|
10
10
|
config.payu_pos_id = 123456
|
@@ -12,6 +12,10 @@ Opay.configure do |config|
|
|
12
12
|
config.payu_key1 = 'c0c4b1a6b72b610f9342ea6820ee3a9c'
|
13
13
|
config.payu_key2 = '2af5c662cab479e5471ca76326a57563'
|
14
14
|
|
15
|
+
# payu configuration
|
16
|
+
config.transferuj_user_id = 16059
|
17
|
+
config.transferuj_secure_code = 'EdDXG7F4L86svhcR'
|
18
|
+
|
15
19
|
# paypal configuration
|
16
20
|
config.paypal_login = 'ollownia-facilitator_api1.gmail.com'
|
17
21
|
config.paypal_password = '1395743145'
|
Binary file
|