stripe 12.5.0.pre.beta.2 → 12.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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +648 -1335
  3. data/OPENAPI_VERSION +1 -1
  4. data/VERSION +1 -1
  5. data/lib/stripe/api_operations/request.rb +1 -2
  6. data/lib/stripe/api_version.rb +0 -1
  7. data/lib/stripe/object_types.rb +0 -18
  8. data/lib/stripe/resources/financial_connections/account.rb +0 -3
  9. data/lib/stripe/resources/invoice.rb +0 -81
  10. data/lib/stripe/resources/payment_intent.rb +0 -50
  11. data/lib/stripe/resources/quote.rb +0 -104
  12. data/lib/stripe/resources/subscription_schedule.rb +0 -20
  13. data/lib/stripe/resources/terminal/reader.rb +0 -60
  14. data/lib/stripe/resources.rb +0 -17
  15. data/lib/stripe/stripe_client.rb +28 -60
  16. data/lib/stripe/stripe_configuration.rb +1 -2
  17. data/lib/stripe/util.rb +1 -8
  18. data/lib/stripe/version.rb +1 -1
  19. data/lib/stripe.rb +0 -29
  20. metadata +4 -22
  21. data/lib/stripe/request_signing_authenticator.rb +0 -79
  22. data/lib/stripe/resources/account_notice.rb +0 -32
  23. data/lib/stripe/resources/capital/financing_offer.rb +0 -49
  24. data/lib/stripe/resources/capital/financing_summary.rb +0 -15
  25. data/lib/stripe/resources/capital/financing_transaction.rb +0 -27
  26. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +0 -14
  27. data/lib/stripe/resources/financial_connections/institution.rb +0 -26
  28. data/lib/stripe/resources/gift_cards/card.rb +0 -59
  29. data/lib/stripe/resources/gift_cards/transaction.rb +0 -93
  30. data/lib/stripe/resources/invoice_payment.rb +0 -12
  31. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +0 -88
  32. data/lib/stripe/resources/margin.rb +0 -37
  33. data/lib/stripe/resources/order.rb +0 -120
  34. data/lib/stripe/resources/quote_phase.rb +0 -39
  35. data/lib/stripe/resources/quote_preview_invoice.rb +0 -43
  36. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +0 -11
  37. data/lib/stripe/resources/tax/association.rb +0 -24
  38. data/lib/stripe/resources/tax/form.rb +0 -49
@@ -217,10 +217,9 @@ module Stripe
217
217
  "for usage examples)", 2024, 6
218
218
 
219
219
  def execute_request(method, path,
220
- api_base: nil, api_key: nil,
221
- headers: {}, params: {}, api_mode: nil, usage: [])
220
+ api_base: nil, api_key: nil, headers: {}, params: {}, usage: [])
222
221
  http_resp, api_key = execute_request_internal(
223
- method, path, api_base, api_key, headers, params, api_mode, usage
222
+ method, path, api_base, api_key, headers, params, usage
224
223
  )
225
224
 
226
225
  begin
@@ -251,7 +250,6 @@ module Stripe
251
250
  def execute_request_stream(method, path,
252
251
  api_base: nil, api_key: nil, usage: [],
253
252
  headers: {}, params: {},
254
- api_mode: nil,
255
253
  &read_body_chunk_block)
256
254
  unless block_given?
257
255
  raise ArgumentError,
@@ -259,8 +257,7 @@ module Stripe
259
257
  end
260
258
 
261
259
  http_resp, api_key = execute_request_internal(
262
- method, path, api_base, api_key,
263
- headers, params, api_mode, usage, &read_body_chunk_block
260
+ method, path, api_base, api_key, headers, params, usage, &read_body_chunk_block
264
261
  )
265
262
 
266
263
  # When the read_body_chunk_block is given, we no longer have access to the
@@ -439,8 +436,8 @@ module Stripe
439
436
  end
440
437
 
441
438
  private def execute_request_internal(method, path,
442
- api_base, api_key, headers, params,
443
- api_mode, usage, &read_body_chunk_block)
439
+ api_base, api_key, headers, params, usage,
440
+ &read_body_chunk_block)
444
441
  raise ArgumentError, "method should be a symbol" \
445
442
  unless method.is_a?(Symbol)
446
443
  raise ArgumentError, "path should be a string" \
@@ -448,10 +445,9 @@ module Stripe
448
445
 
449
446
  api_base ||= config.api_base
450
447
  api_key ||= config.api_key
451
- authenticator ||= config.authenticator
452
448
  params = Util.objects_to_ids(params)
453
449
 
454
- check_keys!(api_key, authenticator)
450
+ check_api_key!(api_key)
455
451
 
456
452
  body_params = nil
457
453
  query_params = nil
@@ -464,7 +460,7 @@ module Stripe
464
460
 
465
461
  query_params, path = merge_query_params(query_params, path)
466
462
 
467
- headers = request_headers(api_key, method, api_mode)
463
+ headers = request_headers(api_key, method)
468
464
  .update(Util.normalize_headers(headers))
469
465
 
470
466
  url = api_url(path, api_base)
@@ -477,16 +473,13 @@ module Stripe
477
473
  # a log-friendly variant of the encoded form. File objects are displayed
478
474
  # as such instead of as their file contents.
479
475
  body, body_log =
480
- body_params ? encode_body(body_params, headers, api_mode) : [nil, nil]
481
-
482
- authenticator.authenticate(method, headers, body) unless api_key
476
+ body_params ? encode_body(body_params, headers) : [nil, nil]
483
477
 
484
478
  # stores information on the request we're about to make so that we don't
485
479
  # have to pass as many parameters around for logging.
486
480
  context = RequestLogContext.new
487
481
  context.account = headers["Stripe-Account"]
488
482
  context.api_key = api_key
489
- context.authenticator = authenticator
490
483
  context.api_version = headers["Stripe-Version"]
491
484
  context.body = body_log
492
485
  context.idempotency_key = headers["Idempotency-Key"]
@@ -523,16 +516,8 @@ module Stripe
523
516
  (api_base || config.api_base) + url
524
517
  end
525
518
 
526
- private def check_keys!(api_key, authenticator)
527
- if api_key && authenticator
528
- raise AuthenticationError, "Can't specify both API key " \
529
- "and authenticator. Either set your API key" \
530
- 'using "Stripe.api_key = <API-KEY>", or set your authenticator ' \
531
- 'using "Stripe.authenticator = <AUTHENTICATOR>"' \
532
- end
533
-
534
- unless api_key || authenticator
535
- # Default to missing API key error message for general users.
519
+ private def check_api_key!(api_key)
520
+ unless api_key
536
521
  raise AuthenticationError, "No API key provided. " \
537
522
  'Set your API key using "Stripe.api_key = <API-KEY>". ' \
538
523
  "You can generate API keys from the Stripe web interface. " \
@@ -551,7 +536,7 @@ module Stripe
551
536
  # Encodes a set of body parameters using multipart if `Content-Type` is set
552
537
  # for that, or standard form-encoding otherwise. Returns the encoded body
553
538
  # and a version of the encoded body that's safe to be logged.
554
- private def encode_body(body_params, headers, api_mode)
539
+ private def encode_body(body_params, headers)
555
540
  body = nil
556
541
  flattened_params = Util.flatten_params(body_params)
557
542
 
@@ -567,22 +552,15 @@ module Stripe
567
552
  flattened_params =
568
553
  flattened_params.map { |k, v| [k, v.is_a?(String) ? v : v.to_s] }.to_h
569
554
 
570
- elsif api_mode == :preview
571
- body = JSON.generate(body_params)
572
- headers["Content-Type"] = "application/json"
573
555
  else
574
556
  body = Util.encode_parameters(body_params)
575
557
  end
576
558
 
577
- body_log = if api_mode == :preview
578
- body
579
- else
580
- # We don't use `Util.encode_parameters` partly as an optimization (to
581
- # not redo work we've already done), and partly because the encoded
582
- # forms of certain characters introduce a lot of visual noise and it's
583
- # nice to have a clearer format for logs.
584
- flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
585
- end
559
+ # We don't use `Util.encode_parameters` partly as an optimization (to not
560
+ # redo work we've already done), and partly because the encoded forms of
561
+ # certain characters introduce a lot of visual noise and it's nice to
562
+ # have a clearer format for logs.
563
+ body_log = flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
586
564
 
587
565
  [body, body_log]
588
566
  end
@@ -768,11 +746,10 @@ module Stripe
768
746
  end
769
747
 
770
748
  private def specific_api_error(resp, error_data, context)
771
- message = error_data[:message]
772
749
  Util.log_error("Stripe API error",
773
750
  status: resp.http_status,
774
751
  error_code: error_data[:code],
775
- error_message: message,
752
+ error_message: error_data[:message],
776
753
  error_param: error_data[:param],
777
754
  error_type: error_data[:type],
778
755
  idempotency_key: context.idempotency_key,
@@ -793,26 +770,26 @@ module Stripe
793
770
  when 400, 404
794
771
  case error_data[:type]
795
772
  when "idempotency_error"
796
- IdempotencyError.new(message, **opts)
773
+ IdempotencyError.new(error_data[:message], **opts)
797
774
  else
798
775
  InvalidRequestError.new(
799
- message, error_data[:param],
776
+ error_data[:message], error_data[:param],
800
777
  **opts
801
778
  )
802
779
  end
803
780
  when 401
804
- AuthenticationError.new(message, **opts)
781
+ AuthenticationError.new(error_data[:message], **opts)
805
782
  when 402
806
783
  CardError.new(
807
- message, error_data[:param],
784
+ error_data[:message], error_data[:param],
808
785
  **opts
809
786
  )
810
787
  when 403
811
- PermissionError.new(message, **opts)
788
+ PermissionError.new(error_data[:message], **opts)
812
789
  when 429
813
- RateLimitError.new(message, **opts)
790
+ RateLimitError.new(error_data[:message], **opts)
814
791
  else
815
- APIError.new(message, **opts)
792
+ APIError.new(error_data[:message], **opts)
816
793
  end
817
794
  end
818
795
 
@@ -880,20 +857,16 @@ module Stripe
880
857
  message + "\n\n(Network error: #{error.message})"
881
858
  end
882
859
 
883
- private def request_headers(api_key, method, api_mode)
860
+ private def request_headers(api_key, method)
884
861
  user_agent = "Stripe/v1 RubyBindings/#{Stripe::VERSION}"
885
862
  user_agent += " " + format_app_info(Stripe.app_info) unless Stripe.app_info.nil?
886
863
 
887
864
  headers = {
888
865
  "User-Agent" => user_agent,
889
866
  "Authorization" => "Bearer #{api_key}",
867
+ "Content-Type" => "application/x-www-form-urlencoded",
890
868
  }
891
869
 
892
- if api_mode != :preview
893
- # TODO: (major) don't set Content-Type if method is not post
894
- headers["Content-Type"] = "application/x-www-form-urlencoded"
895
- end
896
-
897
870
  if config.enable_telemetry? && !@last_request_metrics.nil?
898
871
  headers["X-Stripe-Client-Telemetry"] = JSON.generate(
899
872
  last_request_metrics: @last_request_metrics.payload
@@ -906,11 +879,7 @@ module Stripe
906
879
  headers["Idempotency-Key"] ||= SecureRandom.uuid
907
880
  end
908
881
 
909
- if api_mode == :preview
910
- headers["Stripe-Version"] = ApiVersion::PREVIEW
911
- elsif config.api_version
912
- headers["Stripe-Version"] = config.api_version
913
- end
882
+ headers["Stripe-Version"] = config.api_version if config.api_version
914
883
 
915
884
  headers["Stripe-Account"] = config.stripe_account if config.stripe_account
916
885
 
@@ -994,8 +963,7 @@ module Stripe
994
963
  # that we can log certain information. It's useful because it means that we
995
964
  # don't have to pass around as many parameters.
996
965
  class RequestLogContext
997
- attr_accessor :body, :account, :api_key, :authenticator, :api_version, :idempotency_key, :method, :path, :query,
998
- :request_id
966
+ attr_accessor :body, :account, :api_key, :api_version, :idempotency_key, :method, :path, :query, :request_id
999
967
 
1000
968
  # The idea with this method is that we might want to update some of
1001
969
  # 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, :authenticator, :client_id, :enable_telemetry, :logger, :stripe_account
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
- # If the user is using request signing for authentication,
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Stripe
4
- VERSION = "12.5.0-beta.2"
4
+ VERSION = "12.5.0"
5
5
  end
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=
@@ -121,32 +118,6 @@ module Stripe
121
118
  }
122
119
  end
123
120
 
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
121
  class RawRequest
151
122
  include Stripe::APIOperations::Request
152
123
 
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: 12.5.0.pre.beta.2
4
+ version: 12.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-01 00:00:00.000000000 Z
11
+ date: 2024-08-08 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
@@ -73,9 +71,6 @@ files:
73
71
  - lib/stripe/resources/billing_portal/configuration.rb
74
72
  - lib/stripe/resources/billing_portal/session.rb
75
73
  - lib/stripe/resources/capability.rb
76
- - lib/stripe/resources/capital/financing_offer.rb
77
- - lib/stripe/resources/capital/financing_summary.rb
78
- - lib/stripe/resources/capital/financing_transaction.rb
79
74
  - lib/stripe/resources/card.rb
80
75
  - lib/stripe/resources/cash_balance.rb
81
76
  - lib/stripe/resources/charge.rb
@@ -102,26 +97,20 @@ files:
102
97
  - lib/stripe/resources/file.rb
103
98
  - lib/stripe/resources/file_link.rb
104
99
  - lib/stripe/resources/financial_connections/account.rb
105
- - lib/stripe/resources/financial_connections/account_inferred_balance.rb
106
100
  - lib/stripe/resources/financial_connections/account_owner.rb
107
101
  - lib/stripe/resources/financial_connections/account_ownership.rb
108
- - lib/stripe/resources/financial_connections/institution.rb
109
102
  - lib/stripe/resources/financial_connections/session.rb
110
103
  - lib/stripe/resources/financial_connections/transaction.rb
111
104
  - lib/stripe/resources/forwarding/request.rb
112
105
  - lib/stripe/resources/funding_instructions.rb
113
- - lib/stripe/resources/gift_cards/card.rb
114
- - lib/stripe/resources/gift_cards/transaction.rb
115
106
  - lib/stripe/resources/identity/verification_report.rb
116
107
  - lib/stripe/resources/identity/verification_session.rb
117
108
  - lib/stripe/resources/invoice.rb
118
109
  - lib/stripe/resources/invoice_item.rb
119
110
  - lib/stripe/resources/invoice_line_item.rb
120
- - lib/stripe/resources/invoice_payment.rb
121
111
  - lib/stripe/resources/issuing/authorization.rb
122
112
  - lib/stripe/resources/issuing/card.rb
123
113
  - lib/stripe/resources/issuing/cardholder.rb
124
- - lib/stripe/resources/issuing/credit_underwriting_record.rb
125
114
  - lib/stripe/resources/issuing/dispute.rb
126
115
  - lib/stripe/resources/issuing/personalization_design.rb
127
116
  - lib/stripe/resources/issuing/physical_bundle.rb
@@ -130,8 +119,6 @@ files:
130
119
  - lib/stripe/resources/line_item.rb
131
120
  - lib/stripe/resources/login_link.rb
132
121
  - lib/stripe/resources/mandate.rb
133
- - lib/stripe/resources/margin.rb
134
- - lib/stripe/resources/order.rb
135
122
  - lib/stripe/resources/payment_intent.rb
136
123
  - lib/stripe/resources/payment_link.rb
137
124
  - lib/stripe/resources/payment_method.rb
@@ -145,9 +132,6 @@ files:
145
132
  - lib/stripe/resources/product_feature.rb
146
133
  - lib/stripe/resources/promotion_code.rb
147
134
  - lib/stripe/resources/quote.rb
148
- - lib/stripe/resources/quote_phase.rb
149
- - lib/stripe/resources/quote_preview_invoice.rb
150
- - lib/stripe/resources/quote_preview_subscription_schedule.rb
151
135
  - lib/stripe/resources/radar/early_fraud_warning.rb
152
136
  - lib/stripe/resources/radar/value_list.rb
153
137
  - lib/stripe/resources/radar/value_list_item.rb
@@ -166,10 +150,8 @@ files:
166
150
  - lib/stripe/resources/subscription.rb
167
151
  - lib/stripe/resources/subscription_item.rb
168
152
  - lib/stripe/resources/subscription_schedule.rb
169
- - lib/stripe/resources/tax/association.rb
170
153
  - lib/stripe/resources/tax/calculation.rb
171
154
  - lib/stripe/resources/tax/calculation_line_item.rb
172
- - lib/stripe/resources/tax/form.rb
173
155
  - lib/stripe/resources/tax/registration.rb
174
156
  - lib/stripe/resources/tax/settings.rb
175
157
  - lib/stripe/resources/tax/transaction.rb
@@ -231,9 +213,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
231
213
  version: 2.3.0
232
214
  required_rubygems_version: !ruby/object:Gem::Requirement
233
215
  requirements:
234
- - - ">"
216
+ - - ">="
235
217
  - !ruby/object:Gem::Version
236
- version: 1.3.1
218
+ version: '0'
237
219
  requirements: []
238
220
  rubygems_version: 3.3.27
239
221
  signing_key:
@@ -1,79 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Stripe
4
- class RequestSigningAuthenticator
5
- AUTHORIZATION_HEADER_NAME = "Authorization"
6
- CONTENT_TYPE_HEADER_NAME = "Content-Type"
7
- STRIPE_CONTEXT_HEADER_NAME = "Stripe-Context"
8
- STRIPE_ACCOUNT_HEADER_NAME = "Stripe-Account"
9
- CONTENT_DIGEST_HEADER_NAME = "Content-Digest"
10
- SIGNATURE_INPUT_HEADER_NAME = "Signature-Input"
11
- SIGNATURE_HEADER_NAME = "Signature"
12
-
13
- attr_reader :auth_token, :sign_lambda
14
-
15
- def initialize(auth_token, sign_lambda)
16
- raise ArgumentError, "auth_token must be a string" unless auth_token.is_a?(String)
17
- raise ArgumentError, "sign_lambda must be a lambda" unless sign_lambda.is_a?(Proc)
18
-
19
- @auth_token = auth_token
20
- @sign_lambda = sign_lambda
21
- end
22
-
23
- def authenticate(method, headers, body)
24
- covered_headers = [CONTENT_TYPE_HEADER_NAME,
25
- CONTENT_DIGEST_HEADER_NAME,
26
- STRIPE_CONTEXT_HEADER_NAME,
27
- STRIPE_ACCOUNT_HEADER_NAME,
28
- AUTHORIZATION_HEADER_NAME,]
29
-
30
- headers[AUTHORIZATION_HEADER_NAME] = "STRIPE-V2-SIG #{auth_token}"
31
-
32
- if method == :get
33
- covered_headers -= [CONTENT_TYPE_HEADER_NAME,
34
- CONTENT_DIGEST_HEADER_NAME,]
35
- else
36
- content = body || ""
37
- headers[CONTENT_DIGEST_HEADER_NAME] =
38
- %(sha-256=:#{content_digest(content)}:)
39
- end
40
-
41
- covered_headers_formatted = covered_headers
42
- .map { |string| %("#{string.downcase}") }
43
- .join(" ")
44
-
45
- signature_input = "(#{covered_headers_formatted});created=#{created_time}"
46
-
47
- inputs = covered_headers
48
- .map { |header| %("#{header.downcase}": #{headers[header]}) }
49
- .join("\n")
50
-
51
- signature_base = %(#{inputs}\n"@signature-params": #{signature_input})
52
- .encode(Encoding::UTF_8)
53
-
54
- headers[SIGNATURE_INPUT_HEADER_NAME] = "sig1=#{signature_input}"
55
-
56
- headers[SIGNATURE_HEADER_NAME] =
57
- "sig1=:#{encoded_signature(signature_base)}:"
58
- end
59
-
60
- private def sign(signature_base)
61
- @sign_lambda.call(signature_base)
62
- end
63
-
64
- private def encoded_signature(signature_base)
65
- Base64.strict_encode64(sign(signature_base))
66
- rescue StandardError
67
- raise AuthenticationError, "Encountered '#{e.message} (#{e.class})' " \
68
- "when calculating request signature."
69
- end
70
-
71
- private def content_digest(content)
72
- Base64.strict_encode64(OpenSSL::Digest.new("SHA256").digest(content))
73
- end
74
-
75
- private def created_time
76
- Time.now.to_i
77
- end
78
- end
79
- end
@@ -1,32 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- # A notice to a Connected account. Notice can be sent by Stripe on your behalf or you can opt to send the notices yourself.
6
- #
7
- # See the [guide to send notices](https://stripe.com/docs/issuing/compliance-us/issuing-regulated-customer-notices) to your connected accounts.
8
- class AccountNotice < APIResource
9
- extend Stripe::APIOperations::List
10
- include Stripe::APIOperations::Save
11
-
12
- OBJECT_NAME = "account_notice"
13
- def self.object_name
14
- "account_notice"
15
- end
16
-
17
- # Retrieves a list of AccountNotice objects. The objects are sorted in descending order by creation date, with the most-recently-created object appearing first.
18
- def self.list(filters = {}, opts = {})
19
- request_stripe_object(method: :get, path: "/v1/account_notices", params: filters, opts: opts)
20
- end
21
-
22
- # Updates an AccountNotice object.
23
- def self.update(id, params = {}, opts = {})
24
- request_stripe_object(
25
- method: :post,
26
- path: format("/v1/account_notices/%<id>s", { id: CGI.escape(id) }),
27
- params: params,
28
- opts: opts
29
- )
30
- end
31
- end
32
- end
@@ -1,49 +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
- def self.object_name
13
- "capital.financing_offer"
14
- end
15
-
16
- # Retrieves the financing offers available for Connected accounts that belong to your platform.
17
- def self.list(filters = {}, opts = {})
18
- request_stripe_object(
19
- method: :get,
20
- path: "/v1/capital/financing_offers",
21
- params: filters,
22
- opts: opts
23
- )
24
- end
25
-
26
- # Acknowledges that platform has received and delivered the financing_offer to
27
- # the intended merchant recipient.
28
- def mark_delivered(params = {}, opts = {})
29
- request_stripe_object(
30
- method: :post,
31
- path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(self["id"]) }),
32
- params: params,
33
- opts: opts
34
- )
35
- end
36
-
37
- # Acknowledges that platform has received and delivered the financing_offer to
38
- # the intended merchant recipient.
39
- def self.mark_delivered(financing_offer, params = {}, opts = {})
40
- request_stripe_object(
41
- method: :post,
42
- path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(financing_offer) }),
43
- params: params,
44
- opts: opts
45
- )
46
- end
47
- end
48
- end
49
- end
@@ -1,15 +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
- def self.object_name
11
- "capital.financing_summary"
12
- end
13
- end
14
- end
15
- end
@@ -1,27 +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
- def self.object_name
12
- "capital.financing_transaction"
13
- end
14
-
15
- # Returns a list of financing transactions. The transactions are returned in sorted order,
16
- # with the most recent transactions appearing first.
17
- def self.list(filters = {}, opts = {})
18
- request_stripe_object(
19
- method: :get,
20
- path: "/v1/capital/financing_transactions",
21
- params: filters,
22
- opts: opts
23
- )
24
- end
25
- end
26
- end
27
- end
@@ -1,14 +0,0 @@
1
- # File generated from our OpenAPI spec
2
- # frozen_string_literal: true
3
-
4
- module Stripe
5
- module FinancialConnections
6
- # A historical balance for the account on a particular day. It may be sourced from a balance snapshot provided by a financial institution, or inferred using transactions data.
7
- class AccountInferredBalance < APIResource
8
- OBJECT_NAME = "financial_connections.account_inferred_balance"
9
- def self.object_name
10
- "financial_connections.account_inferred_balance"
11
- end
12
- end
13
- end
14
- end