stripe 3.15.0 → 3.17.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_todo.yml +6 -6
- data/CHANGELOG.md +6 -0
- data/README.md +1 -1
- data/VERSION +1 -1
- data/lib/stripe.rb +4 -2
- data/lib/stripe/payment_intent.rb +31 -0
- data/lib/stripe/util.rb +1 -0
- data/lib/stripe/version.rb +3 -1
- data/test/stripe/customer_test.rb +1 -1
- data/test/stripe/order_test.rb +2 -2
- data/test/stripe/payment_intent_test.rb +96 -0
- data/test/stripe/stripe_client_test.rb +2 -0
- data/test/stripe/subscription_item_test.rb +0 -1
- data/test/stripe_test.rb +2 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bac1f6ddcfa0fad7db03e5929bb02fa20a8d55a1
|
4
|
+
data.tar.gz: 7623d4070e7d9e4260d9213638fa7750e0fef6b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d79721ac5dceccd1cd8769b1cdb104142750e0f3ddc9d965584e4731a2bd382a8cb5c17d2b3751da8699a0bc39a3fd00ba7589829d0cc4aec7aa8d481fd653e
|
7
|
+
data.tar.gz: 5df86bf3c52ee058ce0e00515264c166f14a935382fafdaab578d9545f9affcd63af20d3fa99f96534d6fc488d52aef76da06628db733b317565cdb00c2fe0bb
|
data/.rubocop_todo.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on 2018-
|
3
|
+
# on 2018-06-28 10:59:56 -0400 using RuboCop version 0.50.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
@@ -13,18 +13,18 @@ Metrics/AbcSize:
|
|
13
13
|
# Offense count: 27
|
14
14
|
# Configuration parameters: CountComments, ExcludedMethods.
|
15
15
|
Metrics/BlockLength:
|
16
|
-
Max:
|
16
|
+
Max: 498
|
17
17
|
|
18
18
|
# Offense count: 8
|
19
19
|
# Configuration parameters: CountComments.
|
20
20
|
Metrics/ClassLength:
|
21
|
-
Max:
|
21
|
+
Max: 626
|
22
22
|
|
23
23
|
# Offense count: 11
|
24
24
|
Metrics/CyclomaticComplexity:
|
25
25
|
Max: 15
|
26
26
|
|
27
|
-
# Offense count:
|
27
|
+
# Offense count: 269
|
28
28
|
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
29
29
|
# URISchemes: http, https
|
30
30
|
Metrics/LineLength:
|
@@ -38,7 +38,7 @@ Metrics/MethodLength:
|
|
38
38
|
# Offense count: 1
|
39
39
|
# Configuration parameters: CountComments.
|
40
40
|
Metrics/ModuleLength:
|
41
|
-
Max:
|
41
|
+
Max: 350
|
42
42
|
|
43
43
|
# Offense count: 6
|
44
44
|
# Configuration parameters: CountKeywordArgs.
|
@@ -55,6 +55,6 @@ Style/ClassVars:
|
|
55
55
|
- 'lib/stripe/stripe_object.rb'
|
56
56
|
- 'test/stripe/api_resource_test.rb'
|
57
57
|
|
58
|
-
# Offense count:
|
58
|
+
# Offense count: 55
|
59
59
|
Style/Documentation:
|
60
60
|
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 3.17.0 - 2018-06-28
|
4
|
+
* [#658](https://github.com/stripe/stripe-ruby/pull/658) Add support for `partner_id` from `Stripe.set_app_info`
|
5
|
+
|
6
|
+
## 3.16.0 - 2018-06-28
|
7
|
+
* [#657](https://github.com/stripe/stripe-ruby/pull/657) Add support for payment intents
|
8
|
+
|
3
9
|
## 3.15.0 - 2018-05-10
|
4
10
|
* [#649](https://github.com/stripe/stripe-ruby/pull/649) Freeze all string literals
|
5
11
|
|
data/README.md
CHANGED
@@ -114,7 +114,7 @@ end
|
|
114
114
|
puts resp.request_id
|
115
115
|
```
|
116
116
|
|
117
|
-
###
|
117
|
+
### Configuring an API Version
|
118
118
|
|
119
119
|
By default, the library will use the API version pinned to the account making
|
120
120
|
a request. This can be overridden with this global option:
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.17.0
|
data/lib/stripe.rb
CHANGED
@@ -63,6 +63,7 @@ require "stripe/issuer_fraud_record"
|
|
63
63
|
require "stripe/login_link"
|
64
64
|
require "stripe/order"
|
65
65
|
require "stripe/order_return"
|
66
|
+
require "stripe/payment_intent"
|
66
67
|
require "stripe/payout"
|
67
68
|
require "stripe/plan"
|
68
69
|
require "stripe/product"
|
@@ -212,10 +213,11 @@ module Stripe
|
|
212
213
|
# with API requests. Useful for plugin authors to identify their plugin when
|
213
214
|
# communicating with Stripe.
|
214
215
|
#
|
215
|
-
# Takes a name and optional
|
216
|
-
def self.set_app_info(name,
|
216
|
+
# Takes a name and optional partner program ID, plugin URL, and version.
|
217
|
+
def self.set_app_info(name, partner_id: nil, url: nil, version: nil)
|
217
218
|
@app_info = {
|
218
219
|
name: name,
|
220
|
+
partner_id: partner_id,
|
219
221
|
url: url,
|
220
222
|
version: version,
|
221
223
|
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
class PaymentIntent < APIResource
|
5
|
+
extend Stripe::APIOperations::Create
|
6
|
+
include Stripe::APIOperations::Delete
|
7
|
+
extend Stripe::APIOperations::List
|
8
|
+
include Stripe::APIOperations::Save
|
9
|
+
|
10
|
+
OBJECT_NAME = "payment_intent".freeze
|
11
|
+
|
12
|
+
def self.resource_url
|
13
|
+
"/v1/payment_intents"
|
14
|
+
end
|
15
|
+
|
16
|
+
def cancel
|
17
|
+
resp, api_key = request(:post, resource_url + "/cancel")
|
18
|
+
initialize_from(resp.data, api_key)
|
19
|
+
end
|
20
|
+
|
21
|
+
def capture
|
22
|
+
resp, api_key = request(:post, resource_url + "/capture")
|
23
|
+
initialize_from(resp.data, api_key)
|
24
|
+
end
|
25
|
+
|
26
|
+
def confirm
|
27
|
+
resp, api_key = request(:post, resource_url + "/confirm")
|
28
|
+
initialize_from(resp.data, api_key)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/stripe/util.rb
CHANGED
@@ -72,6 +72,7 @@ module Stripe
|
|
72
72
|
LoginLink::OBJECT_NAME => LoginLink,
|
73
73
|
Order::OBJECT_NAME => Order,
|
74
74
|
OrderReturn::OBJECT_NAME => OrderReturn,
|
75
|
+
PaymentIntent::OBJECT_NAME => PaymentIntent,
|
75
76
|
Payout::OBJECT_NAME => Payout,
|
76
77
|
Plan::OBJECT_NAME => Plan,
|
77
78
|
Product::OBJECT_NAME => Product,
|
data/lib/stripe/version.rb
CHANGED
@@ -46,7 +46,7 @@ module Stripe
|
|
46
46
|
context "#create_subscription" do
|
47
47
|
should "create a new subscription" do
|
48
48
|
customer = Stripe::Customer.retrieve("cus_123")
|
49
|
-
subscription = customer.create_subscription(plan: "silver")
|
49
|
+
subscription = customer.create_subscription(items: [{ plan: "silver" }])
|
50
50
|
assert subscription.is_a?(Stripe::Subscription)
|
51
51
|
end
|
52
52
|
end
|
data/test/stripe/order_test.rb
CHANGED
@@ -41,7 +41,7 @@ module Stripe
|
|
41
41
|
context "#pay" do
|
42
42
|
should "pay an order" do
|
43
43
|
order = Stripe::Order.retrieve("or_123")
|
44
|
-
order = order.pay(
|
44
|
+
order = order.pay(source: "tok_123")
|
45
45
|
assert order.is_a?(Stripe::Order)
|
46
46
|
end
|
47
47
|
end
|
@@ -49,7 +49,7 @@ module Stripe
|
|
49
49
|
context "#return_order" do
|
50
50
|
should "return an order" do
|
51
51
|
order = Stripe::Order.retrieve("or_123")
|
52
|
-
order = order.return_order(
|
52
|
+
order = order.return_order(items: [
|
53
53
|
{ parent: "sku_123" },
|
54
54
|
])
|
55
55
|
assert order.is_a?(Stripe::OrderReturn)
|
@@ -0,0 +1,96 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path("../../test_helper", __FILE__)
|
4
|
+
|
5
|
+
module Stripe
|
6
|
+
TEST_RESOURCE_ID = "pi_123".freeze
|
7
|
+
|
8
|
+
class PaymentIntentTest < Test::Unit::TestCase
|
9
|
+
should "be listable" do
|
10
|
+
stub_request(:get, "#{Stripe.api_base}/v1/payment_intents")
|
11
|
+
.to_return(body: JSON.generate(object: "list", data: [{ id: "pi_123", object: "payment_intent" }]))
|
12
|
+
|
13
|
+
payment_intents = Stripe::PaymentIntent.list
|
14
|
+
assert_requested :get, "#{Stripe.api_base}/v1/payment_intents"
|
15
|
+
assert payment_intents.data.is_a?(Array)
|
16
|
+
assert payment_intents.data[0].is_a?(Stripe::PaymentIntent)
|
17
|
+
end
|
18
|
+
|
19
|
+
should "be retrievable" do
|
20
|
+
stub_request(:get, "#{Stripe.api_base}/v1/payment_intents/pi_123")
|
21
|
+
.to_return(body: JSON.generate(id: "pi_123", object: "payment_intent"))
|
22
|
+
|
23
|
+
payment_intent = Stripe::PaymentIntent.retrieve("pi_123")
|
24
|
+
assert_requested :get, "#{Stripe.api_base}/v1/payment_intents/pi_123"
|
25
|
+
assert payment_intent.is_a?(Stripe::PaymentIntent)
|
26
|
+
end
|
27
|
+
|
28
|
+
should "be creatable" do
|
29
|
+
stub_request(:post, "#{Stripe.api_base}/v1/payment_intents")
|
30
|
+
.to_return(body: JSON.generate(id: "pi_123", object: "payment_intent"))
|
31
|
+
|
32
|
+
payment_intent = Stripe::PaymentIntent.create
|
33
|
+
assert_requested :post, "#{Stripe.api_base}/v1/payment_intents"
|
34
|
+
assert payment_intent.is_a?(Stripe::PaymentIntent)
|
35
|
+
end
|
36
|
+
|
37
|
+
should "be saveable" do
|
38
|
+
stub_request(:post, "#{Stripe.api_base}/v1/payment_intents/pi_123")
|
39
|
+
.to_return(body: JSON.generate(id: "pi_123", object: "payment_intent"))
|
40
|
+
|
41
|
+
payment_intent = Stripe::PaymentIntent.construct_from(id: "pi_123", object: "payment_intent", metadata: {})
|
42
|
+
payment_intent.metadata["key"] = "value"
|
43
|
+
payment_intent.save
|
44
|
+
assert_requested :post, "#{Stripe.api_base}/v1/payment_intents/#{payment_intent.id}"
|
45
|
+
end
|
46
|
+
|
47
|
+
should "be updateable" do
|
48
|
+
stub_request(:post, "#{Stripe.api_base}/v1/payment_intents/pi_123")
|
49
|
+
.to_return(body: JSON.generate(id: "pi_123", object: "payment_intent"))
|
50
|
+
|
51
|
+
payment_intent = Stripe::PaymentIntent.update("pi_123", metadata: { foo: "bar" })
|
52
|
+
|
53
|
+
assert_requested :post, "#{Stripe.api_base}/v1/payment_intents/pi_123"
|
54
|
+
assert payment_intent.is_a?(Stripe::PaymentIntent)
|
55
|
+
end
|
56
|
+
|
57
|
+
context "#cancel" do
|
58
|
+
should "cancel a payment_intent" do
|
59
|
+
stub_request(:post, "#{Stripe.api_base}/v1/payment_intents/pi_123/cancel")
|
60
|
+
.to_return(body: JSON.generate(id: "pi_123", object: "payment_intent"))
|
61
|
+
|
62
|
+
payment_intent = Stripe::PaymentIntent.construct_from(id: "pi_123", object: "payment_intent")
|
63
|
+
payment_intent = payment_intent.cancel
|
64
|
+
|
65
|
+
assert_requested :post, "#{Stripe.api_base}/v1/payment_intents/pi_123/cancel"
|
66
|
+
assert payment_intent.is_a?(Stripe::PaymentIntent)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
context "#capture" do
|
71
|
+
should "capture a payment_intent" do
|
72
|
+
stub_request(:post, "#{Stripe.api_base}/v1/payment_intents/pi_123/capture")
|
73
|
+
.to_return(body: JSON.generate(id: "pi_123", object: "payment_intent"))
|
74
|
+
|
75
|
+
payment_intent = Stripe::PaymentIntent.construct_from(id: "pi_123", object: "payment_intent")
|
76
|
+
payment_intent = payment_intent.capture
|
77
|
+
|
78
|
+
assert_requested :post, "#{Stripe.api_base}/v1/payment_intents/pi_123/capture"
|
79
|
+
assert payment_intent.is_a?(Stripe::PaymentIntent)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
context "#confirm" do
|
84
|
+
should "confirm a payment_intent" do
|
85
|
+
stub_request(:post, "#{Stripe.api_base}/v1/payment_intents/pi_123/confirm")
|
86
|
+
.to_return(body: JSON.generate(id: "pi_123", object: "payment_intent"))
|
87
|
+
|
88
|
+
payment_intent = Stripe::PaymentIntent.construct_from(id: "pi_123", object: "payment_intent")
|
89
|
+
payment_intent = payment_intent.confirm
|
90
|
+
|
91
|
+
assert_requested :post, "#{Stripe.api_base}/v1/payment_intents/pi_123/confirm"
|
92
|
+
assert payment_intent.is_a?(Stripe::PaymentIntent)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
@@ -345,6 +345,7 @@ module Stripe
|
|
345
345
|
old = Stripe.app_info
|
346
346
|
Stripe.set_app_info(
|
347
347
|
"MyAwesomePlugin",
|
348
|
+
partner_id: "partner_1234",
|
348
349
|
url: "https://myawesomeplugin.info",
|
349
350
|
version: "1.2.34"
|
350
351
|
)
|
@@ -361,6 +362,7 @@ module Stripe
|
|
361
362
|
|
362
363
|
assert_equal({
|
363
364
|
name: "MyAwesomePlugin",
|
365
|
+
partner_id: "partner_1234",
|
364
366
|
url: "https://myawesomeplugin.info",
|
365
367
|
version: "1.2.34",
|
366
368
|
}, data[:application])
|
data/test/stripe_test.rb
CHANGED
@@ -21,11 +21,13 @@ class StripeTest < Test::Unit::TestCase
|
|
21
21
|
old = Stripe.app_info
|
22
22
|
Stripe.set_app_info(
|
23
23
|
"MyAwesomePlugin",
|
24
|
+
partner_id: "partner_1234",
|
24
25
|
url: "https://myawesomeplugin.info",
|
25
26
|
version: "1.2.34"
|
26
27
|
)
|
27
28
|
assert_equal({
|
28
29
|
name: "MyAwesomePlugin",
|
30
|
+
partner_id: "partner_1234",
|
29
31
|
url: "https://myawesomeplugin.info",
|
30
32
|
version: "1.2.34",
|
31
33
|
}, Stripe.app_info)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stripe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stripe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-06-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -86,6 +86,7 @@ files:
|
|
86
86
|
- lib/stripe/oauth.rb
|
87
87
|
- lib/stripe/order.rb
|
88
88
|
- lib/stripe/order_return.rb
|
89
|
+
- lib/stripe/payment_intent.rb
|
89
90
|
- lib/stripe/payout.rb
|
90
91
|
- lib/stripe/plan.rb
|
91
92
|
- lib/stripe/product.rb
|
@@ -144,6 +145,7 @@ files:
|
|
144
145
|
- test/stripe/oauth_test.rb
|
145
146
|
- test/stripe/order_return_test.rb
|
146
147
|
- test/stripe/order_test.rb
|
148
|
+
- test/stripe/payment_intent_test.rb
|
147
149
|
- test/stripe/payout_test.rb
|
148
150
|
- test/stripe/plan_test.rb
|
149
151
|
- test/stripe/product_test.rb
|
@@ -226,6 +228,7 @@ test_files:
|
|
226
228
|
- test/stripe/oauth_test.rb
|
227
229
|
- test/stripe/order_return_test.rb
|
228
230
|
- test/stripe/order_test.rb
|
231
|
+
- test/stripe/payment_intent_test.rb
|
229
232
|
- test/stripe/payout_test.rb
|
230
233
|
- test/stripe/plan_test.rb
|
231
234
|
- test/stripe/product_test.rb
|