bank_link 0.0.3 → 0.0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6f1f740303014c35a3e0973b7e434e2c014279aa
4
- data.tar.gz: 98aa010fd3057255e52dc0a53458063a31e60d52
3
+ metadata.gz: ec1e878cb232583467878d81d70aa477a3b7ba90
4
+ data.tar.gz: 9d0e3144e7648c37f6abc5471eaea5d43cab25d6
5
5
  SHA512:
6
- metadata.gz: 223593b63c1650511b08874da3ed73ceadf58a3850cd9a557b744ebbe9fbafc864c2f7b5126665d352f24f4c6603066f3c3e8b2826e19d33dd21cd0f5b4708a5
7
- data.tar.gz: e18324989715dc1bdf7798264e955002ee71aec21f6ac66c12e9003e6a521650f6bd02ed52f59e87c63bfde51eefee58daea527069021a1a7aa55048f3629159
6
+ metadata.gz: 57a4cfcab33759b6309d313a7ea4518318717d206eb6ada3fc13e41a8185070a779775889ece469a447126b217099165e30632923db1683da304279604113f20
7
+ data.tar.gz: 1f12f9f682a8edd60c50673315a467af37fd99c3594986c24a0de3ed8bcff1a8858ea5a1b7c0a0cccf775ce0a0b4e2ec814713083cc65a33e77ec2e62cfa1d93
data/.travis.yml CHANGED
@@ -1,11 +1,11 @@
1
1
  language: ruby
2
2
  rvm:
3
+ - 2.1.0
4
+ - 2.0.0
3
5
  - 1.9.3
4
6
  - 1.9.2
5
7
  - jruby-18mode
6
8
  - jruby-19mode
7
- - rbx-18mode
8
- - rbx-19mode
9
9
  - ruby-head
10
10
  - 1.8.7
11
11
  - ree
data/README.md CHANGED
@@ -29,7 +29,7 @@ BankLink do |config|
29
29
  Defaults can be found in [mac_fields.yml](https://github.com/jhaesus/bank_link/blob/master/mac_fields.yml)
30
30
  ```ruby
31
31
  config.mac_fields do |mac_fields|
32
- mac_fields.SOLOPMT_VERSION["0003"] = [
32
+ mac_fields.SOLOPMT_VERSION[:request]["0003"] = [
33
33
  :VERSION,
34
34
  :STAMP,
35
35
  :RCV_ID,
@@ -24,8 +24,7 @@ module BankLink
24
24
  def verify params
25
25
  content = Hashie::Mash.new(params)
26
26
  mac = settings.mac_class.new(self, content)
27
- version = params[mac.query_key]
28
- mac.verify version, params[mac.key]
27
+ mac.verify content
29
28
  end
30
29
 
31
30
  def calculate_keys content, object
@@ -28,8 +28,8 @@ module BankLink
28
28
  raise NotImplementedError
29
29
  end
30
30
 
31
- def keys version
32
- BankLink.configuration.mac_fields[query_key][version.intern]
31
+ def keys version, type=:request
32
+ BankLink.configuration.mac_fields[query_key][type][version.intern]
33
33
  end
34
34
  end
35
35
  end
@@ -15,9 +15,19 @@ module BankLink
15
15
  settings.digest.hexdigest(request_data(version).join).upcase
16
16
  end
17
17
 
18
+ def verify content
19
+ version = content[returnify(query_key)]
20
+ check = content[returnify(key)]
21
+ settings.digest.hexdigest(request_data(version, :response).join).upcase == check
22
+ end
23
+
24
+ def returnify key
25
+ key.to_s.gsub('SOLOPMT_','SOLOPMT_RETURN_')
26
+ end
27
+
18
28
  private
19
- def request_data version
20
- keys(version).collect { |key_name|
29
+ def request_data version, type=:request
30
+ keys(version, type).collect { |key_name|
21
31
  field_for data[key_name].to_s
22
32
  } + [field_for(settings.private_key)]
23
33
  end
@@ -20,9 +20,11 @@ module BankLink
20
20
  )
21
21
  end
22
22
 
23
- def verify version, mac
23
+ def verify content
24
+ version = content[query_key]
25
+ check = content[key]
24
26
  public_key = OpenSSL::X509::Certificate.new(settings.public_key).public_key
25
- public_key.verify settings.digest.new, Base64.strict_decode64(mac), request_data(version)
27
+ public_key.verify settings.digest.new, Base64.strict_decode64(check), request_data(version, :response)
26
28
  end
27
29
 
28
30
  private
@@ -35,8 +37,8 @@ module BankLink
35
37
  ["%03d" % value.length, value]
36
38
  end
37
39
 
38
- def request_data version
39
- keys(version).collect { |key_name|
40
+ def request_data version, type=:request
41
+ keys(version, type).collect { |key_name|
40
42
  field_for data[key_name].to_s
41
43
  }.flatten.join
42
44
  end
@@ -1,3 +1,3 @@
1
1
  module BankLink
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -13,23 +13,23 @@ module BankLink
13
13
  end
14
14
 
15
15
  def authorization_links object=nil, options={}, &block
16
- content_tag(:div, (options[:container] || {})) do
17
- BankLink.authorization_links do |link|
18
- concat(bank_link_tag(link, object, options, &block))
19
- end
20
- end
16
+ bank_links :authorization_links, object, options, &block
21
17
  end
22
18
 
23
19
  def payment_links object=nil, options={}, &block
20
+ bank_links :payment_links, object, options, &block
21
+ end
22
+
23
+ private
24
+
25
+ def bank_links type, object, options, &block
24
26
  content_tag(:div, (options[:container] || {})) do
25
- BankLink.payment_links do |link|
27
+ BankLink.method(type).call do |link|
26
28
  concat(bank_link_tag(link, object, options, &block))
27
29
  end
28
30
  end
29
31
  end
30
32
 
31
- private
32
-
33
33
  def bank_link_form_options link, form_data, options={}
34
34
  form_options = { :action => link.url, :method => :post }
35
35
 
data/mac_fields.yml CHANGED
@@ -1,109 +1,142 @@
1
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
2
+ request:
3
+ "1001":
4
+ - :VK_SERVICE
5
+ - :VK_VERSION
6
+ - :VK_SND_ID
7
+ - :VK_STAMP
8
+ - :VK_AMOUNT
9
+ - :VK_CURR
10
+ - :VK_ACC
11
+ - :VK_NAME
12
+ - :VK_REF
13
+ - :VK_MSG
14
+ "1002":
15
+ - :VK_SERVICE
16
+ - :VK_VERSION
17
+ - :VK_SND_ID
18
+ - :VK_STAMP
19
+ - :VK_AMOUNT
20
+ - :VK_CURR
21
+ - :VK_REF
22
+ - :VK_MSG
23
+ "4001":
24
+ - :VK_SERVICE
25
+ - :VK_VERSION
26
+ - :VK_SND_ID
27
+ - :VK_REPLY
28
+ - :VK_RETURN
29
+ - :VK_DATE
30
+ - :VK_TIME
31
+ "4002":
32
+ - :VK_SERVICE
33
+ - :VK_VERSION
34
+ - :VK_SND_ID
35
+ - :VK_REC_ID
36
+ - :VK_NONCE
37
+ - :VK_RETURN
38
+ response:
39
+ "1101":
40
+ - :VK_SERVICE
41
+ - :VK_VERSION
42
+ - :VK_SND_ID
43
+ - :VK_REC_ID
44
+ - :VK_STAMP
45
+ - :VK_T_NO
46
+ - :VK_AMOUNT
47
+ - :VK_CURR
48
+ - :VK_REC_ACC
49
+ - :VK_REC_NAME
50
+ - :VK_SND_ACC
51
+ - :VK_SND_NAME
52
+ - :VK_REF
53
+ - :VK_MSG
54
+ - :VK_T_DATE
55
+ "1901":
56
+ - :VK_SERVICE
57
+ - :VK_VERSION
58
+ - :VK_SND_ID
59
+ - :VK_REC_ID
60
+ - :VK_STAMP
61
+ - :VK_REF
62
+ - :VK_MSG
63
+ "1902":
64
+ - :VK_SERVICE
65
+ - :VK_VERSION
66
+ - :VK_SND_ID
67
+ - :VK_REC_ID
68
+ - :VK_STAMP
69
+ - :VK_REF
70
+ - :VK_MSG
71
+ - :VK_ERROR_CODE
72
+ "3001":
73
+ - :VK_SERVICE
74
+ - :VK_VERSION
75
+ - :VK_USER
76
+ - :VK_DATE
77
+ - :VK_TIME
78
+ - :VK_SND_ID
79
+ "3002":
80
+ - :VK_SERVICE
81
+ - :VK_VERSION
82
+ - :VK_USER
83
+ - :VK_DATE
84
+ - :VK_TIME
85
+ - :VK_SND_ID
86
+ - :VK_INFO
87
+ "3003":
88
+ - :VK_SERVICE
89
+ - :VK_VERSION
90
+ - :VK_SND_ID
91
+ - :VK_REC_ID
92
+ - :VK_NONCE
93
+ - :VK_INFO
94
+
92
95
  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
96
+ request:
97
+ "0002":
98
+ - :SOLOPMT_VERSION
99
+ - :SOLOPMT_STAMP
100
+ - :SOLOPMT_RCV_ID
101
+ - :SOLOPMT_AMOUNT
102
+ - :SOLOPMT_REF
103
+ - :SOLOPMT_DATE
104
+ - :SOLOPMT_CUR
105
+ "0003":
106
+ - :SOLOPMT_VERSION
107
+ - :SOLOPMT_STAMP
108
+ - :SOLOPMT_RCV_ID
109
+ - :SOLOPMT_AMOUNT
110
+ - :SOLOPMT_REF
111
+ - :SOLOPMT_DATE
112
+ - :SOLOPMT_CUR
113
+ "0004":
114
+ - :SOLOPMT_VERSION
115
+ - :SOLOPMT_STAMP
116
+ - :SOLOPMT_RCV_ID
117
+ - :SOLOPMT_AMOUNT
118
+ - :SOLOPMT_REF
119
+ - :SOLOPMT_TAX_CODE
120
+ - :SOLOPMT_DATE
121
+ - :SOLOPMT_CUR
122
+ response:
123
+ "0002":
124
+ - :SOLOPMT_RETURN_VERSION
125
+ - :SOLOPMT_RETURN_STAMP
126
+ - :SOLOPMT_RETURN_REF
127
+ - :SOLOPMT_RETURN_PAID
128
+ "0003":
129
+ - :SOLOPMT_RETURN_VERSION
130
+ - :SOLOPMT_RETURN_STAMP
131
+ - :SOLOPMT_RETURN_REF
132
+ - :SOLOPMT_RETURN_PAID
133
+ "0004":
134
+ - :SOLOPMT_RETURN_VERSION
135
+ - :SOLOPMT_RETURN_STAMP
136
+ - :SOLOPMT_RETURN_REF
137
+ - :SOLOPMT_RETURN_PAYER_NAME
138
+ - :SOLOPMT_RETURN_PAYER_ACCOUNT
139
+ - :SOLOPMT_RETURN_TAX_CODE
140
+ - :SOLOPMT_RETURN_MSG
141
+ - :SOLOPMT_RETURN_PAID
109
142
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bank_link
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jhaesus
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-18 00:00:00.000000000 Z
11
+ date: 2014-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie