-
Notifications
You must be signed in to change notification settings - Fork 391
Migration guide for v23
pakrym-stripe edited this page Aug 24, 2023
·
11 revisions
- This release changes the pinned API version to
2023-08-16. Please read the API Upgrade Guide and carefully review the API changes before upgradingstripe-java.
"
Introduces StripeClient and the service-based pattern, a new interface for calling the Stripe API with many benefits over the existing resource-based paradigm:
- No global config: you can simultaneously use multiple clients with different configuration options (such as API keys)
- No extra API calls. All API endpoints can be accessed with a single method call. You don't have to call
retrievebefore doing anupdate. - No static methods. Much easier mocking.
To migrate from resource-based to service-based pattern:
- Initialize a
StripeClientinstance.// Before Stripe.apiKey = "sk_test_123" // After StripeClient client = new StripeClient("sk_test_123");
- Convert static resource method calls to
StripeClientcalls:// Before Customer customer = Customer.retrieve("cus_123"); // After client.customers().retrieve("cus_123");
- Convert instance resource method calls to
StripeClientcalls.XxxParamsclasses will, in most cases, stay the same as you used for resource-based calls.// Before Customer customer = Customer.retrive("cus_123"); customer.delete(); // After client.customers().delete("cus_123"); // After client.customers().delete(customer.id); PaymentMethod pm = client.customers().retrievePaymentMethod(customer.id, "pm_123");
- Convert
XxxCollectionmethod calls to toStripeClientcalls. In these casesXxxParamsclasses will change fromXxxCollectionParamstoXxxPrams.// Before Account resource = Account.retrieve("acct_xxxxxxxxxxxxx"); CapabilityCollection capabilities = resource.capabilities(); CapabilityCollectionRetrieveParams params = CapabilityCollectionRetrieveParams.builder() .addExpand("account") .build(); capabilities.retrieve("cap_123", params, null); // After CapabilityRetrieveParams params = CapabilityRetrieveParams.builder() .addExpand("account") .build(); client.accounts().capabilities().retrieve("acct_xxxxxxxxxxxxx", "cap_123", params);
⚠️ StripeResponseGetter.request(...),streamRequest(...)signatures changed.-
BaseAddressparameter added. -
urlrenamed topathand is a relative to the base address -
apiModeparameter added to control how request is sent and response is handled,V1andOAuthare supported values.
-
⚠️ RequestOptions.getReadTimeout(),getConnectTimeout(),getMaxNetworkRetries()now returnIntegerinstead ofint.
⚠️ Remove support for valuescustom_account_updateandcustom_account_verificationfrom enumAccountLinkCreateParams.type- These values are not fully operational. Please use
account_updateandaccount_onboardinginstead (see API reference).
- These values are not fully operational. Please use
⚠️ Remove support foravailable_ononBalanceTransactionListParams- Use of this parameter is discouraged. You may use
.putExtraParamif sending the parameter is still required.
- Use of this parameter is discouraged. You may use
⚠️ Remove support foralternate_statement_descriptors,destination, anddisputeonCharge- Use of these fields is discouraged.
⚠️ Remove support forshipping_ratesoncheckout.SessionCreateParams⚠️ Remove support forshipping_ratesoncheckout.SessionCreateParams- Please use
shipping_optionsinstead.
- Please use
⚠️ Remove support forcouponandtrial_from_planoncheckout.SessionCreateParams.subscription_data- Please migrate to the Prices API, or use
.putExtraParamif sending the parameter is still required.
- Please migrate to the Prices API, or use
⚠️ Remove support for valuecard_presentfrom enumsCustomerListPaymentMethodsParams.typeandPaymentMethodListParams.type- This value was not fully operational.
⚠️ Remove support forblikonMandate.payment_method_details,PaymentMethodUpdateParams,SetupAttempt.payment_method_details,SetupIntent.payment_method_options,SetupIntentConfirmParams.payment_method_options,SetupIntentCreateParams.payment_method_options, andSetupIntentUpdateParams.payment_method_options- These fields were mistakenly released.
⚠️ Remove support foracss_debit,affirm,au_becs_debit,bacs_debit,cashapp,sepa_debit, andziponPaymentMethodUpdateParams- These fields are empty.
⚠️ Remove support forcountryonPaymentMethod.link- This field was not fully operational.
⚠️ Remove support forrecurringonPriceUpdateParams- This property should be set on create only.
⚠️ Remove support forattributes,caption, anddeactivate_ononProductCreateParams,ProductUpdateParams, andProduct- These fields are not fully operational.
⚠️ addFullNameAliaserenamed toaddFullNameAliasinAccountCreateParams,AccountUpdateParams,PersonCollectionCreateParams,TokenCreateParams,PersonCollectionCreateParams,PersonUpdateParams.⚠️ addLookupKeysrenamed toaddLookupKeyinPriceListParams
-
Behavior Changes
⚠️ RequestOptions.getDefault()does not apply global configuration options fromStripeclass, all fields are initialized tonull.⚠️ RequestOptionsBuilderdoes not apply global configuration options fromStripeclass, all fields are initialized tonull.
⚠️ ApiResource.request(),requestStream(),requestCollection(),requestSearchResult()methods removed. *⚠️ StripeResponseGetter.oauthRequest(...)was removed. OAuth requests are now performed viaStripeResponseGetter.requestwithApiMode.OAuth. *⚠️ DeprecatedApiResource.className()singleClassUrl(),classUrl(),instanceUrl(),subresourceUrl()methods removed.