stripe 12.5.0.pre.beta.1 → 12.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/CHANGELOG.md +648 -1331
- data/OPENAPI_VERSION +1 -1
- data/VERSION +1 -1
- data/lib/stripe/api_operations/request.rb +1 -2
- data/lib/stripe/api_version.rb +0 -1
- data/lib/stripe/object_types.rb +0 -18
- data/lib/stripe/resources/financial_connections/account.rb +0 -3
- data/lib/stripe/resources/invoice.rb +0 -37
- data/lib/stripe/resources/payment_intent.rb +0 -50
- data/lib/stripe/resources/quote.rb +0 -104
- data/lib/stripe/resources/subscription_schedule.rb +0 -20
- data/lib/stripe/resources/terminal/reader.rb +0 -60
- data/lib/stripe/resources.rb +0 -17
- data/lib/stripe/stripe_client.rb +28 -60
- data/lib/stripe/stripe_configuration.rb +1 -2
- data/lib/stripe/util.rb +1 -8
- data/lib/stripe/version.rb +1 -1
- data/lib/stripe.rb +0 -29
- metadata +4 -22
- data/lib/stripe/request_signing_authenticator.rb +0 -79
- data/lib/stripe/resources/account_notice.rb +0 -32
- data/lib/stripe/resources/capital/financing_offer.rb +0 -49
- data/lib/stripe/resources/capital/financing_summary.rb +0 -15
- data/lib/stripe/resources/capital/financing_transaction.rb +0 -27
- data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +0 -14
- data/lib/stripe/resources/financial_connections/institution.rb +0 -26
- data/lib/stripe/resources/gift_cards/card.rb +0 -59
- data/lib/stripe/resources/gift_cards/transaction.rb +0 -93
- data/lib/stripe/resources/invoice_payment.rb +0 -12
- data/lib/stripe/resources/issuing/credit_underwriting_record.rb +0 -88
- data/lib/stripe/resources/margin.rb +0 -37
- data/lib/stripe/resources/order.rb +0 -120
- data/lib/stripe/resources/quote_phase.rb +0 -39
- data/lib/stripe/resources/quote_preview_invoice.rb +0 -43
- data/lib/stripe/resources/quote_preview_subscription_schedule.rb +0 -11
- data/lib/stripe/resources/tax/association.rb +0 -24
- data/lib/stripe/resources/tax/form.rb +0 -49
data/lib/stripe/stripe_client.rb
CHANGED
@@ -217,10 +217,9 @@ module Stripe
|
|
217
217
|
"for usage examples)", 2024, 6
|
218
218
|
|
219
219
|
def execute_request(method, path,
|
220
|
-
api_base: nil, api_key: nil,
|
221
|
-
headers: {}, params: {}, api_mode: nil, usage: [])
|
220
|
+
api_base: nil, api_key: nil, headers: {}, params: {}, usage: [])
|
222
221
|
http_resp, api_key = execute_request_internal(
|
223
|
-
method, path, api_base, api_key, headers, params,
|
222
|
+
method, path, api_base, api_key, headers, params, usage
|
224
223
|
)
|
225
224
|
|
226
225
|
begin
|
@@ -251,7 +250,6 @@ module Stripe
|
|
251
250
|
def execute_request_stream(method, path,
|
252
251
|
api_base: nil, api_key: nil, usage: [],
|
253
252
|
headers: {}, params: {},
|
254
|
-
api_mode: nil,
|
255
253
|
&read_body_chunk_block)
|
256
254
|
unless block_given?
|
257
255
|
raise ArgumentError,
|
@@ -259,8 +257,7 @@ module Stripe
|
|
259
257
|
end
|
260
258
|
|
261
259
|
http_resp, api_key = execute_request_internal(
|
262
|
-
method, path, api_base, api_key,
|
263
|
-
headers, params, api_mode, usage, &read_body_chunk_block
|
260
|
+
method, path, api_base, api_key, headers, params, usage, &read_body_chunk_block
|
264
261
|
)
|
265
262
|
|
266
263
|
# When the read_body_chunk_block is given, we no longer have access to the
|
@@ -439,8 +436,8 @@ module Stripe
|
|
439
436
|
end
|
440
437
|
|
441
438
|
private def execute_request_internal(method, path,
|
442
|
-
api_base, api_key, headers, params,
|
443
|
-
|
439
|
+
api_base, api_key, headers, params, usage,
|
440
|
+
&read_body_chunk_block)
|
444
441
|
raise ArgumentError, "method should be a symbol" \
|
445
442
|
unless method.is_a?(Symbol)
|
446
443
|
raise ArgumentError, "path should be a string" \
|
@@ -448,10 +445,9 @@ module Stripe
|
|
448
445
|
|
449
446
|
api_base ||= config.api_base
|
450
447
|
api_key ||= config.api_key
|
451
|
-
authenticator ||= config.authenticator
|
452
448
|
params = Util.objects_to_ids(params)
|
453
449
|
|
454
|
-
|
450
|
+
check_api_key!(api_key)
|
455
451
|
|
456
452
|
body_params = nil
|
457
453
|
query_params = nil
|
@@ -464,7 +460,7 @@ module Stripe
|
|
464
460
|
|
465
461
|
query_params, path = merge_query_params(query_params, path)
|
466
462
|
|
467
|
-
headers = request_headers(api_key, method
|
463
|
+
headers = request_headers(api_key, method)
|
468
464
|
.update(Util.normalize_headers(headers))
|
469
465
|
|
470
466
|
url = api_url(path, api_base)
|
@@ -477,16 +473,13 @@ module Stripe
|
|
477
473
|
# a log-friendly variant of the encoded form. File objects are displayed
|
478
474
|
# as such instead of as their file contents.
|
479
475
|
body, body_log =
|
480
|
-
body_params ? encode_body(body_params, headers
|
481
|
-
|
482
|
-
authenticator.authenticate(method, headers, body) unless api_key
|
476
|
+
body_params ? encode_body(body_params, headers) : [nil, nil]
|
483
477
|
|
484
478
|
# stores information on the request we're about to make so that we don't
|
485
479
|
# have to pass as many parameters around for logging.
|
486
480
|
context = RequestLogContext.new
|
487
481
|
context.account = headers["Stripe-Account"]
|
488
482
|
context.api_key = api_key
|
489
|
-
context.authenticator = authenticator
|
490
483
|
context.api_version = headers["Stripe-Version"]
|
491
484
|
context.body = body_log
|
492
485
|
context.idempotency_key = headers["Idempotency-Key"]
|
@@ -523,16 +516,8 @@ module Stripe
|
|
523
516
|
(api_base || config.api_base) + url
|
524
517
|
end
|
525
518
|
|
526
|
-
private def
|
527
|
-
|
528
|
-
raise AuthenticationError, "Can't specify both API key " \
|
529
|
-
"and authenticator. Either set your API key" \
|
530
|
-
'using "Stripe.api_key = <API-KEY>", or set your authenticator ' \
|
531
|
-
'using "Stripe.authenticator = <AUTHENTICATOR>"' \
|
532
|
-
end
|
533
|
-
|
534
|
-
unless api_key || authenticator
|
535
|
-
# Default to missing API key error message for general users.
|
519
|
+
private def check_api_key!(api_key)
|
520
|
+
unless api_key
|
536
521
|
raise AuthenticationError, "No API key provided. " \
|
537
522
|
'Set your API key using "Stripe.api_key = <API-KEY>". ' \
|
538
523
|
"You can generate API keys from the Stripe web interface. " \
|
@@ -551,7 +536,7 @@ module Stripe
|
|
551
536
|
# Encodes a set of body parameters using multipart if `Content-Type` is set
|
552
537
|
# for that, or standard form-encoding otherwise. Returns the encoded body
|
553
538
|
# and a version of the encoded body that's safe to be logged.
|
554
|
-
private def encode_body(body_params, headers
|
539
|
+
private def encode_body(body_params, headers)
|
555
540
|
body = nil
|
556
541
|
flattened_params = Util.flatten_params(body_params)
|
557
542
|
|
@@ -567,22 +552,15 @@ module Stripe
|
|
567
552
|
flattened_params =
|
568
553
|
flattened_params.map { |k, v| [k, v.is_a?(String) ? v : v.to_s] }.to_h
|
569
554
|
|
570
|
-
elsif api_mode == :preview
|
571
|
-
body = JSON.generate(body_params)
|
572
|
-
headers["Content-Type"] = "application/json"
|
573
555
|
else
|
574
556
|
body = Util.encode_parameters(body_params)
|
575
557
|
end
|
576
558
|
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
# forms of certain characters introduce a lot of visual noise and it's
|
583
|
-
# nice to have a clearer format for logs.
|
584
|
-
flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
|
585
|
-
end
|
559
|
+
# We don't use `Util.encode_parameters` partly as an optimization (to not
|
560
|
+
# redo work we've already done), and partly because the encoded forms of
|
561
|
+
# certain characters introduce a lot of visual noise and it's nice to
|
562
|
+
# have a clearer format for logs.
|
563
|
+
body_log = flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
|
586
564
|
|
587
565
|
[body, body_log]
|
588
566
|
end
|
@@ -768,11 +746,10 @@ module Stripe
|
|
768
746
|
end
|
769
747
|
|
770
748
|
private def specific_api_error(resp, error_data, context)
|
771
|
-
message = error_data[:message]
|
772
749
|
Util.log_error("Stripe API error",
|
773
750
|
status: resp.http_status,
|
774
751
|
error_code: error_data[:code],
|
775
|
-
error_message: message,
|
752
|
+
error_message: error_data[:message],
|
776
753
|
error_param: error_data[:param],
|
777
754
|
error_type: error_data[:type],
|
778
755
|
idempotency_key: context.idempotency_key,
|
@@ -793,26 +770,26 @@ module Stripe
|
|
793
770
|
when 400, 404
|
794
771
|
case error_data[:type]
|
795
772
|
when "idempotency_error"
|
796
|
-
IdempotencyError.new(message, **opts)
|
773
|
+
IdempotencyError.new(error_data[:message], **opts)
|
797
774
|
else
|
798
775
|
InvalidRequestError.new(
|
799
|
-
message, error_data[:param],
|
776
|
+
error_data[:message], error_data[:param],
|
800
777
|
**opts
|
801
778
|
)
|
802
779
|
end
|
803
780
|
when 401
|
804
|
-
AuthenticationError.new(message, **opts)
|
781
|
+
AuthenticationError.new(error_data[:message], **opts)
|
805
782
|
when 402
|
806
783
|
CardError.new(
|
807
|
-
message, error_data[:param],
|
784
|
+
error_data[:message], error_data[:param],
|
808
785
|
**opts
|
809
786
|
)
|
810
787
|
when 403
|
811
|
-
PermissionError.new(message, **opts)
|
788
|
+
PermissionError.new(error_data[:message], **opts)
|
812
789
|
when 429
|
813
|
-
RateLimitError.new(message, **opts)
|
790
|
+
RateLimitError.new(error_data[:message], **opts)
|
814
791
|
else
|
815
|
-
APIError.new(message, **opts)
|
792
|
+
APIError.new(error_data[:message], **opts)
|
816
793
|
end
|
817
794
|
end
|
818
795
|
|
@@ -880,20 +857,16 @@ module Stripe
|
|
880
857
|
message + "\n\n(Network error: #{error.message})"
|
881
858
|
end
|
882
859
|
|
883
|
-
private def request_headers(api_key, method
|
860
|
+
private def request_headers(api_key, method)
|
884
861
|
user_agent = "Stripe/v1 RubyBindings/#{Stripe::VERSION}"
|
885
862
|
user_agent += " " + format_app_info(Stripe.app_info) unless Stripe.app_info.nil?
|
886
863
|
|
887
864
|
headers = {
|
888
865
|
"User-Agent" => user_agent,
|
889
866
|
"Authorization" => "Bearer #{api_key}",
|
867
|
+
"Content-Type" => "application/x-www-form-urlencoded",
|
890
868
|
}
|
891
869
|
|
892
|
-
if api_mode != :preview
|
893
|
-
# TODO: (major) don't set Content-Type if method is not post
|
894
|
-
headers["Content-Type"] = "application/x-www-form-urlencoded"
|
895
|
-
end
|
896
|
-
|
897
870
|
if config.enable_telemetry? && !@last_request_metrics.nil?
|
898
871
|
headers["X-Stripe-Client-Telemetry"] = JSON.generate(
|
899
872
|
last_request_metrics: @last_request_metrics.payload
|
@@ -906,11 +879,7 @@ module Stripe
|
|
906
879
|
headers["Idempotency-Key"] ||= SecureRandom.uuid
|
907
880
|
end
|
908
881
|
|
909
|
-
|
910
|
-
headers["Stripe-Version"] = ApiVersion::PREVIEW
|
911
|
-
elsif config.api_version
|
912
|
-
headers["Stripe-Version"] = config.api_version
|
913
|
-
end
|
882
|
+
headers["Stripe-Version"] = config.api_version if config.api_version
|
914
883
|
|
915
884
|
headers["Stripe-Account"] = config.stripe_account if config.stripe_account
|
916
885
|
|
@@ -994,8 +963,7 @@ module Stripe
|
|
994
963
|
# that we can log certain information. It's useful because it means that we
|
995
964
|
# don't have to pass around as many parameters.
|
996
965
|
class RequestLogContext
|
997
|
-
attr_accessor :body, :account, :api_key, :
|
998
|
-
:request_id
|
966
|
+
attr_accessor :body, :account, :api_key, :api_version, :idempotency_key, :method, :path, :query, :request_id
|
999
967
|
|
1000
968
|
# The idea with this method is that we might want to update some of
|
1001
969
|
# context information because a response that we've received from the API
|
@@ -25,7 +25,7 @@ module Stripe
|
|
25
25
|
# If `.logger` is set, the value of `.log_level` is ignored. The decision on
|
26
26
|
# what levels to print is entirely deferred to the logger.
|
27
27
|
class StripeConfiguration
|
28
|
-
attr_accessor :api_key, :api_version, :
|
28
|
+
attr_accessor :api_key, :api_version, :client_id, :enable_telemetry, :logger, :stripe_account
|
29
29
|
|
30
30
|
attr_reader :api_base, :uploads_base, :connect_base, :ca_bundle_path, :log_level, :initial_network_retry_delay,
|
31
31
|
# rubocop:todo Layout/LineLength
|
@@ -50,7 +50,6 @@ module Stripe
|
|
50
50
|
|
51
51
|
def initialize
|
52
52
|
@api_version = ApiVersion::CURRENT
|
53
|
-
|
54
53
|
@ca_bundle_path = Stripe::DEFAULT_CA_BUNDLE_PATH
|
55
54
|
@enable_telemetry = true
|
56
55
|
@verify_ssl_certs = true
|
data/lib/stripe/util.rb
CHANGED
@@ -7,7 +7,6 @@ module Stripe
|
|
7
7
|
# Options that a user is allowed to specify.
|
8
8
|
OPTS_USER_SPECIFIED = Set[
|
9
9
|
:api_key,
|
10
|
-
:authenticator,
|
11
10
|
:idempotency_key,
|
12
11
|
:stripe_account,
|
13
12
|
:stripe_version
|
@@ -280,13 +279,7 @@ module Stripe
|
|
280
279
|
when String
|
281
280
|
{ api_key: opts }
|
282
281
|
when Hash
|
283
|
-
|
284
|
-
# no need to check the api_key per request.
|
285
|
-
if !(opts.key?(:client) &&
|
286
|
-
opts.fetch(:client).config.authenticator) &&
|
287
|
-
opts.key?(:api_key)
|
288
|
-
check_api_key!(opts.fetch(:api_key))
|
289
|
-
end
|
282
|
+
check_api_key!(opts.fetch(:api_key)) if opts.key?(:api_key)
|
290
283
|
# Explicitly use dup here instead of clone to avoid preserving freeze
|
291
284
|
# state on input params.
|
292
285
|
opts.dup
|
data/lib/stripe/version.rb
CHANGED
data/lib/stripe.rb
CHANGED
@@ -13,7 +13,6 @@ require "set"
|
|
13
13
|
require "socket"
|
14
14
|
require "uri"
|
15
15
|
require "forwardable"
|
16
|
-
require "base64"
|
17
16
|
|
18
17
|
# Version
|
19
18
|
require "stripe/api_version"
|
@@ -46,7 +45,6 @@ require "stripe/api_resource_test_helpers"
|
|
46
45
|
require "stripe/singleton_api_resource"
|
47
46
|
require "stripe/webhook"
|
48
47
|
require "stripe/stripe_configuration"
|
49
|
-
require "stripe/request_signing_authenticator"
|
50
48
|
|
51
49
|
# Named API resources
|
52
50
|
require "stripe/resources"
|
@@ -73,7 +71,6 @@ module Stripe
|
|
73
71
|
|
74
72
|
# User configurable options
|
75
73
|
def_delegators :@config, :api_key, :api_key=
|
76
|
-
def_delegators :@config, :authenticator, :authenticator=
|
77
74
|
def_delegators :@config, :api_version, :api_version=
|
78
75
|
def_delegators :@config, :stripe_account, :stripe_account=
|
79
76
|
def_delegators :@config, :api_base, :api_base=
|
@@ -121,32 +118,6 @@ module Stripe
|
|
121
118
|
}
|
122
119
|
end
|
123
120
|
|
124
|
-
def self.add_beta_version(beta_name, version)
|
125
|
-
if api_version.include?("; #{beta_name}=")
|
126
|
-
raise "Stripe version header #{api_version} already contains entry for beta #{beta_name}"
|
127
|
-
end
|
128
|
-
|
129
|
-
self.api_version = "#{api_version}; #{beta_name}=#{version}"
|
130
|
-
end
|
131
|
-
|
132
|
-
class Preview
|
133
|
-
def self._get_default_opts(opts)
|
134
|
-
{ api_mode: :preview }.merge(opts)
|
135
|
-
end
|
136
|
-
|
137
|
-
def self.get(url, opts = {})
|
138
|
-
Stripe.raw_request(:get, url, {}, _get_default_opts(opts))
|
139
|
-
end
|
140
|
-
|
141
|
-
def self.post(url, params = {}, opts = {})
|
142
|
-
Stripe.raw_request(:post, url, params, _get_default_opts(opts))
|
143
|
-
end
|
144
|
-
|
145
|
-
def self.delete(url, opts = {})
|
146
|
-
Stripe.raw_request(:delete, url, {}, _get_default_opts(opts))
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
121
|
class RawRequest
|
151
122
|
include Stripe::APIOperations::Request
|
152
123
|
|
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: 12.5.0
|
4
|
+
version: 12.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stripe
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Stripe is the easiest way to accept payments online. See https://stripe.com
|
14
14
|
for details.
|
@@ -51,11 +51,9 @@ files:
|
|
51
51
|
- lib/stripe/multipart_encoder.rb
|
52
52
|
- lib/stripe/oauth.rb
|
53
53
|
- lib/stripe/object_types.rb
|
54
|
-
- lib/stripe/request_signing_authenticator.rb
|
55
54
|
- lib/stripe/resources.rb
|
56
55
|
- lib/stripe/resources/account.rb
|
57
56
|
- lib/stripe/resources/account_link.rb
|
58
|
-
- lib/stripe/resources/account_notice.rb
|
59
57
|
- lib/stripe/resources/account_session.rb
|
60
58
|
- lib/stripe/resources/alipay_account.rb
|
61
59
|
- lib/stripe/resources/apple_pay_domain.rb
|
@@ -73,9 +71,6 @@ files:
|
|
73
71
|
- lib/stripe/resources/billing_portal/configuration.rb
|
74
72
|
- lib/stripe/resources/billing_portal/session.rb
|
75
73
|
- lib/stripe/resources/capability.rb
|
76
|
-
- lib/stripe/resources/capital/financing_offer.rb
|
77
|
-
- lib/stripe/resources/capital/financing_summary.rb
|
78
|
-
- lib/stripe/resources/capital/financing_transaction.rb
|
79
74
|
- lib/stripe/resources/card.rb
|
80
75
|
- lib/stripe/resources/cash_balance.rb
|
81
76
|
- lib/stripe/resources/charge.rb
|
@@ -102,26 +97,20 @@ files:
|
|
102
97
|
- lib/stripe/resources/file.rb
|
103
98
|
- lib/stripe/resources/file_link.rb
|
104
99
|
- lib/stripe/resources/financial_connections/account.rb
|
105
|
-
- lib/stripe/resources/financial_connections/account_inferred_balance.rb
|
106
100
|
- lib/stripe/resources/financial_connections/account_owner.rb
|
107
101
|
- lib/stripe/resources/financial_connections/account_ownership.rb
|
108
|
-
- lib/stripe/resources/financial_connections/institution.rb
|
109
102
|
- lib/stripe/resources/financial_connections/session.rb
|
110
103
|
- lib/stripe/resources/financial_connections/transaction.rb
|
111
104
|
- lib/stripe/resources/forwarding/request.rb
|
112
105
|
- lib/stripe/resources/funding_instructions.rb
|
113
|
-
- lib/stripe/resources/gift_cards/card.rb
|
114
|
-
- lib/stripe/resources/gift_cards/transaction.rb
|
115
106
|
- lib/stripe/resources/identity/verification_report.rb
|
116
107
|
- lib/stripe/resources/identity/verification_session.rb
|
117
108
|
- lib/stripe/resources/invoice.rb
|
118
109
|
- lib/stripe/resources/invoice_item.rb
|
119
110
|
- lib/stripe/resources/invoice_line_item.rb
|
120
|
-
- lib/stripe/resources/invoice_payment.rb
|
121
111
|
- lib/stripe/resources/issuing/authorization.rb
|
122
112
|
- lib/stripe/resources/issuing/card.rb
|
123
113
|
- lib/stripe/resources/issuing/cardholder.rb
|
124
|
-
- lib/stripe/resources/issuing/credit_underwriting_record.rb
|
125
114
|
- lib/stripe/resources/issuing/dispute.rb
|
126
115
|
- lib/stripe/resources/issuing/personalization_design.rb
|
127
116
|
- lib/stripe/resources/issuing/physical_bundle.rb
|
@@ -130,8 +119,6 @@ files:
|
|
130
119
|
- lib/stripe/resources/line_item.rb
|
131
120
|
- lib/stripe/resources/login_link.rb
|
132
121
|
- lib/stripe/resources/mandate.rb
|
133
|
-
- lib/stripe/resources/margin.rb
|
134
|
-
- lib/stripe/resources/order.rb
|
135
122
|
- lib/stripe/resources/payment_intent.rb
|
136
123
|
- lib/stripe/resources/payment_link.rb
|
137
124
|
- lib/stripe/resources/payment_method.rb
|
@@ -145,9 +132,6 @@ files:
|
|
145
132
|
- lib/stripe/resources/product_feature.rb
|
146
133
|
- lib/stripe/resources/promotion_code.rb
|
147
134
|
- lib/stripe/resources/quote.rb
|
148
|
-
- lib/stripe/resources/quote_phase.rb
|
149
|
-
- lib/stripe/resources/quote_preview_invoice.rb
|
150
|
-
- lib/stripe/resources/quote_preview_subscription_schedule.rb
|
151
135
|
- lib/stripe/resources/radar/early_fraud_warning.rb
|
152
136
|
- lib/stripe/resources/radar/value_list.rb
|
153
137
|
- lib/stripe/resources/radar/value_list_item.rb
|
@@ -166,10 +150,8 @@ files:
|
|
166
150
|
- lib/stripe/resources/subscription.rb
|
167
151
|
- lib/stripe/resources/subscription_item.rb
|
168
152
|
- lib/stripe/resources/subscription_schedule.rb
|
169
|
-
- lib/stripe/resources/tax/association.rb
|
170
153
|
- lib/stripe/resources/tax/calculation.rb
|
171
154
|
- lib/stripe/resources/tax/calculation_line_item.rb
|
172
|
-
- lib/stripe/resources/tax/form.rb
|
173
155
|
- lib/stripe/resources/tax/registration.rb
|
174
156
|
- lib/stripe/resources/tax/settings.rb
|
175
157
|
- lib/stripe/resources/tax/transaction.rb
|
@@ -231,9 +213,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
231
213
|
version: 2.3.0
|
232
214
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
233
215
|
requirements:
|
234
|
-
- - "
|
216
|
+
- - ">="
|
235
217
|
- !ruby/object:Gem::Version
|
236
|
-
version:
|
218
|
+
version: '0'
|
237
219
|
requirements: []
|
238
220
|
rubygems_version: 3.3.27
|
239
221
|
signing_key:
|
@@ -1,79 +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
|
-
raise ArgumentError, "auth_token must be a string" unless auth_token.is_a?(String)
|
17
|
-
raise ArgumentError, "sign_lambda must be a lambda" unless sign_lambda.is_a?(Proc)
|
18
|
-
|
19
|
-
@auth_token = auth_token
|
20
|
-
@sign_lambda = sign_lambda
|
21
|
-
end
|
22
|
-
|
23
|
-
def authenticate(method, headers, body)
|
24
|
-
covered_headers = [CONTENT_TYPE_HEADER_NAME,
|
25
|
-
CONTENT_DIGEST_HEADER_NAME,
|
26
|
-
STRIPE_CONTEXT_HEADER_NAME,
|
27
|
-
STRIPE_ACCOUNT_HEADER_NAME,
|
28
|
-
AUTHORIZATION_HEADER_NAME,]
|
29
|
-
|
30
|
-
headers[AUTHORIZATION_HEADER_NAME] = "STRIPE-V2-SIG #{auth_token}"
|
31
|
-
|
32
|
-
if method == :get
|
33
|
-
covered_headers -= [CONTENT_TYPE_HEADER_NAME,
|
34
|
-
CONTENT_DIGEST_HEADER_NAME,]
|
35
|
-
else
|
36
|
-
content = body || ""
|
37
|
-
headers[CONTENT_DIGEST_HEADER_NAME] =
|
38
|
-
%(sha-256=:#{content_digest(content)}:)
|
39
|
-
end
|
40
|
-
|
41
|
-
covered_headers_formatted = covered_headers
|
42
|
-
.map { |string| %("#{string.downcase}") }
|
43
|
-
.join(" ")
|
44
|
-
|
45
|
-
signature_input = "(#{covered_headers_formatted});created=#{created_time}"
|
46
|
-
|
47
|
-
inputs = covered_headers
|
48
|
-
.map { |header| %("#{header.downcase}": #{headers[header]}) }
|
49
|
-
.join("\n")
|
50
|
-
|
51
|
-
signature_base = %(#{inputs}\n"@signature-params": #{signature_input})
|
52
|
-
.encode(Encoding::UTF_8)
|
53
|
-
|
54
|
-
headers[SIGNATURE_INPUT_HEADER_NAME] = "sig1=#{signature_input}"
|
55
|
-
|
56
|
-
headers[SIGNATURE_HEADER_NAME] =
|
57
|
-
"sig1=:#{encoded_signature(signature_base)}:"
|
58
|
-
end
|
59
|
-
|
60
|
-
private def sign(signature_base)
|
61
|
-
@sign_lambda.call(signature_base)
|
62
|
-
end
|
63
|
-
|
64
|
-
private def encoded_signature(signature_base)
|
65
|
-
Base64.strict_encode64(sign(signature_base))
|
66
|
-
rescue StandardError
|
67
|
-
raise AuthenticationError, "Encountered '#{e.message} (#{e.class})' " \
|
68
|
-
"when calculating request signature."
|
69
|
-
end
|
70
|
-
|
71
|
-
private def content_digest(content)
|
72
|
-
Base64.strict_encode64(OpenSSL::Digest.new("SHA256").digest(content))
|
73
|
-
end
|
74
|
-
|
75
|
-
private def created_time
|
76
|
-
Time.now.to_i
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
# File generated from our OpenAPI spec
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module Stripe
|
5
|
-
# A notice to a Connected account. Notice can be sent by Stripe on your behalf or you can opt to send the notices yourself.
|
6
|
-
#
|
7
|
-
# See the [guide to send notices](https://stripe.com/docs/issuing/compliance-us/issuing-regulated-customer-notices) to your connected accounts.
|
8
|
-
class AccountNotice < APIResource
|
9
|
-
extend Stripe::APIOperations::List
|
10
|
-
include Stripe::APIOperations::Save
|
11
|
-
|
12
|
-
OBJECT_NAME = "account_notice"
|
13
|
-
def self.object_name
|
14
|
-
"account_notice"
|
15
|
-
end
|
16
|
-
|
17
|
-
# Retrieves a list of AccountNotice objects. The objects are sorted in descending order by creation date, with the most-recently-created object appearing first.
|
18
|
-
def self.list(filters = {}, opts = {})
|
19
|
-
request_stripe_object(method: :get, path: "/v1/account_notices", params: filters, opts: opts)
|
20
|
-
end
|
21
|
-
|
22
|
-
# Updates an AccountNotice object.
|
23
|
-
def self.update(id, params = {}, opts = {})
|
24
|
-
request_stripe_object(
|
25
|
-
method: :post,
|
26
|
-
path: format("/v1/account_notices/%<id>s", { id: CGI.escape(id) }),
|
27
|
-
params: params,
|
28
|
-
opts: opts
|
29
|
-
)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,49 +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
|
-
def self.object_name
|
13
|
-
"capital.financing_offer"
|
14
|
-
end
|
15
|
-
|
16
|
-
# Retrieves the financing offers available for Connected accounts that belong to your platform.
|
17
|
-
def self.list(filters = {}, opts = {})
|
18
|
-
request_stripe_object(
|
19
|
-
method: :get,
|
20
|
-
path: "/v1/capital/financing_offers",
|
21
|
-
params: filters,
|
22
|
-
opts: opts
|
23
|
-
)
|
24
|
-
end
|
25
|
-
|
26
|
-
# Acknowledges that platform has received and delivered the financing_offer to
|
27
|
-
# the intended merchant recipient.
|
28
|
-
def mark_delivered(params = {}, opts = {})
|
29
|
-
request_stripe_object(
|
30
|
-
method: :post,
|
31
|
-
path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(self["id"]) }),
|
32
|
-
params: params,
|
33
|
-
opts: opts
|
34
|
-
)
|
35
|
-
end
|
36
|
-
|
37
|
-
# Acknowledges that platform has received and delivered the financing_offer to
|
38
|
-
# the intended merchant recipient.
|
39
|
-
def self.mark_delivered(financing_offer, params = {}, opts = {})
|
40
|
-
request_stripe_object(
|
41
|
-
method: :post,
|
42
|
-
path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(financing_offer) }),
|
43
|
-
params: params,
|
44
|
-
opts: opts
|
45
|
-
)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
@@ -1,15 +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
|
-
def self.object_name
|
11
|
-
"capital.financing_summary"
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,27 +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
|
-
def self.object_name
|
12
|
-
"capital.financing_transaction"
|
13
|
-
end
|
14
|
-
|
15
|
-
# Returns a list of financing transactions. The transactions are returned in sorted order,
|
16
|
-
# with the most recent transactions appearing first.
|
17
|
-
def self.list(filters = {}, opts = {})
|
18
|
-
request_stripe_object(
|
19
|
-
method: :get,
|
20
|
-
path: "/v1/capital/financing_transactions",
|
21
|
-
params: filters,
|
22
|
-
opts: opts
|
23
|
-
)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,14 +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 AccountInferredBalance < APIResource
|
8
|
-
OBJECT_NAME = "financial_connections.account_inferred_balance"
|
9
|
-
def self.object_name
|
10
|
-
"financial_connections.account_inferred_balance"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|