stripe 10.5.0.pre.beta.1 → 10.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 +43 -249
- data/OPENAPI_VERSION +1 -1
- data/README.md +0 -11
- 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 -20
- data/lib/stripe/resources/account.rb +8 -0
- data/lib/stripe/resources/apps/secret.rb +2 -0
- data/lib/stripe/resources/charge.rb +10 -0
- data/lib/stripe/resources/checkout/session.rb +8 -0
- data/lib/stripe/resources/climate/order.rb +8 -0
- data/lib/stripe/resources/credit_note.rb +4 -0
- data/lib/stripe/resources/customer.rb +16 -0
- data/lib/stripe/resources/dispute.rb +6 -0
- data/lib/stripe/resources/financial_connections/account.rb +10 -3
- data/lib/stripe/resources/identity/verification_session.rb +44 -0
- data/lib/stripe/resources/invoice.rb +20 -21
- data/lib/stripe/resources/issuing/authorization.rb +17 -0
- data/lib/stripe/resources/issuing/card.rb +8 -0
- data/lib/stripe/resources/issuing/dispute.rb +2 -0
- data/lib/stripe/resources/issuing/transaction.rb +4 -0
- data/lib/stripe/resources/payment_intent.rb +118 -0
- data/lib/stripe/resources/payment_link.rb +2 -0
- data/lib/stripe/resources/payment_method.rb +28 -0
- data/lib/stripe/resources/payment_method_domain.rb +12 -0
- data/lib/stripe/resources/payout.rb +8 -0
- data/lib/stripe/resources/quote.rb +12 -94
- data/lib/stripe/resources/refund.rb +8 -0
- data/lib/stripe/resources/review.rb +2 -0
- data/lib/stripe/resources/setup_intent.rb +36 -0
- data/lib/stripe/resources/source.rb +2 -0
- data/lib/stripe/resources/subscription.rb +14 -0
- data/lib/stripe/resources/subscription_schedule.rb +4 -18
- data/lib/stripe/resources/tax/calculation.rb +2 -0
- data/lib/stripe/resources/tax/transaction.rb +4 -0
- data/lib/stripe/resources/terminal/reader.rb +12 -54
- data/lib/stripe/resources/test_helpers/test_clock.rb +2 -0
- data/lib/stripe/resources/topup.rb +2 -0
- data/lib/stripe/resources/treasury/financial_account.rb +4 -0
- data/lib/stripe/resources/treasury/inbound_transfer.rb +8 -0
- data/lib/stripe/resources/treasury/outbound_payment.rb +8 -0
- data/lib/stripe/resources/treasury/outbound_transfer.rb +8 -0
- data/lib/stripe/resources/treasury/received_credit.rb +1 -0
- data/lib/stripe/resources/treasury/received_debit.rb +1 -0
- data/lib/stripe/resources.rb +0 -19
- data/lib/stripe/stripe_client.rb +28 -62
- 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 -46
- metadata +4 -24
- data/lib/stripe/request_signing_authenticator.rb +0 -79
- data/lib/stripe/resources/account_notice.rb +0 -14
- data/lib/stripe/resources/capital/financing_offer.rb +0 -32
- data/lib/stripe/resources/capital/financing_summary.rb +0 -12
- data/lib/stripe/resources/capital/financing_transaction.rb +0 -13
- data/lib/stripe/resources/confirmation_token.rb +0 -13
- data/lib/stripe/resources/customer_session.rb +0 -12
- data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +0 -13
- data/lib/stripe/resources/gift_cards/card.rb +0 -25
- data/lib/stripe/resources/gift_cards/transaction.rb +0 -56
- data/lib/stripe/resources/invoice_payment.rb +0 -11
- data/lib/stripe/resources/issuing/credit_underwriting_record.rb +0 -69
- data/lib/stripe/resources/issuing/personalization_design.rb +0 -77
- data/lib/stripe/resources/issuing/physical_bundle.rb +0 -13
- data/lib/stripe/resources/margin.rb +0 -14
- data/lib/stripe/resources/order.rb +0 -89
- data/lib/stripe/resources/quote_phase.rb +0 -29
- data/lib/stripe/resources/quote_preview_invoice.rb +0 -42
- data/lib/stripe/resources/quote_preview_subscription_schedule.rb +0 -10
- data/lib/stripe/resources/tax/form.rb +0 -39
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"
|
@@ -15,9 +14,6 @@ require "stripe/resources/bank_account"
|
|
15
14
|
require "stripe/resources/billing_portal/configuration"
|
16
15
|
require "stripe/resources/billing_portal/session"
|
17
16
|
require "stripe/resources/capability"
|
18
|
-
require "stripe/resources/capital/financing_offer"
|
19
|
-
require "stripe/resources/capital/financing_summary"
|
20
|
-
require "stripe/resources/capital/financing_transaction"
|
21
17
|
require "stripe/resources/card"
|
22
18
|
require "stripe/resources/cash_balance"
|
23
19
|
require "stripe/resources/charge"
|
@@ -25,7 +21,6 @@ require "stripe/resources/checkout/session"
|
|
25
21
|
require "stripe/resources/climate/order"
|
26
22
|
require "stripe/resources/climate/product"
|
27
23
|
require "stripe/resources/climate/supplier"
|
28
|
-
require "stripe/resources/confirmation_token"
|
29
24
|
require "stripe/resources/country_spec"
|
30
25
|
require "stripe/resources/coupon"
|
31
26
|
require "stripe/resources/credit_note"
|
@@ -33,7 +28,6 @@ require "stripe/resources/credit_note_line_item"
|
|
33
28
|
require "stripe/resources/customer"
|
34
29
|
require "stripe/resources/customer_balance_transaction"
|
35
30
|
require "stripe/resources/customer_cash_balance_transaction"
|
36
|
-
require "stripe/resources/customer_session"
|
37
31
|
require "stripe/resources/discount"
|
38
32
|
require "stripe/resources/dispute"
|
39
33
|
require "stripe/resources/ephemeral_key"
|
@@ -42,34 +36,25 @@ require "stripe/resources/exchange_rate"
|
|
42
36
|
require "stripe/resources/file"
|
43
37
|
require "stripe/resources/file_link"
|
44
38
|
require "stripe/resources/financial_connections/account"
|
45
|
-
require "stripe/resources/financial_connections/account_inferred_balance"
|
46
39
|
require "stripe/resources/financial_connections/account_owner"
|
47
40
|
require "stripe/resources/financial_connections/account_ownership"
|
48
41
|
require "stripe/resources/financial_connections/session"
|
49
42
|
require "stripe/resources/financial_connections/transaction"
|
50
43
|
require "stripe/resources/funding_instructions"
|
51
|
-
require "stripe/resources/gift_cards/card"
|
52
|
-
require "stripe/resources/gift_cards/transaction"
|
53
44
|
require "stripe/resources/identity/verification_report"
|
54
45
|
require "stripe/resources/identity/verification_session"
|
55
46
|
require "stripe/resources/invoice"
|
56
47
|
require "stripe/resources/invoice_item"
|
57
48
|
require "stripe/resources/invoice_line_item"
|
58
|
-
require "stripe/resources/invoice_payment"
|
59
49
|
require "stripe/resources/issuing/authorization"
|
60
50
|
require "stripe/resources/issuing/card"
|
61
51
|
require "stripe/resources/issuing/cardholder"
|
62
|
-
require "stripe/resources/issuing/credit_underwriting_record"
|
63
52
|
require "stripe/resources/issuing/dispute"
|
64
|
-
require "stripe/resources/issuing/personalization_design"
|
65
|
-
require "stripe/resources/issuing/physical_bundle"
|
66
53
|
require "stripe/resources/issuing/token"
|
67
54
|
require "stripe/resources/issuing/transaction"
|
68
55
|
require "stripe/resources/line_item"
|
69
56
|
require "stripe/resources/login_link"
|
70
57
|
require "stripe/resources/mandate"
|
71
|
-
require "stripe/resources/margin"
|
72
|
-
require "stripe/resources/order"
|
73
58
|
require "stripe/resources/payment_intent"
|
74
59
|
require "stripe/resources/payment_link"
|
75
60
|
require "stripe/resources/payment_method"
|
@@ -82,9 +67,6 @@ require "stripe/resources/price"
|
|
82
67
|
require "stripe/resources/product"
|
83
68
|
require "stripe/resources/promotion_code"
|
84
69
|
require "stripe/resources/quote"
|
85
|
-
require "stripe/resources/quote_phase"
|
86
|
-
require "stripe/resources/quote_preview_invoice"
|
87
|
-
require "stripe/resources/quote_preview_subscription_schedule"
|
88
70
|
require "stripe/resources/radar/early_fraud_warning"
|
89
71
|
require "stripe/resources/radar/value_list"
|
90
72
|
require "stripe/resources/radar/value_list_item"
|
@@ -104,7 +86,6 @@ require "stripe/resources/subscription_item"
|
|
104
86
|
require "stripe/resources/subscription_schedule"
|
105
87
|
require "stripe/resources/tax/calculation"
|
106
88
|
require "stripe/resources/tax/calculation_line_item"
|
107
|
-
require "stripe/resources/tax/form"
|
108
89
|
require "stripe/resources/tax/registration"
|
109
90
|
require "stripe/resources/tax/settings"
|
110
91
|
require "stripe/resources/tax/transaction"
|
data/lib/stripe/stripe_client.rb
CHANGED
@@ -209,10 +209,9 @@ module Stripe
|
|
209
209
|
end
|
210
210
|
|
211
211
|
def execute_request(method, path,
|
212
|
-
api_base: nil, api_key: nil,
|
213
|
-
headers: {}, params: {}, api_mode: nil, usage: [])
|
212
|
+
api_base: nil, api_key: nil, headers: {}, params: {}, usage: [])
|
214
213
|
http_resp, api_key = execute_request_internal(
|
215
|
-
method, path, api_base, api_key, headers, params,
|
214
|
+
method, path, api_base, api_key, headers, params, usage
|
216
215
|
)
|
217
216
|
|
218
217
|
begin
|
@@ -243,7 +242,6 @@ module Stripe
|
|
243
242
|
def execute_request_stream(method, path,
|
244
243
|
api_base: nil, api_key: nil, usage: [],
|
245
244
|
headers: {}, params: {},
|
246
|
-
api_mode: nil,
|
247
245
|
&read_body_chunk_block)
|
248
246
|
unless block_given?
|
249
247
|
raise ArgumentError,
|
@@ -251,8 +249,7 @@ module Stripe
|
|
251
249
|
end
|
252
250
|
|
253
251
|
http_resp, api_key = execute_request_internal(
|
254
|
-
method, path, api_base, api_key,
|
255
|
-
headers, params, api_mode, usage, &read_body_chunk_block
|
252
|
+
method, path, api_base, api_key, headers, params, usage, &read_body_chunk_block
|
256
253
|
)
|
257
254
|
|
258
255
|
# When the read_body_chunk_block is given, we no longer have access to the
|
@@ -431,8 +428,8 @@ module Stripe
|
|
431
428
|
end
|
432
429
|
|
433
430
|
private def execute_request_internal(method, path,
|
434
|
-
api_base, api_key, headers, params,
|
435
|
-
|
431
|
+
api_base, api_key, headers, params, usage,
|
432
|
+
&read_body_chunk_block)
|
436
433
|
raise ArgumentError, "method should be a symbol" \
|
437
434
|
unless method.is_a?(Symbol)
|
438
435
|
raise ArgumentError, "path should be a string" \
|
@@ -440,10 +437,9 @@ module Stripe
|
|
440
437
|
|
441
438
|
api_base ||= config.api_base
|
442
439
|
api_key ||= config.api_key
|
443
|
-
authenticator ||= config.authenticator
|
444
440
|
params = Util.objects_to_ids(params)
|
445
441
|
|
446
|
-
|
442
|
+
check_api_key!(api_key)
|
447
443
|
|
448
444
|
body_params = nil
|
449
445
|
query_params = nil
|
@@ -456,9 +452,8 @@ module Stripe
|
|
456
452
|
|
457
453
|
query_params, path = merge_query_params(query_params, path)
|
458
454
|
|
459
|
-
headers = request_headers(api_key, method
|
455
|
+
headers = request_headers(api_key, method)
|
460
456
|
.update(Util.normalize_headers(headers))
|
461
|
-
|
462
457
|
url = api_url(path, api_base)
|
463
458
|
|
464
459
|
# Merge given query parameters with any already encoded in the path.
|
@@ -469,16 +464,13 @@ module Stripe
|
|
469
464
|
# a log-friendly variant of the encoded form. File objects are displayed
|
470
465
|
# as such instead of as their file contents.
|
471
466
|
body, body_log =
|
472
|
-
body_params ? encode_body(body_params, headers
|
473
|
-
|
474
|
-
authenticator.authenticate(method, headers, body) unless api_key
|
467
|
+
body_params ? encode_body(body_params, headers) : [nil, nil]
|
475
468
|
|
476
469
|
# stores information on the request we're about to make so that we don't
|
477
470
|
# have to pass as many parameters around for logging.
|
478
471
|
context = RequestLogContext.new
|
479
472
|
context.account = headers["Stripe-Account"]
|
480
473
|
context.api_key = api_key
|
481
|
-
context.authenticator = authenticator
|
482
474
|
context.api_version = headers["Stripe-Version"]
|
483
475
|
context.body = body_log
|
484
476
|
context.idempotency_key = headers["Idempotency-Key"]
|
@@ -515,16 +507,8 @@ module Stripe
|
|
515
507
|
(api_base || config.api_base) + url
|
516
508
|
end
|
517
509
|
|
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.
|
510
|
+
private def check_api_key!(api_key)
|
511
|
+
unless api_key
|
528
512
|
raise AuthenticationError, "No API key provided. " \
|
529
513
|
'Set your API key using "Stripe.api_key = <API-KEY>". ' \
|
530
514
|
"You can generate API keys from the Stripe web interface. " \
|
@@ -543,7 +527,7 @@ module Stripe
|
|
543
527
|
# Encodes a set of body parameters using multipart if `Content-Type` is set
|
544
528
|
# for that, or standard form-encoding otherwise. Returns the encoded body
|
545
529
|
# and a version of the encoded body that's safe to be logged.
|
546
|
-
private def encode_body(body_params, headers
|
530
|
+
private def encode_body(body_params, headers)
|
547
531
|
body = nil
|
548
532
|
flattened_params = Util.flatten_params(body_params)
|
549
533
|
|
@@ -559,22 +543,15 @@ module Stripe
|
|
559
543
|
flattened_params =
|
560
544
|
flattened_params.map { |k, v| [k, v.is_a?(String) ? v : v.to_s] }.to_h
|
561
545
|
|
562
|
-
elsif api_mode == :preview
|
563
|
-
body = JSON.generate(body_params)
|
564
|
-
headers["Content-Type"] = "application/json"
|
565
546
|
else
|
566
547
|
body = Util.encode_parameters(body_params)
|
567
548
|
end
|
568
549
|
|
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
|
550
|
+
# We don't use `Util.encode_parameters` partly as an optimization (to not
|
551
|
+
# redo work we've already done), and partly because the encoded forms of
|
552
|
+
# certain characters introduce a lot of visual noise and it's nice to
|
553
|
+
# have a clearer format for logs.
|
554
|
+
body_log = flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
|
578
555
|
|
579
556
|
[body, body_log]
|
580
557
|
end
|
@@ -761,11 +738,10 @@ module Stripe
|
|
761
738
|
end
|
762
739
|
|
763
740
|
private def specific_api_error(resp, error_data, context)
|
764
|
-
message = error_data[:message]
|
765
741
|
Util.log_error("Stripe API error",
|
766
742
|
status: resp.http_status,
|
767
743
|
error_code: error_data[:code],
|
768
|
-
error_message: message,
|
744
|
+
error_message: error_data[:message],
|
769
745
|
error_param: error_data[:param],
|
770
746
|
error_type: error_data[:type],
|
771
747
|
idempotency_key: context.idempotency_key,
|
@@ -786,26 +762,26 @@ module Stripe
|
|
786
762
|
when 400, 404
|
787
763
|
case error_data[:type]
|
788
764
|
when "idempotency_error"
|
789
|
-
IdempotencyError.new(message, **opts)
|
765
|
+
IdempotencyError.new(error_data[:message], **opts)
|
790
766
|
else
|
791
767
|
InvalidRequestError.new(
|
792
|
-
message, error_data[:param],
|
768
|
+
error_data[:message], error_data[:param],
|
793
769
|
**opts
|
794
770
|
)
|
795
771
|
end
|
796
772
|
when 401
|
797
|
-
AuthenticationError.new(message, **opts)
|
773
|
+
AuthenticationError.new(error_data[:message], **opts)
|
798
774
|
when 402
|
799
775
|
CardError.new(
|
800
|
-
message, error_data[:param],
|
776
|
+
error_data[:message], error_data[:param],
|
801
777
|
**opts
|
802
778
|
)
|
803
779
|
when 403
|
804
|
-
PermissionError.new(message, **opts)
|
780
|
+
PermissionError.new(error_data[:message], **opts)
|
805
781
|
when 429
|
806
|
-
RateLimitError.new(message, **opts)
|
782
|
+
RateLimitError.new(error_data[:message], **opts)
|
807
783
|
else
|
808
|
-
APIError.new(message, **opts)
|
784
|
+
APIError.new(error_data[:message], **opts)
|
809
785
|
end
|
810
786
|
end
|
811
787
|
|
@@ -873,20 +849,16 @@ module Stripe
|
|
873
849
|
message + "\n\n(Network error: #{error.message})"
|
874
850
|
end
|
875
851
|
|
876
|
-
private def request_headers(api_key, method
|
852
|
+
private def request_headers(api_key, method)
|
877
853
|
user_agent = "Stripe/v1 RubyBindings/#{Stripe::VERSION}"
|
878
854
|
user_agent += " " + format_app_info(Stripe.app_info) unless Stripe.app_info.nil?
|
879
855
|
|
880
856
|
headers = {
|
881
857
|
"User-Agent" => user_agent,
|
882
858
|
"Authorization" => "Bearer #{api_key}",
|
859
|
+
"Content-Type" => "application/x-www-form-urlencoded",
|
883
860
|
}
|
884
861
|
|
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
862
|
if config.enable_telemetry? && !@last_request_metrics.nil?
|
891
863
|
headers["X-Stripe-Client-Telemetry"] = JSON.generate(
|
892
864
|
last_request_metrics: @last_request_metrics.payload
|
@@ -899,12 +871,7 @@ module Stripe
|
|
899
871
|
headers["Idempotency-Key"] ||= SecureRandom.uuid
|
900
872
|
end
|
901
873
|
|
902
|
-
|
903
|
-
headers["Stripe-Version"] = ApiVersion::PREVIEW
|
904
|
-
elsif config.api_version
|
905
|
-
headers["Stripe-Version"] = config.api_version
|
906
|
-
end
|
907
|
-
|
874
|
+
headers["Stripe-Version"] = config.api_version if config.api_version
|
908
875
|
headers["Stripe-Account"] = config.stripe_account if config.stripe_account
|
909
876
|
|
910
877
|
user_agent = @system_profiler.user_agent
|
@@ -987,8 +954,7 @@ module Stripe
|
|
987
954
|
# that we can log certain information. It's useful because it means that we
|
988
955
|
# don't have to pass around as many parameters.
|
989
956
|
class RequestLogContext
|
990
|
-
attr_accessor :body, :account, :api_key, :
|
991
|
-
:request_id
|
957
|
+
attr_accessor :body, :account, :api_key, :api_version, :idempotency_key, :method, :path, :query, :request_id
|
992
958
|
|
993
959
|
# The idea with this method is that we might want to update some of
|
994
960
|
# 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,49 +117,6 @@ module Stripe
|
|
120
117
|
version: version,
|
121
118
|
}
|
122
119
|
end
|
123
|
-
|
124
|
-
class Preview
|
125
|
-
def self._get_default_opts(opts)
|
126
|
-
{ api_mode: :preview }.merge(opts)
|
127
|
-
end
|
128
|
-
|
129
|
-
def self.get(url, opts = {})
|
130
|
-
Stripe.raw_request(:get, url, {}, _get_default_opts(opts))
|
131
|
-
end
|
132
|
-
|
133
|
-
def self.post(url, params = {}, opts = {})
|
134
|
-
Stripe.raw_request(:post, url, params, _get_default_opts(opts))
|
135
|
-
end
|
136
|
-
|
137
|
-
def self.delete(url, opts = {})
|
138
|
-
Stripe.raw_request(:delete, url, {}, _get_default_opts(opts))
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
class RawRequest
|
143
|
-
include Stripe::APIOperations::Request
|
144
|
-
|
145
|
-
def initialize
|
146
|
-
@opts = {}
|
147
|
-
end
|
148
|
-
|
149
|
-
def execute(method, url, params = {}, opts = {})
|
150
|
-
resp, = execute_resource_request(method, url, params, opts)
|
151
|
-
|
152
|
-
resp
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
# Sends a request to Stripe REST API
|
157
|
-
def self.raw_request(method, url, params = {}, opts = {})
|
158
|
-
req = RawRequest.new
|
159
|
-
req.execute(method, url, params, opts)
|
160
|
-
end
|
161
|
-
|
162
|
-
def self.deserialize(data)
|
163
|
-
data = JSON.parse(data) if data.is_a?(String)
|
164
|
-
Util.convert_to_stripe_object(data, {})
|
165
|
-
end
|
166
120
|
end
|
167
121
|
|
168
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: 10.5.0
|
4
|
+
version: 10.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stripe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-04 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
|
@@ -68,9 +66,6 @@ files:
|
|
68
66
|
- lib/stripe/resources/billing_portal/configuration.rb
|
69
67
|
- lib/stripe/resources/billing_portal/session.rb
|
70
68
|
- lib/stripe/resources/capability.rb
|
71
|
-
- lib/stripe/resources/capital/financing_offer.rb
|
72
|
-
- lib/stripe/resources/capital/financing_summary.rb
|
73
|
-
- lib/stripe/resources/capital/financing_transaction.rb
|
74
69
|
- lib/stripe/resources/card.rb
|
75
70
|
- lib/stripe/resources/cash_balance.rb
|
76
71
|
- lib/stripe/resources/charge.rb
|
@@ -78,7 +73,6 @@ files:
|
|
78
73
|
- lib/stripe/resources/climate/order.rb
|
79
74
|
- lib/stripe/resources/climate/product.rb
|
80
75
|
- lib/stripe/resources/climate/supplier.rb
|
81
|
-
- lib/stripe/resources/confirmation_token.rb
|
82
76
|
- lib/stripe/resources/country_spec.rb
|
83
77
|
- lib/stripe/resources/coupon.rb
|
84
78
|
- lib/stripe/resources/credit_note.rb
|
@@ -86,7 +80,6 @@ files:
|
|
86
80
|
- lib/stripe/resources/customer.rb
|
87
81
|
- lib/stripe/resources/customer_balance_transaction.rb
|
88
82
|
- lib/stripe/resources/customer_cash_balance_transaction.rb
|
89
|
-
- lib/stripe/resources/customer_session.rb
|
90
83
|
- lib/stripe/resources/discount.rb
|
91
84
|
- lib/stripe/resources/dispute.rb
|
92
85
|
- lib/stripe/resources/ephemeral_key.rb
|
@@ -95,34 +88,25 @@ files:
|
|
95
88
|
- lib/stripe/resources/file.rb
|
96
89
|
- lib/stripe/resources/file_link.rb
|
97
90
|
- lib/stripe/resources/financial_connections/account.rb
|
98
|
-
- lib/stripe/resources/financial_connections/account_inferred_balance.rb
|
99
91
|
- lib/stripe/resources/financial_connections/account_owner.rb
|
100
92
|
- lib/stripe/resources/financial_connections/account_ownership.rb
|
101
93
|
- lib/stripe/resources/financial_connections/session.rb
|
102
94
|
- lib/stripe/resources/financial_connections/transaction.rb
|
103
95
|
- lib/stripe/resources/funding_instructions.rb
|
104
|
-
- lib/stripe/resources/gift_cards/card.rb
|
105
|
-
- lib/stripe/resources/gift_cards/transaction.rb
|
106
96
|
- lib/stripe/resources/identity/verification_report.rb
|
107
97
|
- lib/stripe/resources/identity/verification_session.rb
|
108
98
|
- lib/stripe/resources/invoice.rb
|
109
99
|
- lib/stripe/resources/invoice_item.rb
|
110
100
|
- lib/stripe/resources/invoice_line_item.rb
|
111
|
-
- lib/stripe/resources/invoice_payment.rb
|
112
101
|
- lib/stripe/resources/issuing/authorization.rb
|
113
102
|
- lib/stripe/resources/issuing/card.rb
|
114
103
|
- lib/stripe/resources/issuing/cardholder.rb
|
115
|
-
- lib/stripe/resources/issuing/credit_underwriting_record.rb
|
116
104
|
- lib/stripe/resources/issuing/dispute.rb
|
117
|
-
- lib/stripe/resources/issuing/personalization_design.rb
|
118
|
-
- lib/stripe/resources/issuing/physical_bundle.rb
|
119
105
|
- lib/stripe/resources/issuing/token.rb
|
120
106
|
- lib/stripe/resources/issuing/transaction.rb
|
121
107
|
- lib/stripe/resources/line_item.rb
|
122
108
|
- lib/stripe/resources/login_link.rb
|
123
109
|
- lib/stripe/resources/mandate.rb
|
124
|
-
- lib/stripe/resources/margin.rb
|
125
|
-
- lib/stripe/resources/order.rb
|
126
110
|
- lib/stripe/resources/payment_intent.rb
|
127
111
|
- lib/stripe/resources/payment_link.rb
|
128
112
|
- lib/stripe/resources/payment_method.rb
|
@@ -135,9 +119,6 @@ files:
|
|
135
119
|
- lib/stripe/resources/product.rb
|
136
120
|
- lib/stripe/resources/promotion_code.rb
|
137
121
|
- lib/stripe/resources/quote.rb
|
138
|
-
- lib/stripe/resources/quote_phase.rb
|
139
|
-
- lib/stripe/resources/quote_preview_invoice.rb
|
140
|
-
- lib/stripe/resources/quote_preview_subscription_schedule.rb
|
141
122
|
- lib/stripe/resources/radar/early_fraud_warning.rb
|
142
123
|
- lib/stripe/resources/radar/value_list.rb
|
143
124
|
- lib/stripe/resources/radar/value_list_item.rb
|
@@ -158,7 +139,6 @@ files:
|
|
158
139
|
- lib/stripe/resources/subscription_schedule.rb
|
159
140
|
- lib/stripe/resources/tax/calculation.rb
|
160
141
|
- lib/stripe/resources/tax/calculation_line_item.rb
|
161
|
-
- lib/stripe/resources/tax/form.rb
|
162
142
|
- lib/stripe/resources/tax/registration.rb
|
163
143
|
- lib/stripe/resources/tax/settings.rb
|
164
144
|
- lib/stripe/resources/tax/transaction.rb
|
@@ -220,9 +200,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
220
200
|
version: 2.3.0
|
221
201
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
222
202
|
requirements:
|
223
|
-
- - "
|
203
|
+
- - ">="
|
224
204
|
- !ruby/object:Gem::Version
|
225
|
-
version:
|
205
|
+
version: '0'
|
226
206
|
requirements: []
|
227
207
|
rubygems_version: 3.3.26
|
228
208
|
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,14 +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
|
-
end
|
14
|
-
end
|