stripe 10.3.0.pre.beta.1 → 10.3.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 +42 -243
- data/Makefile +1 -1
- data/OPENAPI_VERSION +1 -1
- data/README.md +4 -14
- data/VERSION +1 -1
- data/lib/stripe/api_operations/request.rb +13 -13
- data/lib/stripe/api_operations/save.rb +1 -1
- data/lib/stripe/api_version.rb +0 -1
- data/lib/stripe/object_types.rb +0 -21
- data/lib/stripe/resources/financial_connections/account.rb +0 -39
- 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/terminal/reader.rb +0 -54
- data/lib/stripe/resources.rb +0 -20
- data/lib/stripe/singleton_api_resource.rb +19 -2
- data/lib/stripe/stripe_client.rb +40 -68
- 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 -25
- 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/financial_connections/transaction.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)
|
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
|
@@ -241,9 +240,8 @@ module Stripe
|
|
241
240
|
# passed, then a StripeStreamResponse is returned containing an IO stream
|
242
241
|
# with the response body.
|
243
242
|
def execute_request_stream(method, path,
|
244
|
-
api_base: nil, api_key: nil,
|
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, &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"]
|
@@ -498,7 +490,7 @@ module Stripe
|
|
498
490
|
end
|
499
491
|
|
500
492
|
http_resp =
|
501
|
-
execute_request_with_rescues(method, api_base, headers, context) do
|
493
|
+
execute_request_with_rescues(method, api_base, headers, usage, context) do
|
502
494
|
self.class
|
503
495
|
.default_connection_manager(config)
|
504
496
|
.execute_request(method, url,
|
@@ -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
|
@@ -583,7 +560,7 @@ module Stripe
|
|
583
560
|
http_status >= 400
|
584
561
|
end
|
585
562
|
|
586
|
-
private def execute_request_with_rescues(method, api_base, headers, context)
|
563
|
+
private def execute_request_with_rescues(method, api_base, headers, usage, context)
|
587
564
|
num_retries = 0
|
588
565
|
|
589
566
|
begin
|
@@ -609,7 +586,7 @@ module Stripe
|
|
609
586
|
if config.enable_telemetry? && context.request_id
|
610
587
|
request_duration_ms = (request_duration * 1000).to_i
|
611
588
|
@last_request_metrics =
|
612
|
-
StripeRequestMetrics.new(context.request_id, request_duration_ms)
|
589
|
+
StripeRequestMetrics.new(context.request_id, request_duration_ms, usage: usage)
|
613
590
|
end
|
614
591
|
|
615
592
|
# We rescue all exceptions from a request so that we have an easy spot to
|
@@ -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
|
@@ -1072,13 +1038,19 @@ module Stripe
|
|
1072
1038
|
# Request duration in milliseconds
|
1073
1039
|
attr_accessor :request_duration_ms
|
1074
1040
|
|
1075
|
-
|
1041
|
+
# list of names of tracked behaviors associated with this request
|
1042
|
+
attr_accessor :usage
|
1043
|
+
|
1044
|
+
def initialize(request_id, request_duration_ms, usage: [])
|
1076
1045
|
self.request_id = request_id
|
1077
1046
|
self.request_duration_ms = request_duration_ms
|
1047
|
+
self.usage = usage
|
1078
1048
|
end
|
1079
1049
|
|
1080
1050
|
def payload
|
1081
|
-
{ request_id: request_id, request_duration_ms: request_duration_ms }
|
1051
|
+
ret = { request_id: request_id, request_duration_ms: request_duration_ms }
|
1052
|
+
ret[:usage] = usage if !usage.nil? && !usage.empty?
|
1053
|
+
ret
|
1082
1054
|
end
|
1083
1055
|
end
|
1084
1056
|
end
|
@@ -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"
|
@@ -45,7 +44,6 @@ require "stripe/api_resource_test_helpers"
|
|
45
44
|
require "stripe/singleton_api_resource"
|
46
45
|
require "stripe/webhook"
|
47
46
|
require "stripe/stripe_configuration"
|
48
|
-
require "stripe/request_signing_authenticator"
|
49
47
|
|
50
48
|
# Named API resources
|
51
49
|
require "stripe/resources"
|
@@ -72,7 +70,6 @@ module Stripe
|
|
72
70
|
|
73
71
|
# User configurable options
|
74
72
|
def_delegators :@config, :api_key, :api_key=
|
75
|
-
def_delegators :@config, :authenticator, :authenticator=
|
76
73
|
def_delegators :@config, :api_version, :api_version=
|
77
74
|
def_delegators :@config, :stripe_account, :stripe_account=
|
78
75
|
def_delegators :@config, :api_base, :api_base=
|
@@ -119,49 +116,6 @@ module Stripe
|
|
119
116
|
version: version,
|
120
117
|
}
|
121
118
|
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
119
|
end
|
166
120
|
|
167
121
|
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.3.0
|
4
|
+
version: 10.3.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-
|
11
|
+
date: 2023-12-14 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.
|
@@ -50,11 +50,9 @@ files:
|
|
50
50
|
- lib/stripe/multipart_encoder.rb
|
51
51
|
- lib/stripe/oauth.rb
|
52
52
|
- lib/stripe/object_types.rb
|
53
|
-
- lib/stripe/request_signing_authenticator.rb
|
54
53
|
- lib/stripe/resources.rb
|
55
54
|
- lib/stripe/resources/account.rb
|
56
55
|
- lib/stripe/resources/account_link.rb
|
57
|
-
- lib/stripe/resources/account_notice.rb
|
58
56
|
- lib/stripe/resources/account_session.rb
|
59
57
|
- lib/stripe/resources/alipay_account.rb
|
60
58
|
- lib/stripe/resources/apple_pay_domain.rb
|
@@ -67,9 +65,6 @@ files:
|
|
67
65
|
- lib/stripe/resources/billing_portal/configuration.rb
|
68
66
|
- lib/stripe/resources/billing_portal/session.rb
|
69
67
|
- 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
68
|
- lib/stripe/resources/card.rb
|
74
69
|
- lib/stripe/resources/cash_balance.rb
|
75
70
|
- lib/stripe/resources/charge.rb
|
@@ -77,7 +72,6 @@ files:
|
|
77
72
|
- lib/stripe/resources/climate/order.rb
|
78
73
|
- lib/stripe/resources/climate/product.rb
|
79
74
|
- lib/stripe/resources/climate/supplier.rb
|
80
|
-
- lib/stripe/resources/confirmation_token.rb
|
81
75
|
- lib/stripe/resources/country_spec.rb
|
82
76
|
- lib/stripe/resources/coupon.rb
|
83
77
|
- lib/stripe/resources/credit_note.rb
|
@@ -85,7 +79,6 @@ files:
|
|
85
79
|
- lib/stripe/resources/customer.rb
|
86
80
|
- lib/stripe/resources/customer_balance_transaction.rb
|
87
81
|
- lib/stripe/resources/customer_cash_balance_transaction.rb
|
88
|
-
- lib/stripe/resources/customer_session.rb
|
89
82
|
- lib/stripe/resources/discount.rb
|
90
83
|
- lib/stripe/resources/dispute.rb
|
91
84
|
- lib/stripe/resources/ephemeral_key.rb
|
@@ -94,34 +87,24 @@ files:
|
|
94
87
|
- lib/stripe/resources/file.rb
|
95
88
|
- lib/stripe/resources/file_link.rb
|
96
89
|
- lib/stripe/resources/financial_connections/account.rb
|
97
|
-
- lib/stripe/resources/financial_connections/account_inferred_balance.rb
|
98
90
|
- lib/stripe/resources/financial_connections/account_owner.rb
|
99
91
|
- lib/stripe/resources/financial_connections/account_ownership.rb
|
100
92
|
- lib/stripe/resources/financial_connections/session.rb
|
101
|
-
- lib/stripe/resources/financial_connections/transaction.rb
|
102
93
|
- lib/stripe/resources/funding_instructions.rb
|
103
|
-
- lib/stripe/resources/gift_cards/card.rb
|
104
|
-
- lib/stripe/resources/gift_cards/transaction.rb
|
105
94
|
- lib/stripe/resources/identity/verification_report.rb
|
106
95
|
- lib/stripe/resources/identity/verification_session.rb
|
107
96
|
- lib/stripe/resources/invoice.rb
|
108
97
|
- lib/stripe/resources/invoice_item.rb
|
109
98
|
- lib/stripe/resources/invoice_line_item.rb
|
110
|
-
- lib/stripe/resources/invoice_payment.rb
|
111
99
|
- lib/stripe/resources/issuing/authorization.rb
|
112
100
|
- lib/stripe/resources/issuing/card.rb
|
113
101
|
- lib/stripe/resources/issuing/cardholder.rb
|
114
|
-
- lib/stripe/resources/issuing/credit_underwriting_record.rb
|
115
102
|
- lib/stripe/resources/issuing/dispute.rb
|
116
|
-
- lib/stripe/resources/issuing/personalization_design.rb
|
117
|
-
- lib/stripe/resources/issuing/physical_bundle.rb
|
118
103
|
- lib/stripe/resources/issuing/token.rb
|
119
104
|
- lib/stripe/resources/issuing/transaction.rb
|
120
105
|
- lib/stripe/resources/line_item.rb
|
121
106
|
- lib/stripe/resources/login_link.rb
|
122
107
|
- lib/stripe/resources/mandate.rb
|
123
|
-
- lib/stripe/resources/margin.rb
|
124
|
-
- lib/stripe/resources/order.rb
|
125
108
|
- lib/stripe/resources/payment_intent.rb
|
126
109
|
- lib/stripe/resources/payment_link.rb
|
127
110
|
- lib/stripe/resources/payment_method.rb
|
@@ -134,9 +117,6 @@ files:
|
|
134
117
|
- lib/stripe/resources/product.rb
|
135
118
|
- lib/stripe/resources/promotion_code.rb
|
136
119
|
- 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
120
|
- lib/stripe/resources/radar/early_fraud_warning.rb
|
141
121
|
- lib/stripe/resources/radar/value_list.rb
|
142
122
|
- lib/stripe/resources/radar/value_list_item.rb
|
@@ -157,7 +137,6 @@ files:
|
|
157
137
|
- lib/stripe/resources/subscription_schedule.rb
|
158
138
|
- lib/stripe/resources/tax/calculation.rb
|
159
139
|
- lib/stripe/resources/tax/calculation_line_item.rb
|
160
|
-
- lib/stripe/resources/tax/form.rb
|
161
140
|
- lib/stripe/resources/tax/registration.rb
|
162
141
|
- lib/stripe/resources/tax/settings.rb
|
163
142
|
- lib/stripe/resources/tax/transaction.rb
|
@@ -219,9 +198,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
219
198
|
version: 2.3.0
|
220
199
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
221
200
|
requirements:
|
222
|
-
- - "
|
201
|
+
- - ">="
|
223
202
|
- !ruby/object:Gem::Version
|
224
|
-
version:
|
203
|
+
version: '0'
|
225
204
|
requirements: []
|
226
205
|
rubygems_version: 3.3.26
|
227
206
|
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
|