datatrans 4.0.0 → 4.0.1

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
  SHA256:
3
- metadata.gz: e0cd93431049ffc3deba79d3c594ae93aff9e6fd91dc158ad0a68ae1e766a83e
4
- data.tar.gz: c67ba41b81de8adfbe9962cb85c80e881a57b69490972dae577f93e269935659
3
+ metadata.gz: f0b065ed93895deb3f8b801fe1060246a21e597bf2b5d3373b502ea6ce6f1ead
4
+ data.tar.gz: 94f5cd63b06ee0af246adf8dd30a16790fde64e68d22ca53cf005852cfaa4263
5
5
  SHA512:
6
- metadata.gz: 2bf90e36d3ef096f0904cc03309931408d1e26c23761645de6e46ce1588c350850d4466127c7443408eddf2a3475b48a2fd4db69fa761779a2a15d0e5d37031c
7
- data.tar.gz: eb8aa923a6599f0cbf10b4ed1fc2fc76e3068fbbd589768635f4d89e55063072c2c691f8a91504c04fb4eec761d798b92ad4522000094b932d775c5c195be6aa
6
+ metadata.gz: 11c4e5483bbcc2d9833348934fc6b54c7af958a6c41d3cae7a183c4614df56c2e09bfd06b23746ade55e4482c5aa3493edd6d5a3c5eb8fa9fd0680f196f101d4
7
+ data.tar.gz: c286baa29ea0d26186a864fdd6b5a133a36ebb8c780bfe4d1484db83f5c36aa715ce434b247e93baa80964e3e9612522308f81ede13f7954da6c2e953970c93d
data/CHANGELOG.md CHANGED
@@ -5,6 +5,9 @@ This project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## 4.0.1 - 2022-03-18
9
+ ### Fixed
10
+ * Check for successful transaction depends on `status` and not on `response_message` that can be diferent for different payment methods (@schmijos [#8](https://github.com/simplificator/datatrans/pull/8) and @TatianaPan [#39](https://github.com/simplificator/datatrans/pull/39))
8
11
  ## 4.0.0 - 2022-02-25
9
12
  ### Changed
10
13
  * [BREAKING CHANGE] Bump minimum required Ruby version to 2.6 and Rails to 5.2 (@andyundso [#34](https://github.com/simplificator/datatrans/pull/34))
@@ -1,3 +1,3 @@
1
1
  module Datatrans
2
- VERSION = "4.0.0"
2
+ VERSION = "4.0.1"
3
3
  end
@@ -9,7 +9,7 @@ class Datatrans::Web::Transaction
9
9
 
10
10
  def successful?
11
11
  raise Datatrans::InvalidSignatureError unless valid_signature?
12
- response_code == '01' && response_message == 'Authorized' && !errors_occurred?
12
+ response_code == '01' && status == 'success' && !errors_occurred?
13
13
  end
14
14
 
15
15
  def valid_signature?
@@ -18,6 +18,10 @@ class Datatrans::Web::Transaction
18
18
  sign(self.datatrans.merchant_id, params[:amount], params[:currency], params[:uppTransactionId]) == params[:sign2]
19
19
  end
20
20
 
21
+ def status
22
+ params[:status] rescue nil
23
+ end
24
+
21
25
  def response_code
22
26
  params[:responseCode] rescue nil
23
27
  end
@@ -79,4 +83,4 @@ class Datatrans::Web::Transaction
79
83
 
80
84
  include Datatrans::Common
81
85
  end
82
- end
86
+ end
@@ -31,6 +31,12 @@ describe Datatrans::Web::Transaction do
31
31
  :acqAuthorizationCode => "173520"
32
32
  }
33
33
 
34
+ @successful_swisspost_response = @successful_response.merge({
35
+ :pmethod => "PFC",
36
+ :txtEp2TrxID => "7777777000000001",
37
+ :responseMessage => "YellowPay transaction Ok"
38
+ })
39
+
34
40
  @failed_response = {
35
41
  :status => "error",
36
42
  :returnCustomerCountry => "CHE",
@@ -78,7 +84,7 @@ describe Datatrans::Web::Transaction do
78
84
  end
79
85
 
80
86
  it 'should generate valid form field string' do
81
- if Gem.loaded_specs['activesupport'].version >= Gem::Version.create('7.0')
87
+ if Gem.loaded_specs['activesupport'].version >= Gem::Version.create('6.0')
82
88
  expected_output = '<input type="hidden" name="merchantId" id="merchantId" value="1100000000" autocomplete="off" /><input type="hidden" name="hiddenMode" id="hiddenMode" value="yes" autocomplete="off" /><input type="hidden" name="reqtype" id="reqtype" value="NOA" autocomplete="off" /><input type="hidden" name="amount" id="amount" value="1000" autocomplete="off" /><input type="hidden" name="currency" id="currency" value="CHF" autocomplete="off" /><input type="hidden" name="useAlias" id="useAlias" value="yes" autocomplete="off" /><input type="hidden" name="sign" id="sign" value="0402fb3fba8c6fcb40df9b7756e7e637" autocomplete="off" /><input type="hidden" name="refno" id="refno" value="ABCDEF" autocomplete="off" /><input type="hidden" name="uppCustomerDetails" id="uppCustomerDetails" autocomplete="off" /><input type="hidden" name="uppCustomerEmail" id="uppCustomerEmail" value="customer@email.com" autocomplete="off" />'
83
89
  else
84
90
  expected_output = '<input type="hidden" name="merchantId" id="merchantId" value="1100000000" /><input type="hidden" name="hiddenMode" id="hiddenMode" value="yes" /><input type="hidden" name="reqtype" id="reqtype" value="NOA" /><input type="hidden" name="amount" id="amount" value="1000" /><input type="hidden" name="currency" id="currency" value="CHF" /><input type="hidden" name="useAlias" id="useAlias" value="yes" /><input type="hidden" name="sign" id="sign" value="0402fb3fba8c6fcb40df9b7756e7e637" /><input type="hidden" name="refno" id="refno" value="ABCDEF" /><input type="hidden" name="uppCustomerDetails" id="uppCustomerDetails" /><input type="hidden" name="uppCustomerEmail" id="uppCustomerEmail" value="customer@email.com" />'
@@ -101,6 +107,19 @@ describe Datatrans::Web::Transaction do
101
107
  end
102
108
  end
103
109
 
110
+ context "successful response (swiss post)" do
111
+ before do
112
+ allow_any_instance_of(Datatrans::Web::Transaction::AuthorizeResponse).to receive(:params).and_return(@successful_swisspost_response)
113
+ end
114
+
115
+ context "process" do
116
+ it "handles a valid datatrans authorize response" do
117
+ @transaction = Datatrans::Web::Transaction.new(@datatrans, @valid_params)
118
+ expect(@transaction.authorize).to be true
119
+ end
120
+ end
121
+ end
122
+
104
123
  context "compromised response" do
105
124
  before do
106
125
  fake_response = @successful_response
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datatrans
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Miesel
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2022-02-24 00:00:00.000000000 Z
14
+ date: 2022-03-18 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: httparty