epay_tools 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 +4 -4
- data/VERSION +1 -1
- data/lib/epay_tools/hash_generator.rb +2 -14
- data/lib/epay_tools/response_hash_generator.rb +25 -0
- data/spec/epay_tools/calculator_spec.rb +2 -2
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9dfa9cd9c51b7fbe096c1942a5a39ceb4666f768
|
4
|
+
data.tar.gz: 01d88f9861e2330d0ab71ab20fb6333185fe377f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5910bd58e73557819e5ec1e26454b97ba9be5175d88f7fda0a5c9b0f0363d40d19e65f860f5452f93cd90e6df0d61fee37fb5d679cf3df77a213cfcd0d504bac
|
7
|
+
data.tar.gz: 18802c985717d5defb607cee3b6d3667390080c2ccc858c1be3a6735841fbf8b6577be5084d4bb57e63f0dbaf4fd3c89d8a4b26cec53dd729d8a9448b3881a1d
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.4
|
@@ -15,19 +15,7 @@ class EpayTools::HashGenerator < ServicePattern::Service
|
|
15
15
|
private
|
16
16
|
|
17
17
|
def calculate_hash
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
def params_values
|
22
|
-
unless @_params_values
|
23
|
-
@_params_values = {}
|
24
|
-
KEYS_ORDER.each do |key|
|
25
|
-
@_params_values[key] = params.delete(key) if params.key?(key)
|
26
|
-
end
|
27
|
-
|
28
|
-
@_params_values.merge!(params)
|
29
|
-
end
|
30
|
-
|
31
|
-
@_params_values.values
|
18
|
+
require "digest/md5"
|
19
|
+
@_calculate_hash ||= Digest::MD5.hexdigest("#{params.values.join}#{epay_md5_key}")
|
32
20
|
end
|
33
21
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class EpayTools::ResponseHashGenerator < ServicePattern::Service
|
2
|
+
attr_reader :epay_md5_key, :params
|
3
|
+
|
4
|
+
KEYS_ORDER = %w[txnid orderid amount currency date time txnfee paymenttype cardno hash].freeze
|
5
|
+
|
6
|
+
def initialize(epay_md5_key:, params:)
|
7
|
+
@epay_md5_key = epay_md5_key
|
8
|
+
@params = params.reject { |key, _value| key.to_s == "hash" }
|
9
|
+
end
|
10
|
+
|
11
|
+
def execute!
|
12
|
+
ServicePattern::Response.new(result: EpayTools::HashGenerator.execute!(epay_md5_key: epay_md5_key, params: ordered_params).result)
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def ordered_params
|
18
|
+
result = {}
|
19
|
+
KEYS_ORDER.each do |key|
|
20
|
+
result[key] = params.delete(key) if params.key?(key)
|
21
|
+
end
|
22
|
+
|
23
|
+
result.merge(params)
|
24
|
+
end
|
25
|
+
end
|
@@ -15,7 +15,7 @@ describe EpayTools::Calculator do
|
|
15
15
|
"paymentcollection" => "1",
|
16
16
|
"lockpaymentcollection" => "1",
|
17
17
|
"subscription" => "0",
|
18
|
-
"hash" => "
|
18
|
+
"hash" => "edc52b2b2f619551146682061d3a9d0d"
|
19
19
|
}
|
20
20
|
end
|
21
21
|
let(:service) do
|
@@ -27,7 +27,7 @@ describe EpayTools::Calculator do
|
|
27
27
|
|
28
28
|
describe "#calculated_hash" do
|
29
29
|
it "calculates the right hash" do
|
30
|
-
expect(service.execute!.result.fetch(:epay_hash)).to eq "
|
30
|
+
expect(service.execute!.result.fetch(:epay_hash)).to eq "edc52b2b2f619551146682061d3a9d0d"
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epay_tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kaspernj
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: auto_autoloader
|
@@ -130,6 +130,7 @@ files:
|
|
130
130
|
- lib/epay_tools/calculator.rb
|
131
131
|
- lib/epay_tools/hash_generator.rb
|
132
132
|
- lib/epay_tools/ordered_parameters.rb
|
133
|
+
- lib/epay_tools/response_hash_generator.rb
|
133
134
|
- shippable.yml
|
134
135
|
- spec/epay_tools/calculator_spec.rb
|
135
136
|
- spec/spec_helper.rb
|
@@ -153,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
153
154
|
version: '0'
|
154
155
|
requirements: []
|
155
156
|
rubyforge_project:
|
156
|
-
rubygems_version: 2.6.
|
157
|
+
rubygems_version: 2.6.13
|
157
158
|
signing_key:
|
158
159
|
specification_version: 4
|
159
160
|
summary: Tools to implement the ePay payment gateway
|