six_saferpay 2.1.1 → 2.2.0

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: fcb1cf7266884ce5d697cf903e3348bce7092647571b9a9920623b623bb8e6fb
4
- data.tar.gz: 45c7e73b54b42a78deb843373e68ae988fb175b5caaa21c6f703ce1018ec1f7f
3
+ metadata.gz: 0e778cad093369c363bebe5c4c0ce5242ac291ca5008bb5c59f965c3c65a4acc
4
+ data.tar.gz: f34b4aad57145c97b5a401363d3121f0124a201713c58ca948a35adbb118bc5e
5
5
  SHA512:
6
- metadata.gz: 4cfdfaacdcec37617caade03211d80bc3d6b5930d351826086b279384f0afefb0eff5545b2d2d2aff85304bf1d7308f45ca2b4d66b59a89d1c30d66be702e97b
7
- data.tar.gz: 1cdb579751bdd406904d70aaf9a59b79eeddfae75afcb8abf102a6b7a62e51dc5683efc3ba89121c8486f59d39e8442d51a172593648a95fac906aa308360aa5
6
+ metadata.gz: 0f0ec0b7c13ec5ec55a832a55875fc77bec867f93697ae5de60c59711ce5f47280a2333e4971d29dedc2a2c72e158addbaf719096a540da26a8ca63bc5e64bc0
7
+ data.tar.gz: 852315203df9b3db10f95feb85aa6ee755f35a025c7c5bfbea1c2d5d904e4ef0b0290ca49fd10be5a2755a0fcda5bf8a5f0c5d4417540882645ea92b268d514a
data/.test.env CHANGED
@@ -1,5 +1,5 @@
1
1
  SIX_SAFERPAY_CUSTOMER_ID='245294'
2
- SIX_SAFERPAY_TERMINAL_ID='17925560'
2
+ SIX_SAFERPAY_TERMINAL_ID='17925578'
3
3
  SIX_SAFERPAY_USERNAME='API_245294_08700063'
4
4
  SIX_SAFERPAY_PASSWORD='mei4Xoozle4doi0A'
5
5
  SIX_SAFERPAY_FAIL_URL='http://localhost:3004'
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- six_saferpay (2.1.0)
4
+ six_saferpay (2.1.1)
5
5
  activesupport (~> 5.0, >= 5.0.0.0)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -4,6 +4,10 @@
4
4
 
5
5
  # SixSaferpay
6
6
 
7
+ ## Current API Version
8
+
9
+ This gem is compatible with the SIX API version: `1.14`
10
+
7
11
  ## Installation
8
12
 
9
13
  Add this line to your application's Gemfile:
@@ -79,6 +83,15 @@ You will find for all the other requests an predefined object. Feel free to use
79
83
 
80
84
  TODO
81
85
 
86
+ #### SIX Secure PayGate API
87
+
88
+ If you want to use the SIX Secure PayGate API, you have to use an other Client:
89
+
90
+ ```ruby
91
+ create_offer_request = SixSaferpay::SecurePayGateOffer.new(...)
92
+ create_offer_response = SixSaferpay::SecurePayGateApi::Client.new(create_offer_request)
93
+ ```
94
+
82
95
  ## Documentation
83
96
 
84
97
  [SIX Saferpay JSON API](https://saferpay.github.io/jsonapi)
@@ -136,6 +149,10 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERN
136
149
  - [x] InsertAlias
137
150
  - [x] AcquireTransaction
138
151
 
152
+ #### Secure PayGate API
153
+
154
+ - [x] CreateOffer
155
+
139
156
  ## License
140
157
 
141
158
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -1,5 +1,5 @@
1
1
  module SixSaferpay
2
2
  module API
3
- VERSION = '1.13'
3
+ VERSION = '1.14'
4
4
  end
5
5
  end
@@ -0,0 +1,61 @@
1
+ module SixSaferpay
2
+ module SixSecurePayGateOffer
3
+ class CreateOffer
4
+
5
+ attr_accessor(:payment,
6
+ :expiration_date,
7
+ :config_set,
8
+ :payer,
9
+ :billing_address_form
10
+ )
11
+
12
+ def initialize(payment: ,
13
+ expiration_date: ,
14
+ config_set: nil,
15
+ payer: ,
16
+ billing_address_form: nil
17
+ )
18
+
19
+ @payment = SixSaferpay::Payment.new(payment.to_h) if payment
20
+ @expiration_date = expiration_date
21
+ @config_set = config_set
22
+ @payer = SixSaferpay::Payer.new(payer.to_h) if payer
23
+ @billing_address_form =
24
+ SixSaferpay::BillingAddressForm.new(billing_address_form) if billing_address_form
25
+ end
26
+
27
+ def to_hash
28
+ hash = Hash.new
29
+ hash.merge!(payment: @payment.to_h) if @payment
30
+ hash.merge!(expiration_date: @expiration_date) if @expiration_date
31
+ hash.merge!(config_set: @config_set) if @config_set
32
+ hash.merge!(payer: @payer.to_h) if @payer
33
+ hash.merge!(billing_address_form: @billing_address_form.to_h) if @billing_address_form
34
+ hash
35
+ end
36
+ alias_method :to_h, :to_hash
37
+
38
+ def to_json
39
+ to_hash.to_json
40
+ end
41
+
42
+ def url
43
+ "/rest/customers/#{customer_id}/terminals/#{terminal_id}/spg-offers"
44
+ end
45
+
46
+ def response_class
47
+ SixSaferpay::SixSecurePayGateOffer::CreateOfferResponse
48
+ end
49
+
50
+ private
51
+
52
+ def customer_id
53
+ SixSaferpay.config.customer_id
54
+ end
55
+
56
+ def terminal_id
57
+ SixSaferpay.config.terminal_id
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,26 @@
1
+ module SixSaferpay
2
+ module SixSecurePayGateOffer
3
+ class CreateOfferResponse
4
+
5
+ attr_accessor(:offer_id,
6
+ :payment_link
7
+ )
8
+
9
+ def initialize(offer_id:,
10
+ payment_link: )
11
+
12
+ @offer_id = offer_id if offer_id
13
+ @payment_link = payment_link if payment_link
14
+ end
15
+
16
+ def to_hash
17
+ hash = Hash.new
18
+ hash.merge!(offer_id: @offer_id) if @offer_id
19
+ hash.merge!(payment_link: @payment_link) if @payment_link
20
+ hash
21
+ end
22
+ alias_method :to_h, :to_hash
23
+
24
+ end
25
+ end
26
+ end
@@ -17,17 +17,23 @@ module SixSaferpay
17
17
  hash = @response.body
18
18
  hash = JSON.parse(hash, symbolize_names: true)
19
19
  hash = transform_response_hash(hash)
20
- if @response.code == "200"
20
+ if @response.code == '200'
21
21
  @object.response_class.new(hash)
22
22
  else
23
23
  raise SixSaferpay::Error.new(hash)
24
24
  end
25
25
  end
26
26
 
27
+ protected
28
+
29
+ def header
30
+ {"Content-Type" => 'application/json'}
31
+ end
32
+
27
33
  private
28
34
 
29
35
  def request
30
- request = Net::HTTP::Post.new(uri.path, {'Content-Type' => 'application/json'})
36
+ request = Net::HTTP::Post.new(uri.path, header)
31
37
  hash = @object.to_h
32
38
  hash = transform_request_hash(hash)
33
39
  hash = hash.to_json
@@ -0,0 +1,23 @@
1
+ module SixSaferpay
2
+ module SecurePayGateApi
3
+ class Client < SixSaferpay::Client
4
+
5
+ protected
6
+
7
+ def header
8
+ super.merge!(
9
+ {
10
+ 'Saferpay-ApiVersion' => SixSaferpay::API::VERSION,
11
+ 'Saferpay-RequestId' => request_id()
12
+ }
13
+ )
14
+ end
15
+
16
+ private
17
+
18
+ def request_id
19
+ @request_id ||= SecureRandom.uuid
20
+ end
21
+ end
22
+ end
23
+ end
@@ -3,16 +3,19 @@ module SixSaferpay
3
3
 
4
4
  attr_accessor(:card,
5
5
  :bank_account,
6
- :fd_alias
6
+ :fd_alias,
7
+ :saferpay_fields
7
8
  )
8
9
 
9
10
  def initialize(card: nil,
10
11
  bank_account: nil,
11
- fd_alias: nil
12
+ fd_alias: nil,
13
+ saferpay_fields: nil
12
14
  )
13
15
  @card = SixSaferpay::RequestCard.new(card.to_h) if card
14
16
  @bank_account = SixSaferpay::BankAccount.new(bank_account.to_h) if bank_account
15
17
  @fd_alias = SixSaferpay::PaymentMeansAlias.new(fd_alias.to_h) if fd_alias
18
+ @saferpay_fields = SixSaferpay::SaferpayFields.new(saferpay_fields.to_h) if saferpay_fields
16
19
  end
17
20
 
18
21
  def to_hash
@@ -20,6 +23,7 @@ module SixSaferpay
20
23
  hash.merge!(card: @card.to_h) if @card
21
24
  hash.merge!(bank_account: @bank_account.to_h) if @bank_account
22
25
  hash.merge!(fd_alias: @fd_alias.to_h) if @fd_alias
26
+ hash.merge!(saferpay_fields: @saferpay_fields.to_h) if @saferpay_fields
23
27
  hash
24
28
  end
25
29
  alias_method :to_h, :to_hash
@@ -0,0 +1,18 @@
1
+ module SixSaferpay
2
+ class SaferpayFields
3
+
4
+ attr_accessor :token
5
+
6
+ def initialize(token: )
7
+ @token = token
8
+ end
9
+
10
+ def to_hash
11
+ hash = Hash.new
12
+ hash.merge!(token: @token) if @token
13
+ hash
14
+ end
15
+ alias_method :to_h, :to_hash
16
+
17
+ end
18
+ end
@@ -1,3 +1,3 @@
1
1
  module SixSaferpay
2
- VERSION = "2.1.1"
2
+ VERSION = "2.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: six_saferpay
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fadendaten GmbH
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2019-11-14 00:00:00.000000000 Z
12
+ date: 2019-11-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -232,6 +232,8 @@ files:
232
232
  - lib/six_saferpay/api/six_secure_card_data/responses/insert_direct_response.rb
233
233
  - lib/six_saferpay/api/six_secure_card_data/responses/insert_response.rb
234
234
  - lib/six_saferpay/api/six_secure_card_data/responses/update_response.rb
235
+ - lib/six_saferpay/api/six_secure_pay_gate_offer/requests/create_offer.rb
236
+ - lib/six_saferpay/api/six_secure_pay_gate_offer/responses/create_offer_response.rb
235
237
  - lib/six_saferpay/api/six_transaction/requests/adjust_amount.rb
236
238
  - lib/six_saferpay/api/six_transaction/requests/alternative_payment.rb
237
239
  - lib/six_saferpay/api/six_transaction/requests/assert_capture.rb
@@ -267,6 +269,7 @@ files:
267
269
  - lib/six_saferpay/api/six_transaction/responses/refund_direct_response.rb
268
270
  - lib/six_saferpay/api/six_transaction/responses/refund_response.rb
269
271
  - lib/six_saferpay/client.rb
272
+ - lib/six_saferpay/clients/secure_pay_gate_api/client.rb
270
273
  - lib/six_saferpay/errors/error.rb
271
274
  - lib/six_saferpay/models/address.rb
272
275
  - lib/six_saferpay/models/address_form.rb
@@ -323,6 +326,7 @@ files:
323
326
  - lib/six_saferpay/models/response_header.rb
324
327
  - lib/six_saferpay/models/response_payment_means.rb
325
328
  - lib/six_saferpay/models/return_urls.rb
329
+ - lib/six_saferpay/models/saferpay_fields.rb
326
330
  - lib/six_saferpay/models/six_transaction.rb
327
331
  - lib/six_saferpay/models/styling.rb
328
332
  - lib/six_saferpay/models/three_ds.rb