stripe 8.6.0.pre.beta.6 → 8.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -150
  3. data/OPENAPI_VERSION +1 -1
  4. data/README.md +0 -11
  5. data/VERSION +1 -1
  6. data/lib/stripe/api_operations/request.rb +0 -2
  7. data/lib/stripe/api_version.rb +0 -1
  8. data/lib/stripe/object_types.rb +0 -14
  9. data/lib/stripe/resources/financial_connections/account.rb +0 -39
  10. data/lib/stripe/resources/financial_connections/account_owner.rb +1 -0
  11. data/lib/stripe/resources/quote.rb +0 -131
  12. data/lib/stripe/resources/subscription_schedule.rb +0 -18
  13. data/lib/stripe/resources/terminal/reader.rb +0 -54
  14. data/lib/stripe/resources.rb +0 -14
  15. data/lib/stripe/stripe_client.rb +26 -60
  16. data/lib/stripe/stripe_configuration.rb +4 -4
  17. data/lib/stripe/util.rb +1 -8
  18. data/lib/stripe/version.rb +1 -1
  19. data/lib/stripe.rb +0 -47
  20. metadata +4 -19
  21. data/lib/stripe/request_signing_authenticator.rb +0 -83
  22. data/lib/stripe/resources/account_session.rb +0 -17
  23. data/lib/stripe/resources/capital/financing_offer.rb +0 -32
  24. data/lib/stripe/resources/capital/financing_summary.rb +0 -12
  25. data/lib/stripe/resources/capital/financing_transaction.rb +0 -13
  26. data/lib/stripe/resources/customer_session.rb +0 -12
  27. data/lib/stripe/resources/financial_connections/inferred_balance.rb +0 -13
  28. data/lib/stripe/resources/financial_connections/transaction.rb +0 -13
  29. data/lib/stripe/resources/gift_cards/card.rb +0 -25
  30. data/lib/stripe/resources/gift_cards/transaction.rb +0 -56
  31. data/lib/stripe/resources/issuing/card_bundle.rb +0 -13
  32. data/lib/stripe/resources/issuing/card_design.rb +0 -58
  33. data/lib/stripe/resources/order.rb +0 -89
  34. data/lib/stripe/resources/quote_phase.rb +0 -29
  35. data/lib/stripe/resources/tax/registration.rb +0 -19
@@ -1,83 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Stripe
4
- class RequestSigningAuthenticator
5
- AUTHORIZATION_HEADER_NAME = "Authorization"
6
- CONTENT_TYPE_HEADER_NAME = "Content-Type"
7
- STRIPE_CONTEXT_HEADER_NAME = "Stripe-Context"
8
- STRIPE_ACCOUNT_HEADER_NAME = "Stripe-Account"
9
- CONTENT_DIGEST_HEADER_NAME = "Content-Digest"
10
- SIGNATURE_INPUT_HEADER_NAME = "Signature-Input"
11
- SIGNATURE_HEADER_NAME = "Signature"
12
-
13
- attr_reader :auth_token, :sign_lambda
14
-
15
- def initialize(auth_token, sign_lambda)
16
- unless auth_token.is_a?(String)
17
- raise ArgumentError, "auth_token must be a string"
18
- end
19
- unless sign_lambda.is_a?(Proc)
20
- raise ArgumentError, "sign_lambda must be a lambda"
21
- end
22
-
23
- @auth_token = auth_token
24
- @sign_lambda = sign_lambda
25
- end
26
-
27
- def authenticate(method, headers, body)
28
- covered_headers = [CONTENT_TYPE_HEADER_NAME,
29
- CONTENT_DIGEST_HEADER_NAME,
30
- STRIPE_CONTEXT_HEADER_NAME,
31
- STRIPE_ACCOUNT_HEADER_NAME,
32
- AUTHORIZATION_HEADER_NAME,]
33
-
34
- headers[AUTHORIZATION_HEADER_NAME] = "STRIPE-V2-SIG #{auth_token}"
35
-
36
- if method == :get
37
- covered_headers -= [CONTENT_TYPE_HEADER_NAME,
38
- CONTENT_DIGEST_HEADER_NAME,]
39
- else
40
- content = body || ""
41
- headers[CONTENT_DIGEST_HEADER_NAME] =
42
- %(sha-256=:#{content_digest(content)}:)
43
- end
44
-
45
- covered_headers_formatted = covered_headers
46
- .map { |string| %("#{string.downcase}") }
47
- .join(" ")
48
-
49
- signature_input = "(#{covered_headers_formatted});created=#{created_time}"
50
-
51
- inputs = covered_headers
52
- .map { |header| %("#{header.downcase}": #{headers[header]}) }
53
- .join("\n")
54
-
55
- signature_base = %(#{inputs}\n"@signature-params": #{signature_input})
56
- .encode(Encoding::UTF_8)
57
-
58
- headers[SIGNATURE_INPUT_HEADER_NAME] = "sig1=#{signature_input}"
59
-
60
- headers[SIGNATURE_HEADER_NAME] =
61
- "sig1=:#{encoded_signature(signature_base)}:"
62
- end
63
-
64
- private def sign(signature_base)
65
- @sign_lambda.call(signature_base)
66
- end
67
-
68
- private def encoded_signature(signature_base)
69
- Base64.strict_encode64(sign(signature_base))
70
- rescue StandardError
71
- raise AuthenticationError, "Encountered '#{e.message} (#{e.class})' "\
72
- "when calculating request signature."
73
- end
74
-
75
- private def content_digest(content)
76
- Base64.strict_encode64(OpenSSL::Digest.new("SHA256").digest(content))
77
- end
78
-
79
- private def created_time
80
- Time.now.to_i
81
- end
82
- end
83
- end
@@ -1,17 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- # An AccountSession allows a Connect platform to grant access to a connected account in Connect embedded components.
6
- #
7
- # We recommend that you create an AccountSession each time you need to display an embedded component
8
- # to your user. Do not save AccountSessions to your database as they expire relatively
9
- # quickly, and cannot be used more than once.
10
- #
11
- # Related guide: [Connect embedded components](https://stripe.com/docs/connect/get-started-connect-embedded-components)
12
- class AccountSession < APIResource
13
- extend Stripe::APIOperations::Create
14
-
15
- OBJECT_NAME = "account_session"
16
- end
17
- end
@@ -1,32 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- module Capital
6
- # This is an object representing an offer of financing from
7
- # Stripe Capital to a Connect subaccount.
8
- class FinancingOffer < APIResource
9
- extend Stripe::APIOperations::List
10
-
11
- OBJECT_NAME = "capital.financing_offer"
12
-
13
- def mark_delivered(params = {}, opts = {})
14
- request_stripe_object(
15
- method: :post,
16
- path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(self["id"]) }),
17
- params: params,
18
- opts: opts
19
- )
20
- end
21
-
22
- def self.mark_delivered(financing_offer, params = {}, opts = {})
23
- request_stripe_object(
24
- method: :post,
25
- path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(financing_offer) }),
26
- params: params,
27
- opts: opts
28
- )
29
- end
30
- end
31
- end
32
- end
@@ -1,12 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- module Capital
6
- # A financing object describes an account's current financing state. Used by Connect
7
- # platforms to read the state of Capital offered to their connected accounts.
8
- class FinancingSummary < SingletonAPIResource
9
- OBJECT_NAME = "capital.financing_summary"
10
- end
11
- end
12
- end
@@ -1,13 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- module Capital
6
- # This is an object representing the details of a transaction on a Capital financing object.
7
- class FinancingTransaction < APIResource
8
- extend Stripe::APIOperations::List
9
-
10
- OBJECT_NAME = "capital.financing_transaction"
11
- end
12
- end
13
- end
@@ -1,12 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- # A customer session allows you to grant client access to Stripe's frontend SDKs (like BillingJs)
6
- # control over a customer.
7
- class CustomerSession < APIResource
8
- extend Stripe::APIOperations::Create
9
-
10
- OBJECT_NAME = "customer_session"
11
- end
12
- end
@@ -1,13 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- module FinancialConnections
6
- # A historical balance for the account on a particular day. It may be sourced from a balance snapshot provided by a financial institution, or inferred using transactions data.
7
- class InferredBalance < APIResource
8
- extend Stripe::APIOperations::List
9
-
10
- OBJECT_NAME = "financial_connections.account_inferred_balance"
11
- end
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- module FinancialConnections
6
- # A Transaction represents a real transaction that affects a Financial Connections Account balance.
7
- class Transaction < APIResource
8
- extend Stripe::APIOperations::List
9
-
10
- OBJECT_NAME = "financial_connections.transaction"
11
- end
12
- end
13
- end
@@ -1,25 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- module GiftCards
6
- # A gift card represents a single gift card owned by a customer, including the
7
- # remaining balance, gift card code, and whether or not it is active.
8
- class Card < APIResource
9
- extend Stripe::APIOperations::Create
10
- extend Stripe::APIOperations::List
11
- include Stripe::APIOperations::Save
12
-
13
- OBJECT_NAME = "gift_cards.card"
14
-
15
- def self.validate(params = {}, opts = {})
16
- request_stripe_object(
17
- method: :post,
18
- path: "/v1/gift_cards/cards/validate",
19
- params: params,
20
- opts: opts
21
- )
22
- end
23
- end
24
- end
25
- end
@@ -1,56 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- module GiftCards
6
- # A gift card transaction represents a single transaction on a referenced gift card.
7
- # A transaction is in one of three states, `confirmed`, `held` or `canceled`. A `confirmed`
8
- # transaction is one that has added/deducted funds. A `held` transaction has created a
9
- # temporary hold on funds, which can then be cancelled or confirmed. A `held` transaction
10
- # can be confirmed into a `confirmed` transaction, or canceled into a `canceled` transaction.
11
- # A `canceled` transaction has no effect on a gift card's balance.
12
- class Transaction < APIResource
13
- extend Stripe::APIOperations::Create
14
- extend Stripe::APIOperations::List
15
- include Stripe::APIOperations::Save
16
-
17
- OBJECT_NAME = "gift_cards.transaction"
18
-
19
- def cancel(params = {}, opts = {})
20
- request_stripe_object(
21
- method: :post,
22
- path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(self["id"]) }),
23
- params: params,
24
- opts: opts
25
- )
26
- end
27
-
28
- def confirm(params = {}, opts = {})
29
- request_stripe_object(
30
- method: :post,
31
- path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(self["id"]) }),
32
- params: params,
33
- opts: opts
34
- )
35
- end
36
-
37
- def self.cancel(id, params = {}, opts = {})
38
- request_stripe_object(
39
- method: :post,
40
- path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(id) }),
41
- params: params,
42
- opts: opts
43
- )
44
- end
45
-
46
- def self.confirm(id, params = {}, opts = {})
47
- request_stripe_object(
48
- method: :post,
49
- path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(id) }),
50
- params: params,
51
- opts: opts
52
- )
53
- end
54
- end
55
- end
56
- end
@@ -1,13 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- module Issuing
6
- # A Card Bundle represents the bundle of physical items - card stock, carrier letter, and envelope - that is shipped to a cardholder when you create a physical card.
7
- class CardBundle < APIResource
8
- extend Stripe::APIOperations::List
9
-
10
- OBJECT_NAME = "issuing.card_bundle"
11
- end
12
- end
13
- end
@@ -1,58 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- module Issuing
6
- # A Card Design is a logical grouping of a Card Bundle, card logo, and carrier text that represents a product line.
7
- class CardDesign < APIResource
8
- extend Stripe::APIOperations::List
9
- include Stripe::APIOperations::Save
10
-
11
- OBJECT_NAME = "issuing.card_design"
12
-
13
- def test_helpers
14
- TestHelpers.new(self)
15
- end
16
-
17
- class TestHelpers < APIResourceTestHelpers
18
- RESOURCE_CLASS = CardDesign
19
-
20
- def self.activate_testmode(card_design, params = {}, opts = {})
21
- request_stripe_object(
22
- method: :post,
23
- path: format("/v1/test_helpers/issuing/card_designs/%<card_design>s/status/activate", { card_design: CGI.escape(card_design) }),
24
- params: params,
25
- opts: opts
26
- )
27
- end
28
-
29
- def self.deactivate_testmode(card_design, params = {}, opts = {})
30
- request_stripe_object(
31
- method: :post,
32
- path: format("/v1/test_helpers/issuing/card_designs/%<card_design>s/status/deactivate", { card_design: CGI.escape(card_design) }),
33
- params: params,
34
- opts: opts
35
- )
36
- end
37
-
38
- def activate_testmode(params = {}, opts = {})
39
- @resource.request_stripe_object(
40
- method: :post,
41
- path: format("/v1/test_helpers/issuing/card_designs/%<card_design>s/status/activate", { card_design: CGI.escape(@resource["id"]) }),
42
- params: params,
43
- opts: opts
44
- )
45
- end
46
-
47
- def deactivate_testmode(params = {}, opts = {})
48
- @resource.request_stripe_object(
49
- method: :post,
50
- path: format("/v1/test_helpers/issuing/card_designs/%<card_design>s/status/deactivate", { card_design: CGI.escape(@resource["id"]) }),
51
- params: params,
52
- opts: opts
53
- )
54
- end
55
- end
56
- end
57
- end
58
- end
@@ -1,89 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- # An Order describes a purchase being made by a customer, including the
6
- # products & quantities being purchased, the order status, the payment information,
7
- # and the billing/shipping details.
8
- #
9
- # Related guide: [Orders overview](https://stripe.com/docs/orders)
10
- class Order < APIResource
11
- extend Stripe::APIOperations::Create
12
- extend Stripe::APIOperations::List
13
- include Stripe::APIOperations::Save
14
-
15
- OBJECT_NAME = "order"
16
-
17
- def cancel(params = {}, opts = {})
18
- request_stripe_object(
19
- method: :post,
20
- path: format("/v1/orders/%<id>s/cancel", { id: CGI.escape(self["id"]) }),
21
- params: params,
22
- opts: opts
23
- )
24
- end
25
-
26
- def list_line_items(params = {}, opts = {})
27
- request_stripe_object(
28
- method: :get,
29
- path: format("/v1/orders/%<id>s/line_items", { id: CGI.escape(self["id"]) }),
30
- params: params,
31
- opts: opts
32
- )
33
- end
34
-
35
- def reopen(params = {}, opts = {})
36
- request_stripe_object(
37
- method: :post,
38
- path: format("/v1/orders/%<id>s/reopen", { id: CGI.escape(self["id"]) }),
39
- params: params,
40
- opts: opts
41
- )
42
- end
43
-
44
- def submit(params = {}, opts = {})
45
- request_stripe_object(
46
- method: :post,
47
- path: format("/v1/orders/%<id>s/submit", { id: CGI.escape(self["id"]) }),
48
- params: params,
49
- opts: opts
50
- )
51
- end
52
-
53
- def self.cancel(id, params = {}, opts = {})
54
- request_stripe_object(
55
- method: :post,
56
- path: format("/v1/orders/%<id>s/cancel", { id: CGI.escape(id) }),
57
- params: params,
58
- opts: opts
59
- )
60
- end
61
-
62
- def self.list_line_items(id, params = {}, opts = {})
63
- request_stripe_object(
64
- method: :get,
65
- path: format("/v1/orders/%<id>s/line_items", { id: CGI.escape(id) }),
66
- params: params,
67
- opts: opts
68
- )
69
- end
70
-
71
- def self.reopen(id, params = {}, opts = {})
72
- request_stripe_object(
73
- method: :post,
74
- path: format("/v1/orders/%<id>s/reopen", { id: CGI.escape(id) }),
75
- params: params,
76
- opts: opts
77
- )
78
- end
79
-
80
- def self.submit(id, params = {}, opts = {})
81
- request_stripe_object(
82
- method: :post,
83
- path: format("/v1/orders/%<id>s/submit", { id: CGI.escape(id) }),
84
- params: params,
85
- opts: opts
86
- )
87
- end
88
- end
89
- end
@@ -1,29 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- # A quote phase describes the line items, coupons, and trialing status of a subscription for a predefined time period.
6
- class QuotePhase < APIResource
7
- extend Stripe::APIOperations::List
8
-
9
- OBJECT_NAME = "quote_phase"
10
-
11
- def list_line_items(params = {}, opts = {})
12
- request_stripe_object(
13
- method: :get,
14
- path: format("/v1/quote_phases/%<quote_phase>s/line_items", { quote_phase: CGI.escape(self["id"]) }),
15
- params: params,
16
- opts: opts
17
- )
18
- end
19
-
20
- def self.list_line_items(quote_phase, params = {}, opts = {})
21
- request_stripe_object(
22
- method: :get,
23
- path: format("/v1/quote_phases/%<quote_phase>s/line_items", { quote_phase: CGI.escape(quote_phase) }),
24
- params: params,
25
- opts: opts
26
- )
27
- end
28
- end
29
- end
@@ -1,19 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- module Tax
6
- # A Tax `Registration` lets us know that your business is registered to collect tax on payments within a region, enabling you to [automatically collect tax](https://stripe.com/docs/tax).
7
- #
8
- # Stripe doesn't register on your behalf with the relevant authorities when you create a Tax `Registration` object. For more information on how to register to collect tax, see [our guide](https://stripe.com/docs/tax/registering).
9
- #
10
- # Related guide: [Using the Registrations API](https://stripe.com/docs/tax/registrations-api)
11
- class Registration < APIResource
12
- extend Stripe::APIOperations::Create
13
- extend Stripe::APIOperations::List
14
- include Stripe::APIOperations::Save
15
-
16
- OBJECT_NAME = "tax.registration"
17
- end
18
- end
19
- end