stripe 11.4.0.pre.beta.1 → 11.4.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 +662 -1317
- data/Gemfile +0 -4
- data/OPENAPI_VERSION +1 -1
- data/README.md +0 -11
- data/VERSION +1 -1
- data/lib/stripe/api_operations/nested_resource.rb +22 -2
- data/lib/stripe/api_operations/request.rb +1 -2
- data/lib/stripe/api_version.rb +0 -1
- data/lib/stripe/object_types.rb +0 -16
- data/lib/stripe/resources/financial_connections/account.rb +0 -3
- data/lib/stripe/resources/invoice.rb +0 -99
- 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/treasury/outbound_payment.rb +20 -0
- data/lib/stripe/resources/treasury/outbound_transfer.rb +20 -0
- data/lib/stripe/resources.rb +0 -15
- data/lib/stripe/stripe_client.rb +36 -63
- 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 -54
- metadata +4 -20
- 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/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/form.rb +0 -49
data/lib/stripe/resources.rb
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
|
4
4
|
require "stripe/resources/account"
|
5
5
|
require "stripe/resources/account_link"
|
6
|
-
require "stripe/resources/account_notice"
|
7
6
|
require "stripe/resources/account_session"
|
8
7
|
require "stripe/resources/apple_pay_domain"
|
9
8
|
require "stripe/resources/application_fee"
|
@@ -19,9 +18,6 @@ require "stripe/resources/billing/meter_event_summary"
|
|
19
18
|
require "stripe/resources/billing_portal/configuration"
|
20
19
|
require "stripe/resources/billing_portal/session"
|
21
20
|
require "stripe/resources/capability"
|
22
|
-
require "stripe/resources/capital/financing_offer"
|
23
|
-
require "stripe/resources/capital/financing_summary"
|
24
|
-
require "stripe/resources/capital/financing_transaction"
|
25
21
|
require "stripe/resources/card"
|
26
22
|
require "stripe/resources/cash_balance"
|
27
23
|
require "stripe/resources/charge"
|
@@ -48,25 +44,20 @@ require "stripe/resources/exchange_rate"
|
|
48
44
|
require "stripe/resources/file"
|
49
45
|
require "stripe/resources/file_link"
|
50
46
|
require "stripe/resources/financial_connections/account"
|
51
|
-
require "stripe/resources/financial_connections/account_inferred_balance"
|
52
47
|
require "stripe/resources/financial_connections/account_owner"
|
53
48
|
require "stripe/resources/financial_connections/account_ownership"
|
54
49
|
require "stripe/resources/financial_connections/session"
|
55
50
|
require "stripe/resources/financial_connections/transaction"
|
56
51
|
require "stripe/resources/forwarding/request"
|
57
52
|
require "stripe/resources/funding_instructions"
|
58
|
-
require "stripe/resources/gift_cards/card"
|
59
|
-
require "stripe/resources/gift_cards/transaction"
|
60
53
|
require "stripe/resources/identity/verification_report"
|
61
54
|
require "stripe/resources/identity/verification_session"
|
62
55
|
require "stripe/resources/invoice"
|
63
56
|
require "stripe/resources/invoice_item"
|
64
57
|
require "stripe/resources/invoice_line_item"
|
65
|
-
require "stripe/resources/invoice_payment"
|
66
58
|
require "stripe/resources/issuing/authorization"
|
67
59
|
require "stripe/resources/issuing/card"
|
68
60
|
require "stripe/resources/issuing/cardholder"
|
69
|
-
require "stripe/resources/issuing/credit_underwriting_record"
|
70
61
|
require "stripe/resources/issuing/dispute"
|
71
62
|
require "stripe/resources/issuing/personalization_design"
|
72
63
|
require "stripe/resources/issuing/physical_bundle"
|
@@ -75,8 +66,6 @@ require "stripe/resources/issuing/transaction"
|
|
75
66
|
require "stripe/resources/line_item"
|
76
67
|
require "stripe/resources/login_link"
|
77
68
|
require "stripe/resources/mandate"
|
78
|
-
require "stripe/resources/margin"
|
79
|
-
require "stripe/resources/order"
|
80
69
|
require "stripe/resources/payment_intent"
|
81
70
|
require "stripe/resources/payment_link"
|
82
71
|
require "stripe/resources/payment_method"
|
@@ -90,9 +79,6 @@ require "stripe/resources/product"
|
|
90
79
|
require "stripe/resources/product_feature"
|
91
80
|
require "stripe/resources/promotion_code"
|
92
81
|
require "stripe/resources/quote"
|
93
|
-
require "stripe/resources/quote_phase"
|
94
|
-
require "stripe/resources/quote_preview_invoice"
|
95
|
-
require "stripe/resources/quote_preview_subscription_schedule"
|
96
82
|
require "stripe/resources/radar/early_fraud_warning"
|
97
83
|
require "stripe/resources/radar/value_list"
|
98
84
|
require "stripe/resources/radar/value_list_item"
|
@@ -112,7 +98,6 @@ require "stripe/resources/subscription_item"
|
|
112
98
|
require "stripe/resources/subscription_schedule"
|
113
99
|
require "stripe/resources/tax/calculation"
|
114
100
|
require "stripe/resources/tax/calculation_line_item"
|
115
|
-
require "stripe/resources/tax/form"
|
116
101
|
require "stripe/resources/tax/registration"
|
117
102
|
require "stripe/resources/tax/settings"
|
118
103
|
require "stripe/resources/tax/transaction"
|
data/lib/stripe/stripe_client.rb
CHANGED
@@ -18,6 +18,11 @@ module Stripe
|
|
18
18
|
@system_profiler = SystemProfiler.new
|
19
19
|
@last_request_metrics = nil
|
20
20
|
|
21
|
+
# The following attribute is only used to log whether or not
|
22
|
+
# StripeClient#request has been called. To be removed in a
|
23
|
+
# future major version.
|
24
|
+
@usage = []
|
25
|
+
|
21
26
|
@config = case config_arg
|
22
27
|
when Hash
|
23
28
|
Stripe.config.reverse_duplicate_merge(config_arg)
|
@@ -186,6 +191,7 @@ module Stripe
|
|
186
191
|
# charge, resp = client.request { Charge.create }
|
187
192
|
#
|
188
193
|
def request
|
194
|
+
@usage = ["stripe_client_request"]
|
189
195
|
old_stripe_client = self.class.current_thread_context.active_client
|
190
196
|
self.class.current_thread_context.active_client = self
|
191
197
|
|
@@ -200,16 +206,16 @@ module Stripe
|
|
200
206
|
res = yield
|
201
207
|
[res, self.class.current_thread_context.last_responses[object_id]]
|
202
208
|
ensure
|
209
|
+
@usage = []
|
203
210
|
self.class.current_thread_context.active_client = old_stripe_client
|
204
211
|
self.class.current_thread_context.last_responses.delete(object_id)
|
205
212
|
end
|
206
213
|
end
|
207
214
|
|
208
215
|
def execute_request(method, path,
|
209
|
-
api_base: nil, api_key: nil,
|
210
|
-
headers: {}, params: {}, api_mode: nil, usage: [])
|
216
|
+
api_base: nil, api_key: nil, headers: {}, params: {}, usage: [])
|
211
217
|
http_resp, api_key = execute_request_internal(
|
212
|
-
method, path, api_base, api_key, headers, params,
|
218
|
+
method, path, api_base, api_key, headers, params, usage
|
213
219
|
)
|
214
220
|
|
215
221
|
begin
|
@@ -240,7 +246,6 @@ module Stripe
|
|
240
246
|
def execute_request_stream(method, path,
|
241
247
|
api_base: nil, api_key: nil, usage: [],
|
242
248
|
headers: {}, params: {},
|
243
|
-
api_mode: nil,
|
244
249
|
&read_body_chunk_block)
|
245
250
|
unless block_given?
|
246
251
|
raise ArgumentError,
|
@@ -248,8 +253,7 @@ module Stripe
|
|
248
253
|
end
|
249
254
|
|
250
255
|
http_resp, api_key = execute_request_internal(
|
251
|
-
method, path, api_base, api_key,
|
252
|
-
headers, params, api_mode, usage, &read_body_chunk_block
|
256
|
+
method, path, api_base, api_key, headers, params, usage, &read_body_chunk_block
|
253
257
|
)
|
254
258
|
|
255
259
|
# When the read_body_chunk_block is given, we no longer have access to the
|
@@ -428,8 +432,8 @@ module Stripe
|
|
428
432
|
end
|
429
433
|
|
430
434
|
private def execute_request_internal(method, path,
|
431
|
-
api_base, api_key, headers, params,
|
432
|
-
|
435
|
+
api_base, api_key, headers, params, usage,
|
436
|
+
&read_body_chunk_block)
|
433
437
|
raise ArgumentError, "method should be a symbol" \
|
434
438
|
unless method.is_a?(Symbol)
|
435
439
|
raise ArgumentError, "path should be a string" \
|
@@ -437,10 +441,9 @@ module Stripe
|
|
437
441
|
|
438
442
|
api_base ||= config.api_base
|
439
443
|
api_key ||= config.api_key
|
440
|
-
authenticator ||= config.authenticator
|
441
444
|
params = Util.objects_to_ids(params)
|
442
445
|
|
443
|
-
|
446
|
+
check_api_key!(api_key)
|
444
447
|
|
445
448
|
body_params = nil
|
446
449
|
query_params = nil
|
@@ -453,9 +456,8 @@ module Stripe
|
|
453
456
|
|
454
457
|
query_params, path = merge_query_params(query_params, path)
|
455
458
|
|
456
|
-
headers = request_headers(api_key, method
|
459
|
+
headers = request_headers(api_key, method)
|
457
460
|
.update(Util.normalize_headers(headers))
|
458
|
-
|
459
461
|
url = api_url(path, api_base)
|
460
462
|
|
461
463
|
# Merge given query parameters with any already encoded in the path.
|
@@ -466,16 +468,13 @@ module Stripe
|
|
466
468
|
# a log-friendly variant of the encoded form. File objects are displayed
|
467
469
|
# as such instead of as their file contents.
|
468
470
|
body, body_log =
|
469
|
-
body_params ? encode_body(body_params, headers
|
470
|
-
|
471
|
-
authenticator.authenticate(method, headers, body) unless api_key
|
471
|
+
body_params ? encode_body(body_params, headers) : [nil, nil]
|
472
472
|
|
473
473
|
# stores information on the request we're about to make so that we don't
|
474
474
|
# have to pass as many parameters around for logging.
|
475
475
|
context = RequestLogContext.new
|
476
476
|
context.account = headers["Stripe-Account"]
|
477
477
|
context.api_key = api_key
|
478
|
-
context.authenticator = authenticator
|
479
478
|
context.api_version = headers["Stripe-Version"]
|
480
479
|
context.body = body_log
|
481
480
|
context.idempotency_key = headers["Idempotency-Key"]
|
@@ -512,16 +511,8 @@ module Stripe
|
|
512
511
|
(api_base || config.api_base) + url
|
513
512
|
end
|
514
513
|
|
515
|
-
private def
|
516
|
-
|
517
|
-
raise AuthenticationError, "Can't specify both API key " \
|
518
|
-
"and authenticator. Either set your API key" \
|
519
|
-
'using "Stripe.api_key = <API-KEY>", or set your authenticator ' \
|
520
|
-
'using "Stripe.authenticator = <AUTHENTICATOR>"' \
|
521
|
-
end
|
522
|
-
|
523
|
-
unless api_key || authenticator
|
524
|
-
# Default to missing API key error message for general users.
|
514
|
+
private def check_api_key!(api_key)
|
515
|
+
unless api_key
|
525
516
|
raise AuthenticationError, "No API key provided. " \
|
526
517
|
'Set your API key using "Stripe.api_key = <API-KEY>". ' \
|
527
518
|
"You can generate API keys from the Stripe web interface. " \
|
@@ -540,7 +531,7 @@ module Stripe
|
|
540
531
|
# Encodes a set of body parameters using multipart if `Content-Type` is set
|
541
532
|
# for that, or standard form-encoding otherwise. Returns the encoded body
|
542
533
|
# and a version of the encoded body that's safe to be logged.
|
543
|
-
private def encode_body(body_params, headers
|
534
|
+
private def encode_body(body_params, headers)
|
544
535
|
body = nil
|
545
536
|
flattened_params = Util.flatten_params(body_params)
|
546
537
|
|
@@ -556,22 +547,15 @@ module Stripe
|
|
556
547
|
flattened_params =
|
557
548
|
flattened_params.map { |k, v| [k, v.is_a?(String) ? v : v.to_s] }.to_h
|
558
549
|
|
559
|
-
elsif api_mode == :preview
|
560
|
-
body = JSON.generate(body_params)
|
561
|
-
headers["Content-Type"] = "application/json"
|
562
550
|
else
|
563
551
|
body = Util.encode_parameters(body_params)
|
564
552
|
end
|
565
553
|
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
# forms of certain characters introduce a lot of visual noise and it's
|
572
|
-
# nice to have a clearer format for logs.
|
573
|
-
flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
|
574
|
-
end
|
554
|
+
# We don't use `Util.encode_parameters` partly as an optimization (to not
|
555
|
+
# redo work we've already done), and partly because the encoded forms of
|
556
|
+
# certain characters introduce a lot of visual noise and it's nice to
|
557
|
+
# have a clearer format for logs.
|
558
|
+
body_log = flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
|
575
559
|
|
576
560
|
[body, body_log]
|
577
561
|
end
|
@@ -606,7 +590,7 @@ module Stripe
|
|
606
590
|
if config.enable_telemetry? && context.request_id
|
607
591
|
request_duration_ms = (request_duration * 1000).to_i
|
608
592
|
@last_request_metrics =
|
609
|
-
StripeRequestMetrics.new(context.request_id, request_duration_ms, usage: usage)
|
593
|
+
StripeRequestMetrics.new(context.request_id, request_duration_ms, usage: usage + @usage)
|
610
594
|
end
|
611
595
|
|
612
596
|
# We rescue all exceptions from a request so that we have an easy spot to
|
@@ -757,11 +741,10 @@ module Stripe
|
|
757
741
|
end
|
758
742
|
|
759
743
|
private def specific_api_error(resp, error_data, context)
|
760
|
-
message = error_data[:message]
|
761
744
|
Util.log_error("Stripe API error",
|
762
745
|
status: resp.http_status,
|
763
746
|
error_code: error_data[:code],
|
764
|
-
error_message: message,
|
747
|
+
error_message: error_data[:message],
|
765
748
|
error_param: error_data[:param],
|
766
749
|
error_type: error_data[:type],
|
767
750
|
idempotency_key: context.idempotency_key,
|
@@ -782,26 +765,26 @@ module Stripe
|
|
782
765
|
when 400, 404
|
783
766
|
case error_data[:type]
|
784
767
|
when "idempotency_error"
|
785
|
-
IdempotencyError.new(message, **opts)
|
768
|
+
IdempotencyError.new(error_data[:message], **opts)
|
786
769
|
else
|
787
770
|
InvalidRequestError.new(
|
788
|
-
message, error_data[:param],
|
771
|
+
error_data[:message], error_data[:param],
|
789
772
|
**opts
|
790
773
|
)
|
791
774
|
end
|
792
775
|
when 401
|
793
|
-
AuthenticationError.new(message, **opts)
|
776
|
+
AuthenticationError.new(error_data[:message], **opts)
|
794
777
|
when 402
|
795
778
|
CardError.new(
|
796
|
-
message, error_data[:param],
|
779
|
+
error_data[:message], error_data[:param],
|
797
780
|
**opts
|
798
781
|
)
|
799
782
|
when 403
|
800
|
-
PermissionError.new(message, **opts)
|
783
|
+
PermissionError.new(error_data[:message], **opts)
|
801
784
|
when 429
|
802
|
-
RateLimitError.new(message, **opts)
|
785
|
+
RateLimitError.new(error_data[:message], **opts)
|
803
786
|
else
|
804
|
-
APIError.new(message, **opts)
|
787
|
+
APIError.new(error_data[:message], **opts)
|
805
788
|
end
|
806
789
|
end
|
807
790
|
|
@@ -869,20 +852,16 @@ module Stripe
|
|
869
852
|
message + "\n\n(Network error: #{error.message})"
|
870
853
|
end
|
871
854
|
|
872
|
-
private def request_headers(api_key, method
|
855
|
+
private def request_headers(api_key, method)
|
873
856
|
user_agent = "Stripe/v1 RubyBindings/#{Stripe::VERSION}"
|
874
857
|
user_agent += " " + format_app_info(Stripe.app_info) unless Stripe.app_info.nil?
|
875
858
|
|
876
859
|
headers = {
|
877
860
|
"User-Agent" => user_agent,
|
878
861
|
"Authorization" => "Bearer #{api_key}",
|
862
|
+
"Content-Type" => "application/x-www-form-urlencoded",
|
879
863
|
}
|
880
864
|
|
881
|
-
if api_mode != :preview
|
882
|
-
# TODO: (major) don't set Content-Type if method is not post
|
883
|
-
headers["Content-Type"] = "application/x-www-form-urlencoded"
|
884
|
-
end
|
885
|
-
|
886
865
|
if config.enable_telemetry? && !@last_request_metrics.nil?
|
887
866
|
headers["X-Stripe-Client-Telemetry"] = JSON.generate(
|
888
867
|
last_request_metrics: @last_request_metrics.payload
|
@@ -895,12 +874,7 @@ module Stripe
|
|
895
874
|
headers["Idempotency-Key"] ||= SecureRandom.uuid
|
896
875
|
end
|
897
876
|
|
898
|
-
|
899
|
-
headers["Stripe-Version"] = ApiVersion::PREVIEW
|
900
|
-
elsif config.api_version
|
901
|
-
headers["Stripe-Version"] = config.api_version
|
902
|
-
end
|
903
|
-
|
877
|
+
headers["Stripe-Version"] = config.api_version if config.api_version
|
904
878
|
headers["Stripe-Account"] = config.stripe_account if config.stripe_account
|
905
879
|
|
906
880
|
user_agent = @system_profiler.user_agent
|
@@ -983,8 +957,7 @@ module Stripe
|
|
983
957
|
# that we can log certain information. It's useful because it means that we
|
984
958
|
# don't have to pass around as many parameters.
|
985
959
|
class RequestLogContext
|
986
|
-
attr_accessor :body, :account, :api_key, :
|
987
|
-
:request_id
|
960
|
+
attr_accessor :body, :account, :api_key, :api_version, :idempotency_key, :method, :path, :query, :request_id
|
988
961
|
|
989
962
|
# The idea with this method is that we might want to update some of
|
990
963
|
# 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=
|
@@ -120,57 +117,6 @@ module Stripe
|
|
120
117
|
version: version,
|
121
118
|
}
|
122
119
|
end
|
123
|
-
|
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
|
-
class RawRequest
|
151
|
-
include Stripe::APIOperations::Request
|
152
|
-
|
153
|
-
def initialize
|
154
|
-
@opts = {}
|
155
|
-
end
|
156
|
-
|
157
|
-
def execute(method, url, params = {}, opts = {}, usage = [])
|
158
|
-
resp, = execute_resource_request(method, url, params, opts, usage)
|
159
|
-
|
160
|
-
resp
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
# Sends a request to Stripe REST API
|
165
|
-
def self.raw_request(method, url, params = {}, opts = {})
|
166
|
-
req = RawRequest.new
|
167
|
-
req.execute(method, url, params, opts, ["raw_request"])
|
168
|
-
end
|
169
|
-
|
170
|
-
def self.deserialize(data)
|
171
|
-
data = JSON.parse(data) if data.is_a?(String)
|
172
|
-
Util.convert_to_stripe_object(data, {})
|
173
|
-
end
|
174
120
|
end
|
175
121
|
|
176
122
|
Stripe.log_level = ENV["STRIPE_LOG"] unless ENV["STRIPE_LOG"].nil?
|
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: 11.4.0
|
4
|
+
version: 11.4.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-05-
|
11
|
+
date: 2024-05-09 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
|
@@ -72,9 +70,6 @@ files:
|
|
72
70
|
- lib/stripe/resources/billing_portal/configuration.rb
|
73
71
|
- lib/stripe/resources/billing_portal/session.rb
|
74
72
|
- lib/stripe/resources/capability.rb
|
75
|
-
- lib/stripe/resources/capital/financing_offer.rb
|
76
|
-
- lib/stripe/resources/capital/financing_summary.rb
|
77
|
-
- lib/stripe/resources/capital/financing_transaction.rb
|
78
73
|
- lib/stripe/resources/card.rb
|
79
74
|
- lib/stripe/resources/cash_balance.rb
|
80
75
|
- lib/stripe/resources/charge.rb
|
@@ -101,25 +96,20 @@ files:
|
|
101
96
|
- lib/stripe/resources/file.rb
|
102
97
|
- lib/stripe/resources/file_link.rb
|
103
98
|
- lib/stripe/resources/financial_connections/account.rb
|
104
|
-
- lib/stripe/resources/financial_connections/account_inferred_balance.rb
|
105
99
|
- lib/stripe/resources/financial_connections/account_owner.rb
|
106
100
|
- lib/stripe/resources/financial_connections/account_ownership.rb
|
107
101
|
- lib/stripe/resources/financial_connections/session.rb
|
108
102
|
- lib/stripe/resources/financial_connections/transaction.rb
|
109
103
|
- lib/stripe/resources/forwarding/request.rb
|
110
104
|
- lib/stripe/resources/funding_instructions.rb
|
111
|
-
- lib/stripe/resources/gift_cards/card.rb
|
112
|
-
- lib/stripe/resources/gift_cards/transaction.rb
|
113
105
|
- lib/stripe/resources/identity/verification_report.rb
|
114
106
|
- lib/stripe/resources/identity/verification_session.rb
|
115
107
|
- lib/stripe/resources/invoice.rb
|
116
108
|
- lib/stripe/resources/invoice_item.rb
|
117
109
|
- lib/stripe/resources/invoice_line_item.rb
|
118
|
-
- lib/stripe/resources/invoice_payment.rb
|
119
110
|
- lib/stripe/resources/issuing/authorization.rb
|
120
111
|
- lib/stripe/resources/issuing/card.rb
|
121
112
|
- lib/stripe/resources/issuing/cardholder.rb
|
122
|
-
- lib/stripe/resources/issuing/credit_underwriting_record.rb
|
123
113
|
- lib/stripe/resources/issuing/dispute.rb
|
124
114
|
- lib/stripe/resources/issuing/personalization_design.rb
|
125
115
|
- lib/stripe/resources/issuing/physical_bundle.rb
|
@@ -128,8 +118,6 @@ files:
|
|
128
118
|
- lib/stripe/resources/line_item.rb
|
129
119
|
- lib/stripe/resources/login_link.rb
|
130
120
|
- lib/stripe/resources/mandate.rb
|
131
|
-
- lib/stripe/resources/margin.rb
|
132
|
-
- lib/stripe/resources/order.rb
|
133
121
|
- lib/stripe/resources/payment_intent.rb
|
134
122
|
- lib/stripe/resources/payment_link.rb
|
135
123
|
- lib/stripe/resources/payment_method.rb
|
@@ -143,9 +131,6 @@ files:
|
|
143
131
|
- lib/stripe/resources/product_feature.rb
|
144
132
|
- lib/stripe/resources/promotion_code.rb
|
145
133
|
- lib/stripe/resources/quote.rb
|
146
|
-
- lib/stripe/resources/quote_phase.rb
|
147
|
-
- lib/stripe/resources/quote_preview_invoice.rb
|
148
|
-
- lib/stripe/resources/quote_preview_subscription_schedule.rb
|
149
134
|
- lib/stripe/resources/radar/early_fraud_warning.rb
|
150
135
|
- lib/stripe/resources/radar/value_list.rb
|
151
136
|
- lib/stripe/resources/radar/value_list_item.rb
|
@@ -166,7 +151,6 @@ files:
|
|
166
151
|
- lib/stripe/resources/subscription_schedule.rb
|
167
152
|
- lib/stripe/resources/tax/calculation.rb
|
168
153
|
- lib/stripe/resources/tax/calculation_line_item.rb
|
169
|
-
- lib/stripe/resources/tax/form.rb
|
170
154
|
- lib/stripe/resources/tax/registration.rb
|
171
155
|
- lib/stripe/resources/tax/settings.rb
|
172
156
|
- lib/stripe/resources/tax/transaction.rb
|
@@ -228,9 +212,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
228
212
|
version: 2.3.0
|
229
213
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
230
214
|
requirements:
|
231
|
-
- - "
|
215
|
+
- - ">="
|
232
216
|
- !ruby/object:Gem::Version
|
233
|
-
version:
|
217
|
+
version: '0'
|
234
218
|
requirements: []
|
235
219
|
rubygems_version: 3.3.27
|
236
220
|
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
|