checkout_sdk 0.1.4 → 0.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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +56 -14
- data/lib/checkout_sdk/api_resource.rb +11 -3
- data/lib/checkout_sdk/version.rb +1 -1
- data/spec/checkout_sdk/api_resource_spec.rb +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f336f8a32173480906f369d0007b45080387f90e81012b1ca3588648d7ac01d
|
4
|
+
data.tar.gz: 6d0d240dbe5b15ec742a7a705d37caa415cbff32e88d2cdf9f7d7cfd90192a1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 732900d2a15bf580cc601dabfd0aec31ded3dc13544bf7c66ba9b2379d4d0a87a1674a592bcf169bcf42fc8d6a120d3ee9138c6a5d029edad9136d23e2b52d16
|
7
|
+
data.tar.gz: f2267a7bf7d4fa4e12ead080b9cbf30825a00f32b0b5ea0f07d331c2cdefcca613eef5f94a78bc77800e063ad8618144ecaafb26a5ae5f9b715bbe10257d6c8d
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# CheckoutSdk
|
2
2
|
|
3
|
-
You are reading documentation for version: 0.
|
3
|
+
You are reading documentation for version: 0.2.0
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -32,6 +32,60 @@ end
|
|
32
32
|
|
33
33
|
## Usage
|
34
34
|
|
35
|
+
#### Source Type: `token`
|
36
|
+
A card token can be obtained using one of Checkout.com's JavaScript frontend solutions such as [Frames](https://docs.checkout.com/docs/frames "Frames") or any of the [mobile SDKs](https://docs.checkout.com/docs/sdks#section-mobile-sdk-libraries "Mobile SDKs")
|
37
|
+
|
38
|
+
```ruby
|
39
|
+
payment_request_source = CheckoutSdk::PaymentRequestSource.new
|
40
|
+
payment_request_source.type = "token"
|
41
|
+
payment_request_source.token = "tok_..."
|
42
|
+
payment_request_source.amount = 2022
|
43
|
+
payment_request_source.currency = "GBP"
|
44
|
+
|
45
|
+
api_resource = CheckoutSdk::ApiResource.new
|
46
|
+
|
47
|
+
# Send API call
|
48
|
+
response = api_resource.request_payment(payment_request_source)
|
49
|
+
|
50
|
+
# response parsing
|
51
|
+
response.data # => {...}
|
52
|
+
response.body # => "..."
|
53
|
+
response.headers # => {...}
|
54
|
+
response.remote_ip # => "..."
|
55
|
+
response.status # => 200
|
56
|
+
response.remote_ip # => "..."
|
57
|
+
response.local_port # => 51601
|
58
|
+
response.local_address # => "..."
|
59
|
+
```
|
60
|
+
|
61
|
+
#### Source Type: `id`
|
62
|
+
|
63
|
+
```ruby
|
64
|
+
payment_request_source = CheckoutSdk::PaymentRequestSource.new
|
65
|
+
payment_request_source.type = "id"
|
66
|
+
payment_request_source.token = "src_..."
|
67
|
+
payment_request_source.amount = 2022
|
68
|
+
payment_request_source.currency = "GBP"
|
69
|
+
|
70
|
+
api_resource = CheckoutSdk::ApiResource.new
|
71
|
+
|
72
|
+
# Send API call
|
73
|
+
response = api_resource.request_payment(payment_request_source)
|
74
|
+
|
75
|
+
# response parsing
|
76
|
+
response.data # => {...}
|
77
|
+
response.body # => "..."
|
78
|
+
response.headers # => {...}
|
79
|
+
response.remote_ip # => "..."
|
80
|
+
response.status # => 200
|
81
|
+
response.remote_ip # => "..."
|
82
|
+
response.local_port # => 51601
|
83
|
+
response.local_address # => "..."
|
84
|
+
```
|
85
|
+
|
86
|
+
|
87
|
+
#### Source Type: `card`
|
88
|
+
[Fully PCI Compliant](https://docs.checkout.com/docs/pci-compliance) merchants only
|
35
89
|
```ruby
|
36
90
|
payment_request_source = CheckoutSdk::PaymentRequestSource.new
|
37
91
|
payment_request_source.type = "card"
|
@@ -42,23 +96,11 @@ payment_request_source.card_name = "Bruce Wayne"
|
|
42
96
|
payment_request_source.card_cvv = "100"
|
43
97
|
payment_request_source.amount = 2022
|
44
98
|
payment_request_source.currency = "GBP"
|
45
|
-
payment_request_source.capture = true
|
46
|
-
payment_request_source.threeds_enabled = false
|
47
|
-
payment_request_source.threeds_attempt_n3d = false
|
48
|
-
payment_request_source.recipient_dob = "1992-04-06"
|
49
|
-
payment_request_source.recipient_account_number = "1234567890"
|
50
|
-
payment_request_source.recipient_zip = "12345"
|
51
|
-
payment_request_source.recipient_last_name = "Elmo"
|
52
|
-
payment_request_source.risk_enabled = true
|
53
|
-
payment_request_source.billing_descriptor_name = "Nancy"
|
54
|
-
payment_request_source.billing_descriptor_city = "Berlin"
|
55
|
-
payment_request_source.processing_mid = "CheckoutSdk"
|
56
|
-
|
57
99
|
|
58
100
|
api_resource = CheckoutSdk::ApiResource.new
|
59
101
|
|
60
102
|
# Send API call
|
61
|
-
response = api_resource.
|
103
|
+
response = api_resource.request_payment(payment_request_source)
|
62
104
|
|
63
105
|
# response parsing
|
64
106
|
response.data # => {...}
|
@@ -8,7 +8,7 @@ class CheckoutSdk::ApiResource
|
|
8
8
|
@checkout_connection = Excon.new("#{CheckoutSdk.configuration.base_url}", persistent: true)
|
9
9
|
end
|
10
10
|
|
11
|
-
def
|
11
|
+
def request_payment(data_object)
|
12
12
|
post_request("/payments", data_object.data)
|
13
13
|
end
|
14
14
|
|
@@ -47,17 +47,25 @@ class CheckoutSdk::ApiResource
|
|
47
47
|
path: path,
|
48
48
|
body: MultiJson.dump(delete_blank(data)),
|
49
49
|
headers: { "Content-Type" => "application/json",
|
50
|
-
"Authorization" =>
|
50
|
+
"Authorization" => key(path) }
|
51
51
|
)
|
52
52
|
end
|
53
53
|
|
54
54
|
def get(path)
|
55
55
|
checkout_connection.get(
|
56
56
|
path: path,
|
57
|
-
headers: { "Authorization" =>
|
57
|
+
headers: { "Authorization" => CheckoutSdk.configuration.secret_key }
|
58
58
|
)
|
59
59
|
end
|
60
60
|
|
61
|
+
def key(path)
|
62
|
+
if path == "/tokens"
|
63
|
+
CheckoutSdk.configuration.public_key
|
64
|
+
else
|
65
|
+
CheckoutSdk.configuration.secret_key
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
61
69
|
def delete_blank(data_hash)
|
62
70
|
data_hash.delete_if do |k, v|
|
63
71
|
(v.respond_to?(:empty?) ? v.empty? : !v) or v.instance_of?(Hash) && delete_blank(v).empty?
|
data/lib/checkout_sdk/version.rb
CHANGED
@@ -7,7 +7,7 @@ RSpec.describe CheckoutSdk::ApiResource do
|
|
7
7
|
expect(api_resource.checkout_connection.data[:host]).to eql("test.com")
|
8
8
|
end
|
9
9
|
|
10
|
-
describe "#
|
10
|
+
describe "#request_payment" do
|
11
11
|
let(:payment_request_source) { CheckoutSdk::PaymentRequestSource.new }
|
12
12
|
let(:data) { { mock: true } }
|
13
13
|
|
@@ -19,7 +19,7 @@ RSpec.describe CheckoutSdk::ApiResource do
|
|
19
19
|
headers:{"Authorization"=>"sk_test", "Content-Type"=>"application/json"},
|
20
20
|
path:"/payments" })
|
21
21
|
|
22
|
-
api_resource.
|
22
|
+
api_resource.request_payment(payment_request_source)
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
@@ -93,7 +93,7 @@ RSpec.describe CheckoutSdk::ApiResource do
|
|
93
93
|
|
94
94
|
expect(api_resource.checkout_connection).to receive(:post)
|
95
95
|
.with({ body:"{\"mock\":true}",
|
96
|
-
headers:{"Authorization"=>"
|
96
|
+
headers:{"Authorization"=>"pk_test", "Content-Type"=>"application/json"},
|
97
97
|
path:"/tokens" })
|
98
98
|
|
99
99
|
api_resource.request_token(request_token)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: checkout_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Khalid Jazaerly
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-10-
|
11
|
+
date: 2019-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|