bank_link 0.0.2 → 0.0.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.
- 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
|