datatrans 4.0.0 → 4.0.1

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
  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