stripe 10.4.0.pre.beta.1 → 10.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 +46 -246
- 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_operations/singleton_save.rb +86 -0
- data/lib/stripe/api_version.rb +0 -1
- data/lib/stripe/object_types.rb +0 -20
- data/lib/stripe/resources/file.rb +1 -1
- data/lib/stripe/resources/financial_connections/account.rb +0 -3
- data/lib/stripe/resources/invoice.rb +0 -21
- data/lib/stripe/resources/quote.rb +0 -94
- data/lib/stripe/resources/subscription_schedule.rb +0 -18
- data/lib/stripe/resources/tax/settings.rb +1 -1
- data/lib/stripe/resources/terminal/reader.rb +0 -54
- 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 +1 -46
- metadata +5 -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 -11
- 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/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"
|
@@ -26,6 +25,7 @@ require "stripe/api_operations/list"
|
|
26
25
|
require "stripe/api_operations/nested_resource"
|
27
26
|
require "stripe/api_operations/request"
|
28
27
|
require "stripe/api_operations/save"
|
28
|
+
require "stripe/api_operations/singleton_save"
|
29
29
|
require "stripe/api_operations/search"
|
30
30
|
|
31
31
|
# API resource support classes
|
@@ -45,7 +45,6 @@ require "stripe/api_resource_test_helpers"
|
|
45
45
|
require "stripe/singleton_api_resource"
|
46
46
|
require "stripe/webhook"
|
47
47
|
require "stripe/stripe_configuration"
|
48
|
-
require "stripe/request_signing_authenticator"
|
49
48
|
|
50
49
|
# Named API resources
|
51
50
|
require "stripe/resources"
|
@@ -72,7 +71,6 @@ module Stripe
|
|
72
71
|
|
73
72
|
# User configurable options
|
74
73
|
def_delegators :@config, :api_key, :api_key=
|
75
|
-
def_delegators :@config, :authenticator, :authenticator=
|
76
74
|
def_delegators :@config, :api_version, :api_version=
|
77
75
|
def_delegators :@config, :stripe_account, :stripe_account=
|
78
76
|
def_delegators :@config, :api_base, :api_base=
|
@@ -119,49 +117,6 @@ module Stripe
|
|
119
117
|
version: version,
|
120
118
|
}
|
121
119
|
end
|
122
|
-
|
123
|
-
class Preview
|
124
|
-
def self._get_default_opts(opts)
|
125
|
-
{ api_mode: :preview }.merge(opts)
|
126
|
-
end
|
127
|
-
|
128
|
-
def self.get(url, opts = {})
|
129
|
-
Stripe.raw_request(:get, url, {}, _get_default_opts(opts))
|
130
|
-
end
|
131
|
-
|
132
|
-
def self.post(url, params = {}, opts = {})
|
133
|
-
Stripe.raw_request(:post, url, params, _get_default_opts(opts))
|
134
|
-
end
|
135
|
-
|
136
|
-
def self.delete(url, opts = {})
|
137
|
-
Stripe.raw_request(:delete, url, {}, _get_default_opts(opts))
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
class RawRequest
|
142
|
-
include Stripe::APIOperations::Request
|
143
|
-
|
144
|
-
def initialize
|
145
|
-
@opts = {}
|
146
|
-
end
|
147
|
-
|
148
|
-
def execute(method, url, params = {}, opts = {})
|
149
|
-
resp, = execute_resource_request(method, url, params, opts)
|
150
|
-
|
151
|
-
resp
|
152
|
-
end
|
153
|
-
end
|
154
|
-
|
155
|
-
# Sends a request to Stripe REST API
|
156
|
-
def self.raw_request(method, url, params = {}, opts = {})
|
157
|
-
req = RawRequest.new
|
158
|
-
req.execute(method, url, params, opts)
|
159
|
-
end
|
160
|
-
|
161
|
-
def self.deserialize(data)
|
162
|
-
data = JSON.parse(data) if data.is_a?(String)
|
163
|
-
Util.convert_to_stripe_object(data, {})
|
164
|
-
end
|
165
120
|
end
|
166
121
|
|
167
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.4.0
|
4
|
+
version: 10.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stripe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-12-
|
11
|
+
date: 2023-12-22 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.
|
@@ -39,6 +39,7 @@ files:
|
|
39
39
|
- lib/stripe/api_operations/request.rb
|
40
40
|
- lib/stripe/api_operations/save.rb
|
41
41
|
- lib/stripe/api_operations/search.rb
|
42
|
+
- lib/stripe/api_operations/singleton_save.rb
|
42
43
|
- lib/stripe/api_resource.rb
|
43
44
|
- lib/stripe/api_resource_test_helpers.rb
|
44
45
|
- lib/stripe/api_version.rb
|
@@ -50,11 +51,9 @@ files:
|
|
50
51
|
- lib/stripe/multipart_encoder.rb
|
51
52
|
- lib/stripe/oauth.rb
|
52
53
|
- lib/stripe/object_types.rb
|
53
|
-
- lib/stripe/request_signing_authenticator.rb
|
54
54
|
- lib/stripe/resources.rb
|
55
55
|
- lib/stripe/resources/account.rb
|
56
56
|
- lib/stripe/resources/account_link.rb
|
57
|
-
- lib/stripe/resources/account_notice.rb
|
58
57
|
- lib/stripe/resources/account_session.rb
|
59
58
|
- lib/stripe/resources/alipay_account.rb
|
60
59
|
- lib/stripe/resources/apple_pay_domain.rb
|
@@ -67,9 +66,6 @@ files:
|
|
67
66
|
- lib/stripe/resources/billing_portal/configuration.rb
|
68
67
|
- lib/stripe/resources/billing_portal/session.rb
|
69
68
|
- lib/stripe/resources/capability.rb
|
70
|
-
- lib/stripe/resources/capital/financing_offer.rb
|
71
|
-
- lib/stripe/resources/capital/financing_summary.rb
|
72
|
-
- lib/stripe/resources/capital/financing_transaction.rb
|
73
69
|
- lib/stripe/resources/card.rb
|
74
70
|
- lib/stripe/resources/cash_balance.rb
|
75
71
|
- lib/stripe/resources/charge.rb
|
@@ -77,7 +73,6 @@ files:
|
|
77
73
|
- lib/stripe/resources/climate/order.rb
|
78
74
|
- lib/stripe/resources/climate/product.rb
|
79
75
|
- lib/stripe/resources/climate/supplier.rb
|
80
|
-
- lib/stripe/resources/confirmation_token.rb
|
81
76
|
- lib/stripe/resources/country_spec.rb
|
82
77
|
- lib/stripe/resources/coupon.rb
|
83
78
|
- lib/stripe/resources/credit_note.rb
|
@@ -85,7 +80,6 @@ files:
|
|
85
80
|
- lib/stripe/resources/customer.rb
|
86
81
|
- lib/stripe/resources/customer_balance_transaction.rb
|
87
82
|
- lib/stripe/resources/customer_cash_balance_transaction.rb
|
88
|
-
- lib/stripe/resources/customer_session.rb
|
89
83
|
- lib/stripe/resources/discount.rb
|
90
84
|
- lib/stripe/resources/dispute.rb
|
91
85
|
- lib/stripe/resources/ephemeral_key.rb
|
@@ -94,34 +88,25 @@ files:
|
|
94
88
|
- lib/stripe/resources/file.rb
|
95
89
|
- lib/stripe/resources/file_link.rb
|
96
90
|
- lib/stripe/resources/financial_connections/account.rb
|
97
|
-
- lib/stripe/resources/financial_connections/account_inferred_balance.rb
|
98
91
|
- lib/stripe/resources/financial_connections/account_owner.rb
|
99
92
|
- lib/stripe/resources/financial_connections/account_ownership.rb
|
100
93
|
- lib/stripe/resources/financial_connections/session.rb
|
101
94
|
- lib/stripe/resources/financial_connections/transaction.rb
|
102
95
|
- lib/stripe/resources/funding_instructions.rb
|
103
|
-
- lib/stripe/resources/gift_cards/card.rb
|
104
|
-
- lib/stripe/resources/gift_cards/transaction.rb
|
105
96
|
- lib/stripe/resources/identity/verification_report.rb
|
106
97
|
- lib/stripe/resources/identity/verification_session.rb
|
107
98
|
- lib/stripe/resources/invoice.rb
|
108
99
|
- lib/stripe/resources/invoice_item.rb
|
109
100
|
- lib/stripe/resources/invoice_line_item.rb
|
110
|
-
- lib/stripe/resources/invoice_payment.rb
|
111
101
|
- lib/stripe/resources/issuing/authorization.rb
|
112
102
|
- lib/stripe/resources/issuing/card.rb
|
113
103
|
- lib/stripe/resources/issuing/cardholder.rb
|
114
|
-
- lib/stripe/resources/issuing/credit_underwriting_record.rb
|
115
104
|
- lib/stripe/resources/issuing/dispute.rb
|
116
|
-
- lib/stripe/resources/issuing/personalization_design.rb
|
117
|
-
- lib/stripe/resources/issuing/physical_bundle.rb
|
118
105
|
- lib/stripe/resources/issuing/token.rb
|
119
106
|
- lib/stripe/resources/issuing/transaction.rb
|
120
107
|
- lib/stripe/resources/line_item.rb
|
121
108
|
- lib/stripe/resources/login_link.rb
|
122
109
|
- lib/stripe/resources/mandate.rb
|
123
|
-
- lib/stripe/resources/margin.rb
|
124
|
-
- lib/stripe/resources/order.rb
|
125
110
|
- lib/stripe/resources/payment_intent.rb
|
126
111
|
- lib/stripe/resources/payment_link.rb
|
127
112
|
- lib/stripe/resources/payment_method.rb
|
@@ -134,9 +119,6 @@ files:
|
|
134
119
|
- lib/stripe/resources/product.rb
|
135
120
|
- lib/stripe/resources/promotion_code.rb
|
136
121
|
- lib/stripe/resources/quote.rb
|
137
|
-
- lib/stripe/resources/quote_phase.rb
|
138
|
-
- lib/stripe/resources/quote_preview_invoice.rb
|
139
|
-
- lib/stripe/resources/quote_preview_subscription_schedule.rb
|
140
122
|
- lib/stripe/resources/radar/early_fraud_warning.rb
|
141
123
|
- lib/stripe/resources/radar/value_list.rb
|
142
124
|
- lib/stripe/resources/radar/value_list_item.rb
|
@@ -157,7 +139,6 @@ files:
|
|
157
139
|
- lib/stripe/resources/subscription_schedule.rb
|
158
140
|
- lib/stripe/resources/tax/calculation.rb
|
159
141
|
- lib/stripe/resources/tax/calculation_line_item.rb
|
160
|
-
- lib/stripe/resources/tax/form.rb
|
161
142
|
- lib/stripe/resources/tax/registration.rb
|
162
143
|
- lib/stripe/resources/tax/settings.rb
|
163
144
|
- lib/stripe/resources/tax/transaction.rb
|
@@ -219,9 +200,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
219
200
|
version: 2.3.0
|
220
201
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
221
202
|
requirements:
|
222
|
-
- - "
|
203
|
+
- - ">="
|
223
204
|
- !ruby/object:Gem::Version
|
224
|
-
version:
|
205
|
+
version: '0'
|
225
206
|
requirements: []
|
226
207
|
rubygems_version: 3.3.26
|
227
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
|
@@ -1,32 +0,0 @@
|
|
1
|
-
# File generated from our OpenAPI spec
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module Stripe
|
5
|
-
module Capital
|
6
|
-
# This is an object representing an offer of financing from
|
7
|
-
# Stripe Capital to a Connect subaccount.
|
8
|
-
class FinancingOffer < APIResource
|
9
|
-
extend Stripe::APIOperations::List
|
10
|
-
|
11
|
-
OBJECT_NAME = "capital.financing_offer"
|
12
|
-
|
13
|
-
def mark_delivered(params = {}, opts = {})
|
14
|
-
request_stripe_object(
|
15
|
-
method: :post,
|
16
|
-
path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(self["id"]) }),
|
17
|
-
params: params,
|
18
|
-
opts: opts
|
19
|
-
)
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.mark_delivered(financing_offer, params = {}, opts = {})
|
23
|
-
request_stripe_object(
|
24
|
-
method: :post,
|
25
|
-
path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(financing_offer) }),
|
26
|
-
params: params,
|
27
|
-
opts: opts
|
28
|
-
)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
# File generated from our OpenAPI spec
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module Stripe
|
5
|
-
module Capital
|
6
|
-
# A financing object describes an account's current financing state. Used by Connect
|
7
|
-
# platforms to read the state of Capital offered to their connected accounts.
|
8
|
-
class FinancingSummary < SingletonAPIResource
|
9
|
-
OBJECT_NAME = "capital.financing_summary"
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# File generated from our OpenAPI spec
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module Stripe
|
5
|
-
module Capital
|
6
|
-
# This is an object representing the details of a transaction on a Capital financing object.
|
7
|
-
class FinancingTransaction < APIResource
|
8
|
-
extend Stripe::APIOperations::List
|
9
|
-
|
10
|
-
OBJECT_NAME = "capital.financing_transaction"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# File generated from our OpenAPI spec
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module Stripe
|
5
|
-
# ConfirmationTokens help transport client side data collected by Stripe JS over
|
6
|
-
# to your server for confirming a PaymentIntent or SetupIntent. If the confirmation
|
7
|
-
# is successful, values present on the ConfirmationToken are written onto the Intent.
|
8
|
-
class ConfirmationToken < APIResource
|
9
|
-
OBJECT_NAME = "confirmation_token"
|
10
|
-
end
|
11
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
# File generated from our OpenAPI spec
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module Stripe
|
5
|
-
# A customer session allows you to grant client access to Stripe's frontend SDKs (like StripeJs)
|
6
|
-
# control over a customer.
|
7
|
-
class CustomerSession < APIResource
|
8
|
-
extend Stripe::APIOperations::Create
|
9
|
-
|
10
|
-
OBJECT_NAME = "customer_session"
|
11
|
-
end
|
12
|
-
end
|