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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: eece8069cc5fd1cf60d3fb09b4a3ffa96d2ffcfa
4
- data.tar.gz: 6e53bdf67e10e95c0581a4eb5c66f177a4908474
3
+ metadata.gz: 9dfa9cd9c51b7fbe096c1942a5a39ceb4666f768
4
+ data.tar.gz: 01d88f9861e2330d0ab71ab20fb6333185fe377f
5
5
  SHA512:
6
- metadata.gz: 2b8bf9a4a40ad00a8ad69673d35c169b2405b4a09b726e1de79438e382e48bcac3f6ec1ebd57aea24dd34603934cb576492811d9701f0c1f1a45ba366ee4c57d
7
- data.tar.gz: 37fba46a9992a3e0ea3fa02b32e0172a5ebbb38ebf4572f097f5ef23c9c3086d9b6c36456c0d4f44bf2d46a23f28827e8811399bef6e678f4f608b7142a1c882
6
+ metadata.gz: 5910bd58e73557819e5ec1e26454b97ba9be5175d88f7fda0a5c9b0f0363d40d19e65f860f5452f93cd90e6df0d61fee37fb5d679cf3df77a213cfcd0d504bac
7
+ data.tar.gz: 18802c985717d5defb607cee3b6d3667390080c2ccc858c1be3a6735841fbf8b6577be5084d4bb57e63f0dbaf4fd3c89d8a4b26cec53dd729d8a9448b3881a1d
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.4
@@ -15,19 +15,7 @@ class EpayTools::HashGenerator < ServicePattern::Service
15
15
  private
16
16
 
17
17
  def calculate_hash
18
- @_calculate_hash ||= Digest::MD5.hexdigest("#{params_values.join}#{epay_md5_key}")
19
- end
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" => "394b72dae2714e89222d30cf9a1d649b"
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 "394b72dae2714e89222d30cf9a1d649b"
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.3
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: 2017-12-02 00:00:00.000000000 Z
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.11
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