bank_link 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +77 -38
- data/bank_link.gemspec +2 -0
- data/lib/bank_link/bank.rb +28 -0
- data/lib/bank_link/configuration.rb +24 -72
- data/lib/bank_link/link.rb +30 -23
- data/lib/bank_link/mac/base.rb +10 -23
- data/lib/bank_link/mac/solo.rb +5 -10
- data/lib/bank_link/mac/vk.rb +12 -10
- data/lib/bank_link/version.rb +1 -1
- data/lib/bank_link/view_helpers.rb +29 -16
- data/lib/bank_link.rb +14 -2
- data/mac_fields.yml +109 -0
- data/spec/lib/bank_link/bank_spec.rb +50 -0
- data/spec/lib/bank_link/configuration_spec.rb +17 -59
- data/spec/lib/bank_link/link_spec.rb +38 -34
- data/spec/lib/bank_link/mac/base_spec.rb +15 -18
- data/spec/lib/bank_link/mac/solo_spec.rb +17 -28
- data/spec/lib/bank_link/mac/vk_spec.rb +15 -10
- data/spec/lib/bank_link/view_helpers_spec.rb +51 -44
- data/spec/lib/bank_link_spec.rb +16 -3
- data/spec/spec_helper.rb +0 -3
- metadata +20 -5
- data/lib/bank_link/estruct.rb +0 -26
- data/spec/lib/bank_link/estruct_spec.rb +0 -37
data/mac_fields.yml
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
VK_SERVICE:
|
2
|
+
"1001":
|
3
|
+
- :VK_SERVICE
|
4
|
+
- :VK_VERSION
|
5
|
+
- :VK_SND_ID
|
6
|
+
- :VK_STAMP
|
7
|
+
- :VK_AMOUNT
|
8
|
+
- :VK_CURR
|
9
|
+
- :VK_ACC
|
10
|
+
- :VK_NAME
|
11
|
+
- :VK_REF
|
12
|
+
- :VK_MSG
|
13
|
+
"1002":
|
14
|
+
- :VK_SERVICE
|
15
|
+
- :VK_VERSION
|
16
|
+
- :VK_SND_ID
|
17
|
+
- :VK_STAMP
|
18
|
+
- :VK_AMOUNT
|
19
|
+
- :VK_CURR
|
20
|
+
- :VK_REF
|
21
|
+
- :VK_MSG
|
22
|
+
"1101":
|
23
|
+
- :VK_SERVICE
|
24
|
+
- :VK_VERSION
|
25
|
+
- :VK_SND_ID
|
26
|
+
- :VK_REC_ID
|
27
|
+
- :VK_STAMP
|
28
|
+
- :VK_T_NO
|
29
|
+
- :VK_AMOUNT
|
30
|
+
- :VK_CURR
|
31
|
+
- :VK_REC_ACC
|
32
|
+
- :VK_REC_NAME
|
33
|
+
- :VK_SND_ACC
|
34
|
+
- :VK_SND_NAME
|
35
|
+
- :VK_REF
|
36
|
+
- :VK_MSG
|
37
|
+
- :VK_T_DATE
|
38
|
+
"1901":
|
39
|
+
- :VK_SERVICE
|
40
|
+
- :VK_VERSION
|
41
|
+
- :VK_SND_ID
|
42
|
+
- :VK_REC_ID
|
43
|
+
- :VK_STAMP
|
44
|
+
- :VK_REF
|
45
|
+
- :VK_MSG
|
46
|
+
"1902":
|
47
|
+
- :VK_SERVICE
|
48
|
+
- :VK_VERSION
|
49
|
+
- :VK_SND_ID
|
50
|
+
- :VK_REC_ID
|
51
|
+
- :VK_STAMP
|
52
|
+
- :VK_REF
|
53
|
+
- :VK_MSG
|
54
|
+
- :VK_ERROR_CODE
|
55
|
+
"3001":
|
56
|
+
- :VK_SERVICE
|
57
|
+
- :VK_VERSION
|
58
|
+
- :VK_USER
|
59
|
+
- :VK_DATE
|
60
|
+
- :VK_TIME
|
61
|
+
- :VK_SND_ID
|
62
|
+
"3002":
|
63
|
+
- :VK_SERVICE
|
64
|
+
- :VK_VERSION
|
65
|
+
- :VK_USER
|
66
|
+
- :VK_DATE
|
67
|
+
- :VK_TIME
|
68
|
+
- :VK_SND_ID
|
69
|
+
- :VK_INFO
|
70
|
+
"3003":
|
71
|
+
- :VK_SERVICE
|
72
|
+
- :VK_VERSION
|
73
|
+
- :VK_SND_ID
|
74
|
+
- :VK_REC_ID
|
75
|
+
- :VK_NONCE
|
76
|
+
- :VK_INFO
|
77
|
+
"4001":
|
78
|
+
- :VK_SERVICE
|
79
|
+
- :VK_VERSION
|
80
|
+
- :VK_SND_ID
|
81
|
+
- :VK_REPLY
|
82
|
+
- :VK_RETURN
|
83
|
+
- :VK_DATE
|
84
|
+
- :VK_TIME
|
85
|
+
"4002":
|
86
|
+
- :VK_SERVICE
|
87
|
+
- :VK_VERSION
|
88
|
+
- :VK_SND_ID
|
89
|
+
- :VK_REC_ID
|
90
|
+
- :VK_NONCE
|
91
|
+
- :VK_RETURN
|
92
|
+
SOLOPMT_VERSION:
|
93
|
+
"0002":
|
94
|
+
- :SOLOPMT_VERSION
|
95
|
+
- :SOLOPMT_STAMP
|
96
|
+
- :SOLOPMT_RCV_ID
|
97
|
+
- :SOLOPMT_AMOUNT
|
98
|
+
- :SOLOPMT_REF
|
99
|
+
- :SOLOPMT_DATE
|
100
|
+
- :SOLOPMT_CUR
|
101
|
+
"0003":
|
102
|
+
- :SOLOPMT_VERSION
|
103
|
+
- :SOLOPMT_STAMP
|
104
|
+
- :SOLOPMT_RCV_ID
|
105
|
+
- :SOLOPMT_AMOUNT
|
106
|
+
- :SOLOPMT_REF
|
107
|
+
- :SOLOPMT_DATE
|
108
|
+
- :SOLOPMT_CUR
|
109
|
+
|
@@ -0,0 +1,50 @@
|
|
1
|
+
describe BankLink::Bank do
|
2
|
+
subject {
|
3
|
+
BankLink::Bank.new :name do |bank|
|
4
|
+
end
|
5
|
+
}
|
6
|
+
|
7
|
+
describe ".settings" do
|
8
|
+
it "should return settings" do
|
9
|
+
expect(subject.settings).to be_a Hashie::Mash
|
10
|
+
end
|
11
|
+
context "given block" do
|
12
|
+
it "should allow to configure" do
|
13
|
+
subject.settings do |settings|
|
14
|
+
expect(settings).to eq(subject.settings)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe ".payment_link" do
|
21
|
+
it "should return payment link" do
|
22
|
+
subject.payment_link "some.url"
|
23
|
+
expect(subject.payment_link).to be_a BankLink::Link
|
24
|
+
expect(subject.payment_link.url).to eq("some.url")
|
25
|
+
end
|
26
|
+
context "given url" do
|
27
|
+
it "should define new payment link" do
|
28
|
+
expect(subject.payment_link).to be_nil
|
29
|
+
subject.payment_link "some.url"
|
30
|
+
expect(subject.payment_link).to be_a BankLink::Link
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe ".authorization_link" do
|
36
|
+
it "should return authorization link" do
|
37
|
+
subject.authorization_link "some.url"
|
38
|
+
expect(subject.authorization_link).to be_a BankLink::Link
|
39
|
+
expect(subject.authorization_link.url).to eq("some.url")
|
40
|
+
end
|
41
|
+
context "given url" do
|
42
|
+
it "should define new payment link" do
|
43
|
+
expect(subject.authorization_link).to be_nil
|
44
|
+
subject.authorization_link "some.url"
|
45
|
+
expect(subject.authorization_link).to be_a BankLink::Link
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
@@ -1,80 +1,38 @@
|
|
1
1
|
describe BankLink::Configuration do
|
2
2
|
subject { BankLink::Configuration.send(:new) }
|
3
|
-
before do
|
4
|
-
subject.links(:aaa, "url") do |data, form|
|
5
|
-
data.bla = 5
|
6
|
-
form.something = 17
|
7
|
-
end
|
8
|
-
end
|
9
|
-
let(:test_link) do
|
10
|
-
subject.links[:aaa]
|
11
|
-
end
|
12
3
|
|
13
|
-
describe "#
|
14
|
-
context "given
|
15
|
-
it "should add
|
16
|
-
expect(subject.
|
17
|
-
subject.
|
18
|
-
|
19
|
-
|
20
|
-
end
|
21
|
-
context "given block" do
|
22
|
-
it "should insert new link" do
|
23
|
-
expect(subject.links.count).to eq(1)
|
24
|
-
subject.links(:ccc, "url") do |data, form|
|
25
|
-
data.in_block = true
|
26
|
-
form.x = "false"
|
4
|
+
describe "#banks" do
|
5
|
+
context "given name and block" do
|
6
|
+
it "should add bank" do
|
7
|
+
expect(subject.banks.count).to eq(0)
|
8
|
+
subject.banks :swed do |bank|
|
9
|
+
expect(bank).to be_a BankLink::Bank
|
10
|
+
expect(bank.name).to eq(:swed)
|
27
11
|
end
|
28
|
-
expect(subject.
|
29
|
-
ccc = subject.links[:ccc]
|
30
|
-
expect(ccc.name).to eq(:ccc)
|
31
|
-
expect(ccc.url).to eq("url")
|
32
|
-
expect(ccc.data.in_block).to be_true
|
33
|
-
expect(ccc.form.x).to eq("false")
|
12
|
+
expect(subject.banks.count).to eq(1)
|
34
13
|
end
|
35
14
|
end
|
36
15
|
|
37
|
-
context "
|
38
|
-
|
39
|
-
|
40
|
-
end
|
41
|
-
|
42
|
-
describe "#mac_fields" do
|
43
|
-
context "given block" do
|
44
|
-
specify do
|
45
|
-
subject.mac_fields do |mf|
|
46
|
-
expect(mf).to be_a BankLink::EStruct
|
16
|
+
context "given name" do
|
17
|
+
it "should return that bank" do
|
18
|
+
subject.banks :swed do |bank|
|
47
19
|
end
|
20
|
+
expect(subject.banks(:swed)).to be_a BankLink::Bank
|
48
21
|
end
|
49
22
|
end
|
50
|
-
|
51
|
-
context "without arguments" do
|
52
|
-
specify { expect(subject.mac_fields).to be_a BankLink::EStruct }
|
53
|
-
end
|
54
23
|
end
|
55
24
|
|
56
|
-
describe "#
|
25
|
+
describe "#mac_fields" do
|
57
26
|
context "given block" do
|
58
27
|
specify do
|
59
|
-
subject.
|
60
|
-
expect(
|
28
|
+
subject.mac_fields do |mf|
|
29
|
+
expect(mf).to be_a Hashie::Mash
|
61
30
|
end
|
62
31
|
end
|
63
32
|
end
|
64
33
|
|
65
34
|
context "without arguments" do
|
66
|
-
specify { expect(subject.
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
describe "#default_encoding" do
|
71
|
-
specify { expect(subject.default_encoding).to be_nil }
|
72
|
-
end
|
73
|
-
|
74
|
-
describe "#default_encoding=" do
|
75
|
-
it "should set default_encoding" do
|
76
|
-
subject.default_encoding = "bla"
|
77
|
-
expect(subject.default_encoding).to_not be_nil
|
35
|
+
specify { expect(subject.mac_fields).to be_a Hashie::Mash }
|
78
36
|
end
|
79
37
|
end
|
80
|
-
end
|
38
|
+
end
|
@@ -1,51 +1,54 @@
|
|
1
1
|
describe BankLink::Link do
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
2
|
+
let :bank do
|
3
|
+
BankLink::Bank.new :name do |bank|
|
4
|
+
end
|
5
|
+
end
|
6
|
+
|
7
|
+
let :bank2 do
|
8
|
+
BankLink::Bank.new :name do |bank|
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
subject {
|
13
|
+
BankLink::Link.new bank, "some.url" do |form|
|
14
|
+
end
|
15
|
+
}
|
16
|
+
|
17
|
+
describe ".settings" do
|
18
|
+
it "should delegate to bank" do
|
19
|
+
expect(subject.bank).to receive(:settings)
|
20
|
+
subject.settings
|
9
21
|
end
|
10
|
-
specify { expect(link.data).to be_a BankLink::EStruct }
|
11
|
-
specify { expect(link.form).to be_a BankLink::EStruct }
|
12
|
-
specify { expect(link.name).to eq(:name) }
|
13
|
-
specify { expect(link.url).to eq("url") }
|
14
|
-
specify { expect(link.data.bla).to eq(5) }
|
15
|
-
specify { expect(link.form.bla).to eq(17) }
|
16
22
|
end
|
17
23
|
|
18
24
|
describe ".processed_data" do
|
19
|
-
|
20
|
-
|
25
|
+
|
26
|
+
before(:each) do
|
27
|
+
subject.form.value1 = 1
|
28
|
+
subject.form.value2 = 2
|
29
|
+
subject.form.value3 = Proc.new { 3 }
|
30
|
+
subject.form.value4 = Proc.new { |link, object| "aaaaa" }
|
31
|
+
bank.settings.encoding_key = "ENCODING_KEY"
|
32
|
+
bank.settings.encoding = "UTF8"
|
33
|
+
|
34
|
+
allow_any_instance_of(BankLink::Mac::VK).to receive(:generate).and_return { "aaaaaaaaaaa" }
|
35
|
+
end
|
36
|
+
|
37
|
+
let(:data) { subject.processed_data(nil) }
|
38
|
+
|
39
|
+
let(:link_without_encoding) do
|
40
|
+
BankLink::Link.new bank2, "url" do |form|
|
21
41
|
form.value1 = 1
|
22
42
|
form.value2 = 2
|
23
43
|
form.value3 = Proc.new { 3 }
|
24
44
|
form.value4 = Proc.new { |link, object| "aaaaa" }
|
25
|
-
data.encoding_key = "ENCODING_KEY"
|
26
|
-
data.encoding = "UTF8"
|
27
45
|
end
|
28
46
|
end
|
29
47
|
|
30
|
-
let(:data) { link.processed_data(nil) }
|
31
|
-
|
32
|
-
before(:each) do
|
33
|
-
allow_any_instance_of(BankLink::Mac::VK).to receive(:generate).and_return { "aaaaaaaaaaa" }
|
34
|
-
end
|
35
|
-
|
36
48
|
context "encoding" do
|
37
|
-
let(:link_without_encoding) do
|
38
|
-
BankLink::Link.new :name, "url" do |data, form|
|
39
|
-
form.value1 = 1
|
40
|
-
form.value2 = 2
|
41
|
-
form.value3 = Proc.new { 3 }
|
42
|
-
form.value4 = Proc.new { |link, object| "aaaaa" }
|
43
|
-
data.encoding_key = :ENCODING_KEY
|
44
|
-
end
|
45
|
-
end
|
46
49
|
context "should set encoding" do
|
47
50
|
it "when given encoding key and encoding" do
|
48
|
-
data =
|
51
|
+
data = subject.processed_data(nil)
|
49
52
|
expect(data[:ENCODING_KEY]).to eq("UTF8")
|
50
53
|
end
|
51
54
|
it "unless encoding is set" do
|
@@ -55,6 +58,7 @@ describe BankLink::Link do
|
|
55
58
|
end
|
56
59
|
end
|
57
60
|
it "should calculate mac" do
|
61
|
+
data = link_without_encoding.processed_data(nil)
|
58
62
|
expect(data[:VK_MAC]).to eq("aaaaaaaaaaa")
|
59
63
|
end
|
60
64
|
it "should calculate procs" do
|
@@ -62,4 +66,4 @@ describe BankLink::Link do
|
|
62
66
|
expect(data.value4).to eq("aaaaa")
|
63
67
|
end
|
64
68
|
end
|
65
|
-
end
|
69
|
+
end
|
@@ -1,24 +1,21 @@
|
|
1
1
|
describe BankLink::Mac::Base do
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
let(:link) { BankLink::Link.new(:aaa, "aaa") }
|
7
|
-
|
8
|
-
let(:xx) { BankLink::EStruct.new(:x => 5) }
|
9
|
-
|
10
|
-
subject { BankLink::Mac::Base.new(link, xx) }
|
11
|
-
|
12
|
-
describe "#new" do
|
13
|
-
specify { expect(subject.data).to be_a(BankLink::EStruct) }
|
14
|
-
specify { expect(subject.link).to be_a(BankLink::Link) }
|
2
|
+
let :bank do
|
3
|
+
BankLink::Bank.new :name do |bank|
|
4
|
+
end
|
15
5
|
end
|
16
6
|
|
17
|
-
|
18
|
-
|
7
|
+
let :link do
|
8
|
+
BankLink::Link.new bank, "some.url" do |form|
|
9
|
+
end
|
19
10
|
end
|
20
11
|
|
21
|
-
|
22
|
-
|
12
|
+
subject do
|
13
|
+
BankLink::Mac::Base.new(link, Hashie::Mash.new)
|
23
14
|
end
|
24
|
-
|
15
|
+
|
16
|
+
it { expect { subject.key }.to raise_error(NotImplementedError) }
|
17
|
+
it { expect { subject.query_key }.to raise_error(NotImplementedError) }
|
18
|
+
it { expect { subject.generate }.to raise_error(NotImplementedError) }
|
19
|
+
it { expect { subject.verify }.to raise_error(NotImplementedError) }
|
20
|
+
it { expect { subject.keys("111") }.to raise_error(NotImplementedError) }
|
21
|
+
end
|
@@ -1,44 +1,33 @@
|
|
1
1
|
describe BankLink::Mac::Solo do
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
BankLink::Link.new(:link, :url) do |data, form|
|
8
|
-
data.algorithm = OpenSSL::Digest::SHA1
|
9
|
-
data.mac_key = "SOMEKEY"
|
2
|
+
|
3
|
+
let :bank do
|
4
|
+
BankLink::Bank.new :name do |bank|
|
5
|
+
bank.settings.digest = OpenSSL::Digest::SHA1
|
6
|
+
bank.settings.private_key = "SOMEKEY"
|
10
7
|
end
|
11
8
|
end
|
12
9
|
|
13
|
-
let
|
14
|
-
BankLink::Link.new
|
15
|
-
data.mac_key = "SOMEKEY"
|
10
|
+
let :link do
|
11
|
+
BankLink::Link.new bank, "some.url" do |form|
|
16
12
|
end
|
17
13
|
end
|
18
14
|
|
19
|
-
let(:data) {
|
20
|
-
|
21
|
-
let(:mac_sha1) { BankLink::Mac::Solo.new(link_sha1,data) }
|
22
|
-
let(:mac_md5) { BankLink::Mac::Solo.new(link_md5,data) }
|
15
|
+
let(:data) { Hashie::Mash.new(:SOLOPMT_VERSION => "0003") }
|
23
16
|
|
17
|
+
subject do
|
18
|
+
BankLink::Mac::Solo.new(link, data)
|
19
|
+
end
|
24
20
|
|
25
|
-
specify { expect(
|
26
|
-
specify { expect(
|
21
|
+
specify { expect(subject.query_key).to eq(:SOLOPMT_VERSION) }
|
22
|
+
specify { expect(subject.key).to eq(:SOLOPMT_MAC) }
|
27
23
|
|
28
|
-
let(:
|
29
|
-
let(:md5_result) { "7990ACDD585F151ED8C9405B5838EEDC" }
|
24
|
+
let(:result) { "08233F97B068D5CFF7EAD4F9C16779504E638301" }
|
30
25
|
|
31
26
|
describe ".generate" do
|
32
|
-
|
33
|
-
specify { expect(mac_sha1.generate).to eq(sha1_result)}
|
34
|
-
end
|
35
|
-
context "algirithm is md5" do
|
36
|
-
specify { expect(mac_md5.generate).to eq(md5_result)}
|
37
|
-
end
|
27
|
+
specify { expect(subject.generate).to eq(result)}
|
38
28
|
end
|
39
29
|
|
40
30
|
describe ".request_data" do
|
41
|
-
specify { expect(
|
42
|
-
specify { expect(mac_md5.instance_eval { request_data("0003") }).to eq(["0003&", "&", "&", "&", "&", "&", "&", "SOMEKEY&"]) }
|
31
|
+
specify { expect(subject.instance_eval { request_data("0003") }).to eq(["0003&", "&", "&", "&", "&", "&", "&", "SOMEKEY&"]) }
|
43
32
|
end
|
44
|
-
end
|
33
|
+
end
|
@@ -1,19 +1,24 @@
|
|
1
1
|
describe BankLink::Mac::VK do
|
2
|
-
specify { expect(BankLink::Mac::VK.query_key).to eq(:VK_SERVICE) }
|
3
|
-
specify { expect(BankLink::Mac::VK.key).to eq(:VK_MAC) }
|
4
|
-
specify { expect(BankLink::Mac::VK.default_algorithm).to eq(OpenSSL::Digest::SHA1) }
|
5
2
|
|
6
|
-
let
|
7
|
-
BankLink::
|
8
|
-
|
3
|
+
let :bank do
|
4
|
+
BankLink::Bank.new :name do |bank|
|
5
|
+
bank.settings.digest = OpenSSL::Digest::MD5
|
9
6
|
end
|
10
7
|
end
|
11
8
|
|
12
|
-
let
|
9
|
+
let :link do
|
10
|
+
BankLink::Link.new bank, "some.url" do |form|
|
11
|
+
end
|
12
|
+
end
|
13
13
|
|
14
|
-
|
14
|
+
let(:data) { Hashie::Mash.new(:VK_SERVICE => "1001") }
|
15
|
+
|
16
|
+
subject do
|
17
|
+
BankLink::Mac::VK.new(link, data)
|
18
|
+
end
|
15
19
|
|
16
|
-
specify { expect(subject.
|
20
|
+
specify { expect(subject.query_key).to eq(:VK_SERVICE) }
|
21
|
+
specify { expect(subject.key).to eq(:VK_MAC) }
|
17
22
|
|
18
23
|
let(:private_key) { double("Key") }
|
19
24
|
|
@@ -32,4 +37,4 @@ describe BankLink::Mac::VK do
|
|
32
37
|
describe ".request_data" do
|
33
38
|
specify { expect(subject.instance_eval { request_data("1001") }).to eq("0041001000000000000000000000000000") }
|
34
39
|
end
|
35
|
-
end
|
40
|
+
end
|
@@ -1,63 +1,70 @@
|
|
1
1
|
class BLVHDummy
|
2
|
-
include ActionView::Helpers::UrlHelper
|
3
|
-
include ActionView::Helpers::TagHelper
|
4
|
-
include ActionView::Helpers::CaptureHelper
|
5
|
-
include ActionView::Helpers::FormTagHelper
|
6
|
-
include ActionView::Context
|
7
|
-
include BankLink::ViewHelpers
|
2
|
+
include ::ActionView::Helpers::UrlHelper
|
3
|
+
include ::ActionView::Helpers::TagHelper
|
4
|
+
include ::ActionView::Helpers::CaptureHelper
|
5
|
+
include ::ActionView::Helpers::FormTagHelper
|
6
|
+
include ::ActionView::Context
|
7
|
+
include ::BankLink::ViewHelpers
|
8
8
|
end
|
9
9
|
|
10
10
|
describe BankLink::ViewHelpers do
|
11
|
+
|
11
12
|
subject { BLVHDummy.new }
|
12
13
|
before(:all) do
|
13
14
|
BankLink.configuration do |config|
|
14
|
-
config.
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
form[:SOLOPMT_AMOUNT] = "55.12"
|
19
|
-
form[:SOLOPMT_REF] = "55"
|
20
|
-
form[:SOLOPMT_MSG] = Proc.new { |link, object| "message for payment" }
|
21
|
-
form[:SOLOPMT_RETURN] = Proc.new { |link, object| "http://some.where.else1.com" }
|
22
|
-
form[:SOLOPMT_CANCEL] = Proc.new { |link, object| "http://some.where.else2.com" }
|
23
|
-
form[:SOLOPMT_REJECT] = Proc.new { |link, object| "http://some.where.else3.com" }
|
15
|
+
config.banks :dummy_bank do |bank|
|
16
|
+
bank.settings.mac_class = BankLink::Mac::Solo
|
17
|
+
bank.settings.private_key = "MY MAC KEY"
|
18
|
+
bank.settings.digest = OpenSSL::Digest::MD5
|
24
19
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
20
|
+
bank.payment_link "https://some.where.com" do |form|
|
21
|
+
form[:SOLOPMT_VERSION] = "0003"
|
22
|
+
form[:SOLOPMT_STAMP] = "555"
|
23
|
+
form[:SOLOPMT_RCV_ID] = "99999999"
|
24
|
+
form[:SOLOPMT_AMOUNT] = "55.12"
|
25
|
+
form[:SOLOPMT_REF] = "55"
|
26
|
+
form[:SOLOPMT_MSG] = Proc.new { |link, object| "message for payment" }
|
27
|
+
form[:SOLOPMT_RETURN] = Proc.new { |link, object| "http://some.where.else1.com" }
|
28
|
+
form[:SOLOPMT_CANCEL] = Proc.new { |link, object| "http://some.where.else2.com" }
|
29
|
+
form[:SOLOPMT_REJECT] = Proc.new { |link, object| "http://some.where.else3.com" }
|
30
|
+
form[:SOLOPMT_CONFIRM] = "YES"
|
31
|
+
form[:SOLOPMT_KEYVERS] = "0001"
|
32
|
+
form[:SOLOPMT_DATE] = "EXPRESS"
|
33
|
+
form[:SOLOPMT_CUR] = "EUR"
|
34
|
+
form[:SOLOPMT_LANGUAGE] = "3"
|
35
|
+
end
|
32
36
|
end
|
33
37
|
|
34
|
-
config.
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
data.encoding = "UTF-8"
|
41
|
-
form[:SOLOPMT_REF] = "55"
|
42
|
-
form[:SOLOPMT_MSG] = Proc.new { |link, object| "message for payment" }
|
43
|
-
form[:SOLOPMT_RETURN] = Proc.new { |link, object| "http://some.where.else1.com" }
|
44
|
-
form[:SOLOPMT_CANCEL] = Proc.new { |link, object| "http://some.where.else2.com" }
|
45
|
-
form[:SOLOPMT_REJECT] = Proc.new { |link, object| "http://some.where.else3.com" }
|
38
|
+
config.banks :dummy_bank_w_encoding do |bank|
|
39
|
+
bank.settings.mac_class = BankLink::Mac::Solo
|
40
|
+
bank.settings.private_key = "MY MAC KEY"
|
41
|
+
bank.settings.encoding_key = "VK_ENCODING"
|
42
|
+
bank.settings.encoding = "UTF-8"
|
43
|
+
bank.settings.digest = OpenSSL::Digest::MD5
|
46
44
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
45
|
+
bank.payment_link "https://some.where.com" do |form|
|
46
|
+
form[:SOLOPMT_VERSION] = "0003"
|
47
|
+
form[:SOLOPMT_STAMP] = "555"
|
48
|
+
form[:SOLOPMT_RCV_ID] = "99999999"
|
49
|
+
form[:SOLOPMT_AMOUNT] = "55.12"
|
50
|
+
form[:SOLOPMT_REF] = "55"
|
51
|
+
form[:SOLOPMT_MSG] = Proc.new { |link, object| "message for payment" }
|
52
|
+
form[:SOLOPMT_RETURN] = Proc.new { |link, object| "http://some.where.else1.com" }
|
53
|
+
form[:SOLOPMT_CANCEL] = Proc.new { |link, object| "http://some.where.else2.com" }
|
54
|
+
form[:SOLOPMT_REJECT] = Proc.new { |link, object| "http://some.where.else3.com" }
|
55
|
+
form[:SOLOPMT_CONFIRM] = "YES"
|
56
|
+
form[:SOLOPMT_KEYVERS] = "0001"
|
57
|
+
form[:SOLOPMT_DATE] = "EXPRESS"
|
58
|
+
form[:SOLOPMT_CUR] = "EUR"
|
59
|
+
form[:SOLOPMT_LANGUAGE] = "3"
|
60
|
+
end
|
54
61
|
end
|
55
62
|
end
|
56
63
|
end
|
57
64
|
|
58
|
-
let(:dummy_link) { BankLink.configuration.
|
65
|
+
let(:dummy_link) { BankLink.configuration.banks[:dummy_bank].payment_link }
|
59
66
|
|
60
|
-
let(:dummy_link_w_encoding) { BankLink.configuration.
|
67
|
+
let(:dummy_link_w_encoding) { BankLink.configuration.banks[:dummy_bank_w_encoding].payment_link }
|
61
68
|
|
62
69
|
let(:result_plain) { subject.bank_link_tag(dummy_link) }
|
63
70
|
|
data/spec/lib/bank_link_spec.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
describe BankLink do
|
2
|
-
it { should respond_to :each }
|
3
2
|
describe "#configuration" do
|
4
3
|
context "given block" do
|
5
|
-
it "should allow
|
4
|
+
it "should allow to configure" do
|
6
5
|
subject.configuration do |config|
|
7
|
-
expect(config).to
|
6
|
+
expect(config).to eq subject.configuration
|
8
7
|
end
|
9
8
|
end
|
10
9
|
end
|
@@ -14,4 +13,18 @@ describe BankLink do
|
|
14
13
|
end
|
15
14
|
end
|
16
15
|
end
|
16
|
+
|
17
|
+
describe "#payment_links" do
|
18
|
+
it "should delegate to configuration" do
|
19
|
+
expect(BankLink.configuration).to receive(:payment_links)
|
20
|
+
subject.payment_links
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "#authorization_links" do
|
25
|
+
it "should delegate to configuration" do
|
26
|
+
expect(BankLink.configuration).to receive(:authorization_links)
|
27
|
+
subject.authorization_links
|
28
|
+
end
|
29
|
+
end
|
17
30
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,8 +1,5 @@
|
|
1
1
|
require "bank_link"
|
2
2
|
|
3
|
-
if RUBY_VERSION == "1.8.7"
|
4
|
-
Enumerator = Enumerable
|
5
|
-
end
|
6
3
|
# This file was generated by the `rspec --init` command. Conventionally, all
|
7
4
|
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
8
5
|
# Require this file using `require "spec_helper"` to ensure that it is only
|