afterpay 0.1.0 → 0.5.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 +4 -4
- data/.rubocop.yml +3 -0
- data/README.md +1 -1
- data/afterpay.gemspec +3 -3
- data/lib/afterpay/api/base.rb +2 -0
- data/lib/afterpay/api/order/find.rb +28 -0
- data/lib/afterpay/api/payment/reversal.rb +28 -0
- data/lib/afterpay/components/item.rb +5 -0
- data/lib/afterpay/components/merchant.rb +6 -0
- data/lib/afterpay/components/order.rb +5 -0
- data/lib/afterpay/components/payment.rb +22 -0
- data/lib/afterpay/error_handler.rb +8 -2
- data/lib/afterpay/errors.rb +12 -1
- data/lib/afterpay/http_service/request.rb +4 -2
- data/lib/afterpay/http_service/response.rb +1 -1
- data/lib/afterpay/http_service.rb +1 -2
- data/lib/afterpay/version.rb +1 -1
- data/lib/afterpay.rb +3 -1
- metadata +10 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1cd800dd1ba77222d13cda03c99774be278c356ce2897824b4a697402681730a
|
4
|
+
data.tar.gz: d0694bb5b3292455cec172ca51c9106c2e6c9e5d1c6f15f587e86b8f8ea81eda
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 461b9bcb102ca910a48fac2064b29f359952fa4a083b8b72259664f60e3c7300df55e1f4f9f5eb777f466df79de1e8c98e384d09dc7ebefdcfad31c464213cda
|
7
|
+
data.tar.gz: 9589bdd16eb98b818754e91db5cbaa44800815b198cd5993ffcfa4305e1e6cd011e4d23b99f7df4d252f6775f660af053bd340ad4c58d3fbbc478f639b144d53
|
data/.rubocop.yml
CHANGED
data/README.md
CHANGED
@@ -30,7 +30,7 @@ Merchant ID and Secret Key are required to work with Afterpay API
|
|
30
30
|
Afterpay.configure do |c|
|
31
31
|
c.merchant_id = 'your_merchant_id'
|
32
32
|
c.secret_key = 'your_secret_key'
|
33
|
-
c.server = 'us_or_au_server' # Default is 'https://api.
|
33
|
+
c.server = 'us_or_au_server' # Default is 'https://global-api.afterpay.com/'
|
34
34
|
c.user_agent = 'MyAfterpayModule/1.0.0 (E-Commerce Platform Name/1.0.0; PHP/7.0.0; Merchant/600032000) https://merchant.example.com' # Default is nil
|
35
35
|
end
|
36
36
|
```
|
data/afterpay.gemspec
CHANGED
@@ -23,9 +23,9 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
24
|
spec.require_paths = %w[lib]
|
25
25
|
|
26
|
-
spec.add_runtime_dependency 'faraday', '~>
|
27
|
-
spec.add_runtime_dependency 'faraday_middleware', '~>
|
28
|
-
spec.add_runtime_dependency 'hashie', '~>
|
26
|
+
spec.add_runtime_dependency 'faraday', '~> 1.0'
|
27
|
+
spec.add_runtime_dependency 'faraday_middleware', '~> 1.0'
|
28
|
+
spec.add_runtime_dependency 'hashie', '~> 4.0'
|
29
29
|
|
30
30
|
spec.add_development_dependency 'bundler', '~> 2.2.22'
|
31
31
|
spec.add_development_dependency 'codecov', '~> 0.5.2'
|
data/lib/afterpay/api/base.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Afterpay
|
4
|
+
module API
|
5
|
+
module Order
|
6
|
+
class Find < Base
|
7
|
+
def initialize(params = {})
|
8
|
+
@token = params[:token]
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
attr_reader :token
|
14
|
+
|
15
|
+
def payload
|
16
|
+
{
|
17
|
+
action: :get,
|
18
|
+
endpoint: endpoint
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
def endpoint
|
23
|
+
"#{URL}/#{token}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Afterpay
|
4
|
+
module API
|
5
|
+
module Payment
|
6
|
+
class Reversal < Base
|
7
|
+
def initialize(params = {})
|
8
|
+
@token = params[:token]
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
attr_reader :token
|
14
|
+
|
15
|
+
def payload
|
16
|
+
{
|
17
|
+
action: :post,
|
18
|
+
endpoint: endpoint
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
def endpoint
|
23
|
+
"#{URL}/token:#{token}/reversal"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -43,6 +43,11 @@ module Afterpay
|
|
43
43
|
# @return [String]
|
44
44
|
# The estimated date when the order will be shipped, in YYYY-MM or YYYY-MM-DD format
|
45
45
|
attr_accessor :estimated_shipment_date
|
46
|
+
|
47
|
+
# @attribute preorder
|
48
|
+
# @return boolean
|
49
|
+
# Should return false when the estimated_shipment_date is already passed otherwise true
|
50
|
+
attr_accessor :preorder
|
46
51
|
end
|
47
52
|
end
|
48
53
|
end
|
@@ -12,6 +12,12 @@ module Afterpay
|
|
12
12
|
# @return [String]
|
13
13
|
# The user to redirected to this URL if the payment process is cancelled.
|
14
14
|
attr_accessor :redirect_cancel_url
|
15
|
+
|
16
|
+
# @attribute popup_origin_url
|
17
|
+
# @return [String]
|
18
|
+
# URL to receive Javascript callbacks from Afterpay (e.g. onComplete, onShippingAddressChange, etc).
|
19
|
+
# Include the scheme, hostname and port. Port is optional.
|
20
|
+
attr_accessor :popup_origin_url
|
15
21
|
end
|
16
22
|
end
|
17
23
|
end
|
@@ -62,6 +62,11 @@ module Afterpay
|
|
62
62
|
# @return [Afterpay::Components::Money]
|
63
63
|
# The shipping amount.
|
64
64
|
attr_accessor :shipping_amount
|
65
|
+
|
66
|
+
# @attribute mode
|
67
|
+
# @return [String]
|
68
|
+
# Set to `express` for an express-flow checkout.
|
69
|
+
attr_accessor :mode
|
65
70
|
end
|
66
71
|
end
|
67
72
|
end
|
@@ -17,6 +17,28 @@ module Afterpay
|
|
17
17
|
# @return [Afterpay::Components::Money]
|
18
18
|
# The refund amount.
|
19
19
|
attr_accessor :amount
|
20
|
+
|
21
|
+
# @attribute is_checkout_adjusted
|
22
|
+
# @return [Boolean]
|
23
|
+
# Whether there have been changes to the order since the initial order creation.
|
24
|
+
attr_accessor :is_checkout_adjusted
|
25
|
+
|
26
|
+
# @attribute payment_schedule_checksum
|
27
|
+
# @return [String]
|
28
|
+
# A unique value representing the payment schedule that must be provided
|
29
|
+
# when there has been changes since the initial order creation.
|
30
|
+
attr_accessor :payment_schedule_checksum
|
31
|
+
|
32
|
+
# @attribute items
|
33
|
+
# @return [Array<Afterpay::Components::Item>]
|
34
|
+
# An array of order items that have been updated to be provided
|
35
|
+
# if it has changed since the initial order creation.
|
36
|
+
attr_accessor :items
|
37
|
+
|
38
|
+
# @attribute shipping
|
39
|
+
# @return [Afterpay::Components::Contact]
|
40
|
+
# The shipping address for this order to be provided if it has changed since the initial order creation.
|
41
|
+
attr_accessor :shipping
|
20
42
|
end
|
21
43
|
end
|
22
44
|
end
|
@@ -11,13 +11,17 @@ module Afterpay
|
|
11
11
|
def inspect(response)
|
12
12
|
return response if response.ok?
|
13
13
|
|
14
|
-
raise ERRORS[response.status], response_message(response)
|
14
|
+
raise ERRORS[response.status].new(response_error_code(response)), response_message(response)
|
15
15
|
end
|
16
16
|
|
17
17
|
def response_message(response)
|
18
18
|
response.body.is_a?(String) ? JSON.parse(response.body)['message'] : response.message
|
19
19
|
end
|
20
20
|
|
21
|
+
def response_error_code(response)
|
22
|
+
response.body.is_a?(String) ? JSON.parse(response.body)['errorCode'] : response.body.errorCode
|
23
|
+
end
|
24
|
+
|
21
25
|
ERRORS = {
|
22
26
|
400 => BadRequestError,
|
23
27
|
401 => UnathorizedError,
|
@@ -25,13 +29,15 @@ module Afterpay
|
|
25
29
|
404 => NotFoundError,
|
26
30
|
405 => MethodNotAllowedError,
|
27
31
|
406 => NotAcceptableError,
|
32
|
+
408 => RequestTimeoutError,
|
28
33
|
409 => ConflictError,
|
29
34
|
410 => GoneError,
|
30
35
|
412 => PreconditionFailedError,
|
31
36
|
422 => UnprocessableEntityError,
|
32
37
|
429 => TooManyRequestsError,
|
33
38
|
500 => InternalServerError,
|
34
|
-
503 => ServiceUnavailableError
|
39
|
+
503 => ServiceUnavailableError,
|
40
|
+
504 => GatewayTimeoutError
|
35
41
|
}.freeze
|
36
42
|
end
|
37
43
|
end
|
data/lib/afterpay/errors.rb
CHANGED
@@ -1,7 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Afterpay
|
4
|
-
class BaseError
|
4
|
+
class BaseError < StandardError
|
5
|
+
attr_accessor :error_code
|
6
|
+
|
7
|
+
def initialize(error_code)
|
8
|
+
super
|
9
|
+
@error_code = error_code
|
10
|
+
end
|
11
|
+
end
|
5
12
|
|
6
13
|
class BadRequestError < BaseError; end
|
7
14
|
|
@@ -15,6 +22,8 @@ module Afterpay
|
|
15
22
|
|
16
23
|
class NotAcceptableError < BaseError; end
|
17
24
|
|
25
|
+
class RequestTimeoutError < BaseError; end
|
26
|
+
|
18
27
|
class ConflictError < BaseError; end
|
19
28
|
|
20
29
|
class GoneError < BaseError; end
|
@@ -28,4 +37,6 @@ module Afterpay
|
|
28
37
|
class InternalServerError < BaseError; end
|
29
38
|
|
30
39
|
class ServiceUnavailableError < BaseError; end
|
40
|
+
|
41
|
+
class GatewayTimeoutError < BaseError; end
|
31
42
|
end
|
@@ -37,9 +37,11 @@ module Afterpay
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def faraday_options
|
40
|
-
|
40
|
+
{ "headers" => headers }
|
41
|
+
end
|
41
42
|
|
42
|
-
|
43
|
+
def headers
|
44
|
+
{ 'Content-Type' => 'application/json', 'User-Agent' => ::Afterpay.user_agent }.compact
|
43
45
|
end
|
44
46
|
end
|
45
47
|
end
|
@@ -18,8 +18,7 @@ module Afterpay
|
|
18
18
|
# Afterpay default middleware stack
|
19
19
|
DEFAULT_MIDDLEWARE = proc do |builder|
|
20
20
|
builder.request :json
|
21
|
-
|
22
|
-
builder.basic_auth(*::Afterpay.configuration.values)
|
21
|
+
builder.request :basic_auth, *::Afterpay.configuration.values
|
23
22
|
|
24
23
|
builder.response :mashify
|
25
24
|
builder.response :json, content_type: /\bjson$/
|
data/lib/afterpay/version.rb
CHANGED
data/lib/afterpay.rb
CHANGED
@@ -5,6 +5,7 @@ require 'afterpay/api/configuration'
|
|
5
5
|
require 'afterpay/api/configuration/retrieve'
|
6
6
|
require 'afterpay/api/order'
|
7
7
|
require 'afterpay/api/order/create'
|
8
|
+
require 'afterpay/api/order/find'
|
8
9
|
require 'afterpay/api/payment'
|
9
10
|
require 'afterpay/api/payment/capture'
|
10
11
|
require 'afterpay/api/payment/refund'
|
@@ -12,6 +13,7 @@ require 'afterpay/api/payment/auth'
|
|
12
13
|
require 'afterpay/api/payment/void'
|
13
14
|
require 'afterpay/api/payment/deferred_capture'
|
14
15
|
require 'afterpay/api/payment/find'
|
16
|
+
require 'afterpay/api/payment/reversal'
|
15
17
|
require 'afterpay/components/base'
|
16
18
|
require 'afterpay/components/consumer'
|
17
19
|
require 'afterpay/components/contact'
|
@@ -62,5 +64,5 @@ module Afterpay
|
|
62
64
|
end
|
63
65
|
end
|
64
66
|
|
65
|
-
DEFAULT_SERVER = 'https://api.
|
67
|
+
DEFAULT_SERVER = 'https://global-api.afterpay.com/'
|
66
68
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: afterpay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergey Vygovsky
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: exe
|
13
13
|
cert_chain: []
|
14
|
-
date: 2021-
|
14
|
+
date: 2021-11-02 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: faraday
|
@@ -19,60 +19,42 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - "~>"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '0
|
23
|
-
- - ">="
|
24
|
-
- !ruby/object:Gem::Version
|
25
|
-
version: 0.15.3
|
22
|
+
version: '1.0'
|
26
23
|
type: :runtime
|
27
24
|
prerelease: false
|
28
25
|
version_requirements: !ruby/object:Gem::Requirement
|
29
26
|
requirements:
|
30
27
|
- - "~>"
|
31
28
|
- !ruby/object:Gem::Version
|
32
|
-
version: '0
|
33
|
-
- - ">="
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version: 0.15.3
|
29
|
+
version: '1.0'
|
36
30
|
- !ruby/object:Gem::Dependency
|
37
31
|
name: faraday_middleware
|
38
32
|
requirement: !ruby/object:Gem::Requirement
|
39
33
|
requirements:
|
40
34
|
- - "~>"
|
41
35
|
- !ruby/object:Gem::Version
|
42
|
-
version: '0
|
43
|
-
- - ">="
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: 0.12.2
|
36
|
+
version: '1.0'
|
46
37
|
type: :runtime
|
47
38
|
prerelease: false
|
48
39
|
version_requirements: !ruby/object:Gem::Requirement
|
49
40
|
requirements:
|
50
41
|
- - "~>"
|
51
42
|
- !ruby/object:Gem::Version
|
52
|
-
version: '0
|
53
|
-
- - ">="
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: 0.12.2
|
43
|
+
version: '1.0'
|
56
44
|
- !ruby/object:Gem::Dependency
|
57
45
|
name: hashie
|
58
46
|
requirement: !ruby/object:Gem::Requirement
|
59
47
|
requirements:
|
60
|
-
- - ">="
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 3.6.0
|
63
48
|
- - "~>"
|
64
49
|
- !ruby/object:Gem::Version
|
65
|
-
version: '
|
50
|
+
version: '4.0'
|
66
51
|
type: :runtime
|
67
52
|
prerelease: false
|
68
53
|
version_requirements: !ruby/object:Gem::Requirement
|
69
54
|
requirements:
|
70
|
-
- - ">="
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: 3.6.0
|
73
55
|
- - "~>"
|
74
56
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
57
|
+
version: '4.0'
|
76
58
|
- !ruby/object:Gem::Dependency
|
77
59
|
name: bundler
|
78
60
|
requirement: !ruby/object:Gem::Requirement
|
@@ -257,12 +239,14 @@ files:
|
|
257
239
|
- lib/afterpay/api/configuration/retrieve.rb
|
258
240
|
- lib/afterpay/api/order.rb
|
259
241
|
- lib/afterpay/api/order/create.rb
|
242
|
+
- lib/afterpay/api/order/find.rb
|
260
243
|
- lib/afterpay/api/payment.rb
|
261
244
|
- lib/afterpay/api/payment/auth.rb
|
262
245
|
- lib/afterpay/api/payment/capture.rb
|
263
246
|
- lib/afterpay/api/payment/deferred_capture.rb
|
264
247
|
- lib/afterpay/api/payment/find.rb
|
265
248
|
- lib/afterpay/api/payment/refund.rb
|
249
|
+
- lib/afterpay/api/payment/reversal.rb
|
266
250
|
- lib/afterpay/api/payment/void.rb
|
267
251
|
- lib/afterpay/callable.rb
|
268
252
|
- lib/afterpay/components/base.rb
|