datatrans 4.0.1 → 5.0.0

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: f0b065ed93895deb3f8b801fe1060246a21e597bf2b5d3373b502ea6ce6f1ead
4
- data.tar.gz: 94f5cd63b06ee0af246adf8dd30a16790fde64e68d22ca53cf005852cfaa4263
3
+ metadata.gz: eb01c19e9afe3aecaa82ff08e7e9024fefb8c60d3cab86fbd3400e4598879dcd
4
+ data.tar.gz: 13a9c7a7068610907a8123c11cf50f60014f79b5de6db2b51f763a5509159fb3
5
5
  SHA512:
6
- metadata.gz: 11c4e5483bbcc2d9833348934fc6b54c7af958a6c41d3cae7a183c4614df56c2e09bfd06b23746ade55e4482c5aa3493edd6d5a3c5eb8fa9fd0680f196f101d4
7
- data.tar.gz: c286baa29ea0d26186a864fdd6b5a133a36ebb8c780bfe4d1484db83f5c36aa715ce434b247e93baa80964e3e9612522308f81ede13f7954da6c2e953970c93d
6
+ metadata.gz: b8d2cc670be21be5336b8856eca9603ef8351be8ebc9e8e19efca2486a2304d7a8701fcabeea629285434dcd4b6c99cf8f53b8382870cbd0a7dbf38db7b6ded2
7
+ data.tar.gz: a13b4a7a1934bfa437209b9eb53b2c8bba45d3e0c7e24cb699e8544c7d2af67d6497a0a1c885e3d6af034030b3b0b077d5928a4e8e6577a2b606824c1752be22
data/CHANGELOG.md CHANGED
@@ -5,6 +5,14 @@ This project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## 5.0.0 - 2022-09-21
9
+
10
+ ### Changed
11
+
12
+ * [BREAKING CHANGE] Authenticate requests with HTTP Basic Auth (@crackofdusk [#41](https://github.com/simplificator/datatrans/pull/41))
13
+
14
+ Datatrans requires [HTTP Basic Auth for XML API calls](https://api-reference.datatrans.ch/xml/#authentication-tls) since 2022-09-14 ([announcement](https://mailchi.mp/datatrans/basic-authsign2_1-email_en))
15
+
8
16
  ## 4.0.1 - 2022-03-18
9
17
  ### Fixed
10
18
  * 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))
data/README.markdown CHANGED
@@ -11,6 +11,7 @@ Build your Datatrans Configuration like so:
11
11
  datatrans = Datatrans::Config.new(
12
12
  :merchant_id => '1234567',
13
13
  :sign_key => 'ab739fd5b7c2a1...',
14
+ :password => 'server to server request password',
14
15
  :environment => :production,
15
16
  :proxy => {
16
17
  :http_proxyaddr => "proxy.com",
@@ -11,10 +11,11 @@ module Datatrans
11
11
  }
12
12
  DOMAIN = 'datatrans.com'
13
13
 
14
- attr_reader :environment, :merchant_id, :sign_key, :proxy
14
+ attr_reader :environment, :merchant_id, :sign_key, :password, :proxy
15
15
 
16
16
  # Configure with following options
17
17
  # * :merchant_id (required)
18
+ # * :password (required)
18
19
  # * :sign_key (defaults to false)
19
20
  # * :environment (defaults to :development, available environments are defined in ENVIRONMENTS)
20
21
  # * :proxy (a hash containing :http_proxyaddr, :http_proxyport, :http_proxyuser, :http_proxypass)
@@ -22,6 +23,8 @@ module Datatrans
22
23
  @merchant_id = options[:merchant_id]
23
24
  raise ArgumentError.new(":merchant_id is required") unless self.merchant_id
24
25
  self.environment = options[:environment] || DEFAULT_ENVIRONMENT
26
+ @password = options[:password]
27
+ raise ArgumentError.new(":password is required") unless self.password
25
28
  @sign_key = options[:sign_key] || DEFAULT_SIGN_KEY
26
29
  @proxy = options[:proxy] || {}
27
30
  end
@@ -1,3 +1,3 @@
1
1
  module Datatrans
2
- VERSION = "4.0.1"
2
+ VERSION = "5.0.0"
3
3
  end
@@ -7,7 +7,9 @@ class Datatrans::XML::Transaction
7
7
  attr_accessor :params, :datatrans
8
8
 
9
9
  def post(url, options = {})
10
- options = options.merge(self.datatrans.proxy)
10
+ options = options
11
+ .merge(self.datatrans.proxy)
12
+ .merge(:basic_auth => { :username => self.datatrans.merchant_id, :password => self.datatrans.password })
11
13
  HTTParty.post(url, **options)
12
14
  end
13
15
 
@@ -39,4 +41,4 @@ class Datatrans::XML::Transaction
39
41
  xml.target!
40
42
  end
41
43
  end
42
- end
44
+ end
data/spec/config_spec.rb CHANGED
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe Datatrans::Config do
4
4
  describe "Instance Methods" do
5
5
  before do
6
- @datatrans = Datatrans::Config.new(:merchant_id => "xxx")
6
+ @datatrans = Datatrans::Config.new(:merchant_id => "xxx", :password => "yyy")
7
7
  end
8
8
 
9
9
  describe "web_transaction" do
data/spec/spec_helper.rb CHANGED
@@ -15,6 +15,7 @@ RSpec.configure do |config|
15
15
  @datatrans = Datatrans::Config.new(
16
16
  :merchant_id => '1100000000',
17
17
  :sign_key => 'd777c17ba2010282c2d2350a68b441ca07a799d294bfaa630b7c8442207c0b69703cc55775b0ca5a4e455b818a9bb10a43669c0c20ce31f4a43f10e0cabb9525',
18
+ :password => 'basic_auth_password',
18
19
  :environment => :development
19
20
  )
20
21
  end
@@ -7,6 +7,7 @@ describe Datatrans::XML::Transaction::Request do
7
7
  @datatrans = Datatrans::Config.new(
8
8
  :merchant_id => '1100000000',
9
9
  :sign_key => 'd777c17ba2010282c2d2350a68b441ca07a799d294bfaa630b7c8442207c0b69703cc55775b0ca5a4e455b818a9bb10a43669c0c20ce31f4a43f10e0cabb9525',
10
+ :password => 'basic_auth_password',
10
11
  :key => "value",
11
12
  :proxy => {
12
13
  :http_proxyaddr => "proxy.com",
@@ -21,6 +22,7 @@ describe Datatrans::XML::Transaction::Request do
21
22
  it "forward those options to HTTParty" do
22
23
  request = Datatrans::XML::Transaction::Request.new(@datatrans, {})
23
24
  expect(HTTParty).to receive(:post).with('lirum',
25
+ :basic_auth => {:password => 'basic_auth_password', :username => '1100000000'},
24
26
  :params => {:foo => :bar},
25
27
  :http_proxpass => 'xxx',
26
28
  :http_proxyuser => 'hans',
@@ -33,7 +35,7 @@ describe Datatrans::XML::Transaction::Request do
33
35
  describe "not configured" do
34
36
  it "should not add any proxy settings" do
35
37
  request = Datatrans::XML::Transaction::Request.new(@datatrans, {})
36
- expect(HTTParty).to receive(:post).with('lirum', :params => {:foo => :bar})
38
+ expect(HTTParty).to receive(:post).with('lirum', :basic_auth => {:password => 'basic_auth_password', :username => '1100000000'}, :params => {:foo => :bar})
37
39
  request.post('lirum', :params => {:foo => :bar})
38
40
  end
39
41
  end
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.1
4
+ version: 5.0.0
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-03-18 00:00:00.000000000 Z
14
+ date: 2022-09-21 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: httparty