bank_link 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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