stripe 10.15.0.pre.beta.1 → 11.0.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 +72 -326
- data/Makefile +1 -1
- data/OPENAPI_VERSION +1 -1
- data/README.md +5 -18
- data/VERSION +1 -1
- data/lib/stripe/api_operations/request.rb +3 -4
- data/lib/stripe/api_operations/save.rb +1 -1
- data/lib/stripe/api_operations/singleton_save.rb +1 -1
- data/lib/stripe/api_resource.rb +3 -3
- data/lib/stripe/api_version.rb +1 -2
- 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 -113
- data/lib/stripe/resources/payment_intent.rb +0 -50
- data/lib/stripe/resources/product.rb +1 -1
- 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 -15
- data/lib/stripe/stripe_client.rb +36 -74
- data/lib/stripe/stripe_configuration.rb +1 -2
- data/lib/stripe/stripe_object.rb +8 -3
- data/lib/stripe/util.rb +4 -11
- data/lib/stripe/version.rb +1 -1
- data/lib/stripe.rb +0 -54
- data/stripe.gemspec +4 -5
- metadata +6 -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/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/{bin → exe}/stripe-console +0 -0
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
@@ -110,7 +110,7 @@ module Stripe
|
|
110
110
|
# both socket errors that may represent an intermittent problem and some
|
111
111
|
# special HTTP statuses.
|
112
112
|
def self.should_retry?(error,
|
113
|
-
|
113
|
+
num_retries:, config: Stripe.config)
|
114
114
|
return false if num_retries >= config.max_network_retries
|
115
115
|
|
116
116
|
case error
|
@@ -143,15 +143,12 @@ module Stripe
|
|
143
143
|
# These 429s are safe to retry.
|
144
144
|
return true if error.http_status == 429 && error.code == "lock_timeout"
|
145
145
|
|
146
|
-
# 500
|
146
|
+
# Retry on 500, 503, and other internal errors.
|
147
147
|
#
|
148
|
-
#
|
149
|
-
#
|
150
|
-
#
|
151
|
-
|
152
|
-
|
153
|
-
# 503 Service Unavailable
|
154
|
-
error.http_status == 503
|
148
|
+
# Note that we expect the stripe-should-retry header to be false
|
149
|
+
# in most cases when a 500 is returned, since our idempotency framework
|
150
|
+
# would typically replay it anyway.
|
151
|
+
true if error.http_status >= 500
|
155
152
|
else
|
156
153
|
false
|
157
154
|
end
|
@@ -209,10 +206,9 @@ module Stripe
|
|
209
206
|
end
|
210
207
|
|
211
208
|
def execute_request(method, path,
|
212
|
-
api_base: nil, api_key: nil,
|
213
|
-
headers: {}, params: {}, api_mode: nil, usage: [])
|
209
|
+
api_base: nil, api_key: nil, headers: {}, params: {}, usage: [])
|
214
210
|
http_resp, api_key = execute_request_internal(
|
215
|
-
method, path, api_base, api_key, headers, params,
|
211
|
+
method, path, api_base, api_key, headers, params, usage
|
216
212
|
)
|
217
213
|
|
218
214
|
begin
|
@@ -243,7 +239,6 @@ module Stripe
|
|
243
239
|
def execute_request_stream(method, path,
|
244
240
|
api_base: nil, api_key: nil, usage: [],
|
245
241
|
headers: {}, params: {},
|
246
|
-
api_mode: nil,
|
247
242
|
&read_body_chunk_block)
|
248
243
|
unless block_given?
|
249
244
|
raise ArgumentError,
|
@@ -251,8 +246,7 @@ module Stripe
|
|
251
246
|
end
|
252
247
|
|
253
248
|
http_resp, api_key = execute_request_internal(
|
254
|
-
method, path, api_base, api_key,
|
255
|
-
headers, params, api_mode, usage, &read_body_chunk_block
|
249
|
+
method, path, api_base, api_key, headers, params, usage, &read_body_chunk_block
|
256
250
|
)
|
257
251
|
|
258
252
|
# When the read_body_chunk_block is given, we no longer have access to the
|
@@ -431,8 +425,8 @@ module Stripe
|
|
431
425
|
end
|
432
426
|
|
433
427
|
private def execute_request_internal(method, path,
|
434
|
-
api_base, api_key, headers, params,
|
435
|
-
|
428
|
+
api_base, api_key, headers, params, usage,
|
429
|
+
&read_body_chunk_block)
|
436
430
|
raise ArgumentError, "method should be a symbol" \
|
437
431
|
unless method.is_a?(Symbol)
|
438
432
|
raise ArgumentError, "path should be a string" \
|
@@ -440,10 +434,9 @@ module Stripe
|
|
440
434
|
|
441
435
|
api_base ||= config.api_base
|
442
436
|
api_key ||= config.api_key
|
443
|
-
authenticator ||= config.authenticator
|
444
437
|
params = Util.objects_to_ids(params)
|
445
438
|
|
446
|
-
|
439
|
+
check_api_key!(api_key)
|
447
440
|
|
448
441
|
body_params = nil
|
449
442
|
query_params = nil
|
@@ -456,9 +449,8 @@ module Stripe
|
|
456
449
|
|
457
450
|
query_params, path = merge_query_params(query_params, path)
|
458
451
|
|
459
|
-
headers = request_headers(api_key, method
|
452
|
+
headers = request_headers(api_key, method)
|
460
453
|
.update(Util.normalize_headers(headers))
|
461
|
-
|
462
454
|
url = api_url(path, api_base)
|
463
455
|
|
464
456
|
# Merge given query parameters with any already encoded in the path.
|
@@ -469,16 +461,13 @@ module Stripe
|
|
469
461
|
# a log-friendly variant of the encoded form. File objects are displayed
|
470
462
|
# as such instead of as their file contents.
|
471
463
|
body, body_log =
|
472
|
-
body_params ? encode_body(body_params, headers
|
473
|
-
|
474
|
-
authenticator.authenticate(method, headers, body) unless api_key
|
464
|
+
body_params ? encode_body(body_params, headers) : [nil, nil]
|
475
465
|
|
476
466
|
# stores information on the request we're about to make so that we don't
|
477
467
|
# have to pass as many parameters around for logging.
|
478
468
|
context = RequestLogContext.new
|
479
469
|
context.account = headers["Stripe-Account"]
|
480
470
|
context.api_key = api_key
|
481
|
-
context.authenticator = authenticator
|
482
471
|
context.api_version = headers["Stripe-Version"]
|
483
472
|
context.body = body_log
|
484
473
|
context.idempotency_key = headers["Idempotency-Key"]
|
@@ -498,7 +487,7 @@ module Stripe
|
|
498
487
|
end
|
499
488
|
|
500
489
|
http_resp =
|
501
|
-
execute_request_with_rescues(
|
490
|
+
execute_request_with_rescues(api_base, headers, usage, context) do
|
502
491
|
self.class
|
503
492
|
.default_connection_manager(config)
|
504
493
|
.execute_request(method, url,
|
@@ -515,16 +504,8 @@ module Stripe
|
|
515
504
|
(api_base || config.api_base) + url
|
516
505
|
end
|
517
506
|
|
518
|
-
private def
|
519
|
-
|
520
|
-
raise AuthenticationError, "Can't specify both API key " \
|
521
|
-
"and authenticator. Either set your API key" \
|
522
|
-
'using "Stripe.api_key = <API-KEY>", or set your authenticator ' \
|
523
|
-
'using "Stripe.authenticator = <AUTHENTICATOR>"' \
|
524
|
-
end
|
525
|
-
|
526
|
-
unless api_key || authenticator
|
527
|
-
# Default to missing API key error message for general users.
|
507
|
+
private def check_api_key!(api_key)
|
508
|
+
unless api_key
|
528
509
|
raise AuthenticationError, "No API key provided. " \
|
529
510
|
'Set your API key using "Stripe.api_key = <API-KEY>". ' \
|
530
511
|
"You can generate API keys from the Stripe web interface. " \
|
@@ -543,7 +524,7 @@ module Stripe
|
|
543
524
|
# Encodes a set of body parameters using multipart if `Content-Type` is set
|
544
525
|
# for that, or standard form-encoding otherwise. Returns the encoded body
|
545
526
|
# and a version of the encoded body that's safe to be logged.
|
546
|
-
private def encode_body(body_params, headers
|
527
|
+
private def encode_body(body_params, headers)
|
547
528
|
body = nil
|
548
529
|
flattened_params = Util.flatten_params(body_params)
|
549
530
|
|
@@ -559,22 +540,15 @@ module Stripe
|
|
559
540
|
flattened_params =
|
560
541
|
flattened_params.map { |k, v| [k, v.is_a?(String) ? v : v.to_s] }.to_h
|
561
542
|
|
562
|
-
elsif api_mode == :preview
|
563
|
-
body = JSON.generate(body_params)
|
564
|
-
headers["Content-Type"] = "application/json"
|
565
543
|
else
|
566
544
|
body = Util.encode_parameters(body_params)
|
567
545
|
end
|
568
546
|
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
# forms of certain characters introduce a lot of visual noise and it's
|
575
|
-
# nice to have a clearer format for logs.
|
576
|
-
flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
|
577
|
-
end
|
547
|
+
# We don't use `Util.encode_parameters` partly as an optimization (to not
|
548
|
+
# redo work we've already done), and partly because the encoded forms of
|
549
|
+
# certain characters introduce a lot of visual noise and it's nice to
|
550
|
+
# have a clearer format for logs.
|
551
|
+
body_log = flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
|
578
552
|
|
579
553
|
[body, body_log]
|
580
554
|
end
|
@@ -583,7 +557,7 @@ module Stripe
|
|
583
557
|
http_status >= 400
|
584
558
|
end
|
585
559
|
|
586
|
-
private def execute_request_with_rescues(
|
560
|
+
private def execute_request_with_rescues(api_base, headers, usage, context)
|
587
561
|
num_retries = 0
|
588
562
|
|
589
563
|
begin
|
@@ -634,7 +608,6 @@ module Stripe
|
|
634
608
|
user_data, resp, headers)
|
635
609
|
|
636
610
|
if self.class.should_retry?(e,
|
637
|
-
method: method,
|
638
611
|
num_retries: num_retries,
|
639
612
|
config: config)
|
640
613
|
num_retries += 1
|
@@ -761,11 +734,10 @@ module Stripe
|
|
761
734
|
end
|
762
735
|
|
763
736
|
private def specific_api_error(resp, error_data, context)
|
764
|
-
message = error_data[:message]
|
765
737
|
Util.log_error("Stripe API error",
|
766
738
|
status: resp.http_status,
|
767
739
|
error_code: error_data[:code],
|
768
|
-
error_message: message,
|
740
|
+
error_message: error_data[:message],
|
769
741
|
error_param: error_data[:param],
|
770
742
|
error_type: error_data[:type],
|
771
743
|
idempotency_key: context.idempotency_key,
|
@@ -786,26 +758,26 @@ module Stripe
|
|
786
758
|
when 400, 404
|
787
759
|
case error_data[:type]
|
788
760
|
when "idempotency_error"
|
789
|
-
IdempotencyError.new(message, **opts)
|
761
|
+
IdempotencyError.new(error_data[:message], **opts)
|
790
762
|
else
|
791
763
|
InvalidRequestError.new(
|
792
|
-
message, error_data[:param],
|
764
|
+
error_data[:message], error_data[:param],
|
793
765
|
**opts
|
794
766
|
)
|
795
767
|
end
|
796
768
|
when 401
|
797
|
-
AuthenticationError.new(message, **opts)
|
769
|
+
AuthenticationError.new(error_data[:message], **opts)
|
798
770
|
when 402
|
799
771
|
CardError.new(
|
800
|
-
message, error_data[:param],
|
772
|
+
error_data[:message], error_data[:param],
|
801
773
|
**opts
|
802
774
|
)
|
803
775
|
when 403
|
804
|
-
PermissionError.new(message, **opts)
|
776
|
+
PermissionError.new(error_data[:message], **opts)
|
805
777
|
when 429
|
806
|
-
RateLimitError.new(message, **opts)
|
778
|
+
RateLimitError.new(error_data[:message], **opts)
|
807
779
|
else
|
808
|
-
APIError.new(message, **opts)
|
780
|
+
APIError.new(error_data[:message], **opts)
|
809
781
|
end
|
810
782
|
end
|
811
783
|
|
@@ -873,20 +845,16 @@ module Stripe
|
|
873
845
|
message + "\n\n(Network error: #{error.message})"
|
874
846
|
end
|
875
847
|
|
876
|
-
private def request_headers(api_key, method
|
848
|
+
private def request_headers(api_key, method)
|
877
849
|
user_agent = "Stripe/v1 RubyBindings/#{Stripe::VERSION}"
|
878
850
|
user_agent += " " + format_app_info(Stripe.app_info) unless Stripe.app_info.nil?
|
879
851
|
|
880
852
|
headers = {
|
881
853
|
"User-Agent" => user_agent,
|
882
854
|
"Authorization" => "Bearer #{api_key}",
|
855
|
+
"Content-Type" => "application/x-www-form-urlencoded",
|
883
856
|
}
|
884
857
|
|
885
|
-
if api_mode != :preview
|
886
|
-
# TODO: (major) don't set Content-Type if method is not post
|
887
|
-
headers["Content-Type"] = "application/x-www-form-urlencoded"
|
888
|
-
end
|
889
|
-
|
890
858
|
if config.enable_telemetry? && !@last_request_metrics.nil?
|
891
859
|
headers["X-Stripe-Client-Telemetry"] = JSON.generate(
|
892
860
|
last_request_metrics: @last_request_metrics.payload
|
@@ -899,12 +867,7 @@ module Stripe
|
|
899
867
|
headers["Idempotency-Key"] ||= SecureRandom.uuid
|
900
868
|
end
|
901
869
|
|
902
|
-
|
903
|
-
headers["Stripe-Version"] = ApiVersion::PREVIEW
|
904
|
-
elsif config.api_version
|
905
|
-
headers["Stripe-Version"] = config.api_version
|
906
|
-
end
|
907
|
-
|
870
|
+
headers["Stripe-Version"] = config.api_version if config.api_version
|
908
871
|
headers["Stripe-Account"] = config.stripe_account if config.stripe_account
|
909
872
|
|
910
873
|
user_agent = @system_profiler.user_agent
|
@@ -987,8 +950,7 @@ module Stripe
|
|
987
950
|
# that we can log certain information. It's useful because it means that we
|
988
951
|
# don't have to pass around as many parameters.
|
989
952
|
class RequestLogContext
|
990
|
-
attr_accessor :body, :account, :api_key, :
|
991
|
-
:request_id
|
953
|
+
attr_accessor :body, :account, :api_key, :api_version, :idempotency_key, :method, :path, :query, :request_id
|
992
954
|
|
993
955
|
# The idea with this method is that we might want to update some of
|
994
956
|
# 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/stripe_object.rb
CHANGED
@@ -4,6 +4,8 @@ module Stripe
|
|
4
4
|
class StripeObject
|
5
5
|
include Enumerable
|
6
6
|
|
7
|
+
attr_reader :last_response
|
8
|
+
|
7
9
|
@@permanent_attributes = Set.new([:id]) # rubocop:disable Style/ClassVars
|
8
10
|
|
9
11
|
# The default :id method is deprecated and isn't useful to us
|
@@ -80,13 +82,14 @@ module Stripe
|
|
80
82
|
@unsaved_values = Set.new
|
81
83
|
@transient_values = Set.new
|
82
84
|
@values[:id] = id if id
|
85
|
+
@last_response = nil
|
83
86
|
end
|
84
87
|
|
85
|
-
def self.construct_from(values, opts = {})
|
88
|
+
def self.construct_from(values, opts = {}, last_response = nil)
|
86
89
|
values = Stripe::Util.symbolize_names(values)
|
87
90
|
|
88
91
|
# work around protected #initialize_from for now
|
89
|
-
new(values[:id]).send(:initialize_from, values, opts)
|
92
|
+
new(values[:id]).send(:initialize_from, values, opts, last_response)
|
90
93
|
end
|
91
94
|
|
92
95
|
# Determines the equality of two Stripe objects. Stripe objects are
|
@@ -424,7 +427,9 @@ module Stripe
|
|
424
427
|
# * +:opts:+ Options for StripeObject like an API key.
|
425
428
|
# * +:partial:+ Indicates that the re-initialization should not attempt to
|
426
429
|
# remove accessors.
|
427
|
-
protected def initialize_from(values, opts)
|
430
|
+
protected def initialize_from(values, opts, last_response = nil)
|
431
|
+
@last_response = last_response
|
432
|
+
|
428
433
|
@opts = Util.normalize_opts(opts)
|
429
434
|
|
430
435
|
# the `#send` is here so that we can keep this method private
|
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
|
@@ -91,7 +90,7 @@ module Stripe
|
|
91
90
|
opts
|
92
91
|
)
|
93
92
|
|
94
|
-
Util.convert_to_stripe_object_with_params(resp.data, params, opts)
|
93
|
+
Util.convert_to_stripe_object_with_params(resp.data, params, opts, resp)
|
95
94
|
end
|
96
95
|
end
|
97
96
|
|
@@ -125,7 +124,7 @@ module Stripe
|
|
125
124
|
# * +data+ - Hash of fields and values to be converted into a StripeObject.
|
126
125
|
# * +opts+ - Options for +StripeObject+ like an API key that will be reused
|
127
126
|
# on subsequent API calls.
|
128
|
-
def self.convert_to_stripe_object_with_params(data, params, opts = {})
|
127
|
+
def self.convert_to_stripe_object_with_params(data, params, opts = {}, last_response = nil)
|
129
128
|
opts = normalize_opts(opts)
|
130
129
|
|
131
130
|
case data
|
@@ -136,7 +135,7 @@ module Stripe
|
|
136
135
|
# to generic StripeObject
|
137
136
|
object_name = data[:object] || data["object"]
|
138
137
|
obj = object_classes.fetch(object_name, StripeObject)
|
139
|
-
.construct_from(data, opts)
|
138
|
+
.construct_from(data, opts, last_response)
|
140
139
|
|
141
140
|
# set filters so that we can fetch the same limit, expansions, and
|
142
141
|
# predicates when accessing the next and previous pages
|
@@ -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?
|
data/stripe.gemspec
CHANGED
@@ -33,13 +33,12 @@ Gem::Specification.new do |s|
|
|
33
33
|
/\A\.rubocop/,
|
34
34
|
/\A\.travis.yml/,
|
35
35
|
/\A\.vscode/,
|
36
|
-
|
36
|
+
/\Abin/,
|
37
37
|
/\Asorbet/,
|
38
38
|
/\Atest/
|
39
39
|
)
|
40
|
-
s.files = `git ls-files`.split("\n").
|
41
|
-
s.
|
42
|
-
|
43
|
-
.reject { |f| f == "tapioca" }
|
40
|
+
s.files = `git ls-files`.split("\n").grep_v(ignored)
|
41
|
+
s.bindir = "exe"
|
42
|
+
s.executables = `git ls-files -- exe/*`.split("\n").map { |f| File.basename(f) }
|
44
43
|
s.require_paths = ["lib"]
|
45
44
|
end
|
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:
|
4
|
+
version: 11.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stripe
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-04-
|
11
|
+
date: 2024-04-10 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.
|
@@ -29,7 +29,7 @@ files:
|
|
29
29
|
- README.md
|
30
30
|
- Rakefile
|
31
31
|
- VERSION
|
32
|
-
-
|
32
|
+
- exe/stripe-console
|
33
33
|
- lib/data/ca-certificates.crt
|
34
34
|
- lib/stripe.rb
|
35
35
|
- lib/stripe/api_operations/create.rb
|
@@ -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.26
|
236
220
|
signing_key:
|