spreedly 2.0.23 → 2.0.24

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: e1d30091e8d85d242e31d7acd1779b3188786c659bb40b134a284f398a2bf1af
4
- data.tar.gz: 9720c910cf18ce6ed848e489adf2077ef5f1a54373b8a41b9e8fb30231e58c63
3
+ metadata.gz: 43cf51954eea13a2f1305e712c4ea4c4870f4de8b1066160b8023ca45b8e2aa0
4
+ data.tar.gz: 0dd8522435f12b094dbdb8f07dfb45143ac265aaac416457f95242a038e1e5b6
5
5
  SHA512:
6
- metadata.gz: f0987d464f46000c6f8d3d303b2b264105f210450c175131e2b6d185c61b30a8e75c9984dde8e3ea506cbbe864bbab609b563b860ddfb1f6703f4df1e8e3bb0c
7
- data.tar.gz: 2f568229b8423b52456e7e58b96010a0f99fef4eed65858d98088c24591459d718f419c42b635561d2b6eb1b9b51cbd9ae890671a9bee55d485db4eb0f1980a9
6
+ metadata.gz: 1d36b133483e50f955c4e392a2f43a6ae6efa0edae54f2b7f1266b7a4587b47fc4a8e1725b6de49e90b4e2cc3a390e78b4c10e919eb8b2d675df73c3b8232c2a
7
+ data.tar.gz: 77f2b68c2f8b94250836a3a8a2dadaf47e2950717c5a0ef192d39150ba0844b5b874799773c3f4eb46c1b53209374cb62e6264093eb752f19374120381501067
@@ -2,6 +2,10 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [2.0.24]
6
+ ### Added
7
+ - @jeremywrowe - Add 3D Secure 2 complete transaction
8
+
5
9
  ## [2.0.23] - 2019-08-16
6
10
  ### Added
7
11
  - @bayprogrammer - Add 3D Secure 2 third-party auth abilities to gateway class
data/README.md CHANGED
@@ -181,6 +181,12 @@ env.purchase_on_gateway(gateway_token, payment_method_token, amount,
181
181
  )
182
182
  ```
183
183
 
184
+ #### Complete a transaction (3DS 2)
185
+
186
+ ```ruby
187
+ env.complete_transaction(transaction_token)
188
+ ```
189
+
184
190
  #### Retain on success
185
191
  Retain a payment method automatically if the purchase, verify, or authorize transaction succeeded. Saves you a separate call to retain:
186
192
 
@@ -322,7 +328,6 @@ You can get the full list of supported receivers like so:
322
328
  env.receiver_options
323
329
  ```
324
330
 
325
-
326
331
  ## Error Handling
327
332
 
328
333
  When you make a call to the API, there are times when things don't go as expected. For the most part, when a call is made, a Transaction is created behind the scenes at Spreedly. In general,
@@ -49,6 +49,10 @@ module Spreedly
49
49
  api_post(authorize_url(gateway_token), body)
50
50
  end
51
51
 
52
+ def complete_transaction(transaction_token)
53
+ api_post(complete_transaction_url(transaction_token), '')
54
+ end
55
+
52
56
  def verify_on_gateway(gateway_token, payment_method_token, options = {})
53
57
  body = verify_body(payment_method_token, options)
54
58
  api_post(verify_url(gateway_token), body)
@@ -12,6 +12,10 @@ module Spreedly
12
12
  "#{base_url}/v1/transactions/#{transaction_token}/transcript"
13
13
  end
14
14
 
15
+ def complete_transaction_url(token)
16
+ "#{base_url}/v1/transactions/#{token}/complete.xml"
17
+ end
18
+
15
19
  def find_gateway_url(token)
16
20
  "#{base_url}/v1/gateways/#{token}.xml"
17
21
  end
@@ -1,3 +1,3 @@
1
1
  module Spreedly
2
- VERSION = "2.0.23"
2
+ VERSION = "2.0.24"
3
3
  end
@@ -1,16 +1,19 @@
1
1
 
2
2
  module Spreedly
3
-
4
3
  module CreationHelper
5
-
6
4
  def create_card_on(environment, options = {})
7
- deets = default_card_deets.merge(options)
8
- environment.add_credit_card(deets).payment_method
5
+ options = default_card_options.merge(options)
6
+ environment.add_credit_card(options).payment_method
9
7
  end
10
8
 
11
9
  def create_failed_card_on(environment, options = {})
12
- deets = default_card_deets.merge(number: '4012888888881881').merge(options)
13
- environment.add_credit_card(deets).payment_method
10
+ options = default_card_options.merge(number: '4012888888881881').merge(options)
11
+ environment.add_credit_card(options).payment_method
12
+ end
13
+
14
+ def create_threeds_2_card_on(environment, options = {})
15
+ options = default_card_options.merge(number: '4556761029983886').merge(options)
16
+ environment.add_credit_card(options).payment_method
14
17
  end
15
18
 
16
19
  def create_sprel_on(environment)
@@ -21,7 +24,7 @@ module Spreedly
21
24
 
22
25
  private
23
26
 
24
- def default_card_deets
27
+ def default_card_options
25
28
  {
26
29
  email: 'perrin@wot.com', number: '5555555555554444', month: 1, year: 2023,
27
30
  last_name: 'Aybara', first_name: 'Perrin', retained: true
@@ -0,0 +1,27 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteCompleteTransactionTest < Test::Unit::TestCase
4
+ def setup
5
+ @environment = Spreedly::Environment.new(remote_test_environment_key, remote_test_access_secret)
6
+ end
7
+
8
+ def test_successful_complete_a_3ds_transaction
9
+ gateway_token = @environment.add_gateway(:test).token
10
+ card_token = create_threeds_2_card_on(@environment).token
11
+ base64_encoded_browser_info = "eyJ3aWR0aCI6MTY4MCwiaGVpZ2h0IjoxMDUwLCJkZXB0aCI6MjQsInRpbWV6b25lIjoyNDAsInVzZXJfYWdlbnQiOiJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNF80KSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTIuMSBTYWZhcmkvNjA1LjEuMTUiLCJqYXZhIjp0cnVlLCJsYW5ndWFnZSI6ImVuLVVTIn0="
12
+ purchase = @environment.purchase_on_gateway(
13
+ gateway_token,
14
+ card_token,
15
+ 3003,
16
+ browser_info: base64_encoded_browser_info,
17
+ three_ds_version: '2.0',
18
+ redirect_url: 'https://example.com/redirect',
19
+ callback_url: 'https://example.com/callback',
20
+ attempt_3dsecure: true
21
+ )
22
+ assert_equal 'pending', purchase.state
23
+
24
+ complete_transaction = @environment.complete_transaction(purchase.token)
25
+ assert_equal 'succeeded', complete_transaction.state
26
+ end
27
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spreedly
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.23
4
+ version: 2.0.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - Spreedly
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-16 00:00:00.000000000 Z
11
+ date: 2019-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -191,6 +191,7 @@ files:
191
191
  - test/remote/remote_add_receiver_test.rb
192
192
  - test/remote/remote_authorize_test.rb
193
193
  - test/remote/remote_capture_test.rb
194
+ - test/remote/remote_complete_test.rb
194
195
  - test/remote/remote_deliver_payment_method_test.rb
195
196
  - test/remote/remote_find_gateway_test.rb
196
197
  - test/remote/remote_find_payment_method_test.rb
@@ -301,6 +302,7 @@ test_files:
301
302
  - test/remote/remote_add_receiver_test.rb
302
303
  - test/remote/remote_authorize_test.rb
303
304
  - test/remote/remote_capture_test.rb
305
+ - test/remote/remote_complete_test.rb
304
306
  - test/remote/remote_deliver_payment_method_test.rb
305
307
  - test/remote/remote_find_gateway_test.rb
306
308
  - test/remote/remote_find_payment_method_test.rb