chore: improve payment provider tsdocs + generate reference (#10742)

This commit is contained in:
Shahed Nasser
2024-12-26 14:11:52 +02:00
committed by GitHub
parent ee50e67a96
commit ce51c36ecf
7 changed files with 331 additions and 266 deletions
+59 -59
View File
@@ -1389,7 +1389,7 @@ export const generatedEditDates = {
"references/payment/interfaces/payment.JoinerServiceConfig/page.mdx": "2024-12-09T13:22:02.312Z",
"references/payment/interfaces/payment.JoinerServiceConfigAlias/page.mdx": "2024-12-09T13:22:02.308Z",
"references/payment/types/payment.JoinerRelationship/page.mdx": "2024-12-09T13:22:02.304Z",
"references/payment_provider/classes/payment_provider.AbstractPaymentProvider/page.mdx": "2024-12-09T13:22:02.268Z",
"references/payment_provider/classes/payment_provider.AbstractPaymentProvider/page.mdx": "2024-12-26T11:35:43.318Z",
"references/pricing/IPricingModuleService/methods/pricing.IPricingModuleService.addPriceListPrices/page.mdx": "2024-12-09T13:22:02.928Z",
"references/pricing/IPricingModuleService/methods/pricing.IPricingModuleService.addPrices/page.mdx": "2024-12-09T13:22:02.868Z",
"references/pricing/IPricingModuleService/methods/pricing.IPricingModuleService.calculatePrices/page.mdx": "2024-12-09T13:22:02.832Z",
@@ -2203,47 +2203,47 @@ export const generatedEditDates = {
"app/examples/page.mdx": "2024-12-11T09:07:47.589Z",
"app/medusa-cli/commands/build/page.mdx": "2024-11-11T11:00:49.665Z",
"app/js-sdk/page.mdx": "2024-12-12T11:41:51.152Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.apiKey/page.mdx": "2024-12-26T08:56:54.626Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.campaign/page.mdx": "2024-12-26T08:56:58.139Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.claim/page.mdx": "2024-12-26T08:56:57.938Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.currency/page.mdx": "2024-12-26T08:56:56.810Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.customer/page.mdx": "2024-12-26T08:56:56.636Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.customerGroup/page.mdx": "2024-12-26T08:56:57.456Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.exchange/page.mdx": "2024-12-26T08:56:56.991Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.fulfillment/page.mdx": "2024-12-26T08:56:56.893Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.fulfillmentProvider/page.mdx": "2024-12-26T08:56:55.073Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.fulfillmentSet/page.mdx": "2024-12-26T08:56:55.842Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.inventoryItem/page.mdx": "2024-12-26T08:56:55.548Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.notification/page.mdx": "2024-12-26T08:56:57.247Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.invite/page.mdx": "2024-12-26T08:56:57.660Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.order/page.mdx": "2024-12-26T08:56:55.109Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.orderEdit/page.mdx": "2024-12-26T08:56:57.350Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.payment/page.mdx": "2024-12-26T08:56:57.122Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.paymentCollection/page.mdx": "2024-12-26T08:56:54.632Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.priceList/page.mdx": "2024-12-26T08:56:55.929Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.pricePreference/page.mdx": "2024-12-26T08:56:56.726Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.product/page.mdx": "2024-12-26T08:56:57.844Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.productCategory/page.mdx": "2024-12-26T08:56:55.361Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.productCollection/page.mdx": "2024-12-26T08:56:54.834Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.productTag/page.mdx": "2024-12-26T08:56:56.438Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.productType/page.mdx": "2024-12-26T08:56:54.685Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.productVariant/page.mdx": "2024-12-26T08:56:57.752Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.promotion/page.mdx": "2024-12-26T08:56:55.276Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.refundReason/page.mdx": "2024-12-26T08:56:57.560Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.region/page.mdx": "2024-12-26T08:56:58.038Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.reservation/page.mdx": "2024-12-26T08:56:56.189Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.return/page.mdx": "2024-12-26T08:56:54.626Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.returnReason/page.mdx": "2024-12-26T08:56:54.760Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.salesChannel/page.mdx": "2024-12-26T08:56:55.660Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.shippingOption/page.mdx": "2024-12-26T08:56:56.031Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.shippingProfile/page.mdx": "2024-12-26T08:56:56.541Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.stockLocation/page.mdx": "2024-12-26T08:56:55.202Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.store/page.mdx": "2024-12-26T08:56:54.626Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.taxRate/page.mdx": "2024-12-26T08:56:54.626Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.taxRegion/page.mdx": "2024-12-26T08:56:55.458Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.upload/page.mdx": "2024-12-26T08:56:55.760Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.user/page.mdx": "2024-12-26T08:56:54.924Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.workflowExecution/page.mdx": "2024-12-26T08:56:56.322Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.apiKey/page.mdx": "2024-12-26T11:37:18.120Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.campaign/page.mdx": "2024-12-26T11:37:18.121Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.claim/page.mdx": "2024-12-26T11:37:18.121Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.currency/page.mdx": "2024-12-26T11:37:18.121Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.customer/page.mdx": "2024-12-26T11:37:18.121Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.customerGroup/page.mdx": "2024-12-26T11:37:18.121Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.exchange/page.mdx": "2024-12-26T11:37:18.122Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.fulfillment/page.mdx": "2024-12-26T11:37:18.122Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.fulfillmentProvider/page.mdx": "2024-12-26T11:37:18.122Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.fulfillmentSet/page.mdx": "2024-12-26T11:37:18.122Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.inventoryItem/page.mdx": "2024-12-26T11:37:18.122Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.notification/page.mdx": "2024-12-26T11:37:18.123Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.invite/page.mdx": "2024-12-26T11:37:18.122Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.order/page.mdx": "2024-12-26T11:37:18.123Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.orderEdit/page.mdx": "2024-12-26T11:37:18.123Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.payment/page.mdx": "2024-12-26T11:37:18.123Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.paymentCollection/page.mdx": "2024-12-26T11:37:18.123Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.priceList/page.mdx": "2024-12-26T11:37:18.123Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.pricePreference/page.mdx": "2024-12-26T11:37:18.124Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.product/page.mdx": "2024-12-26T11:37:18.124Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.productCategory/page.mdx": "2024-12-26T11:37:18.124Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.productCollection/page.mdx": "2024-12-26T11:37:18.124Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.productTag/page.mdx": "2024-12-26T11:37:18.124Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.productType/page.mdx": "2024-12-26T11:37:18.125Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.productVariant/page.mdx": "2024-12-26T11:37:18.125Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.promotion/page.mdx": "2024-12-26T11:37:18.125Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.refundReason/page.mdx": "2024-12-26T11:37:18.125Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.region/page.mdx": "2024-12-26T11:37:18.125Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.reservation/page.mdx": "2024-12-26T11:37:18.125Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.return/page.mdx": "2024-12-26T11:37:18.125Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.returnReason/page.mdx": "2024-12-26T11:37:18.126Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.salesChannel/page.mdx": "2024-12-26T11:37:18.126Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.shippingOption/page.mdx": "2024-12-26T11:37:18.126Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.shippingProfile/page.mdx": "2024-12-26T11:37:18.126Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.stockLocation/page.mdx": "2024-12-26T11:37:18.126Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.store/page.mdx": "2024-12-26T11:37:18.127Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.taxRate/page.mdx": "2024-12-26T11:37:18.127Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.taxRegion/page.mdx": "2024-12-26T11:37:18.127Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.upload/page.mdx": "2024-12-26T11:37:18.127Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.user/page.mdx": "2024-12-26T11:37:18.127Z",
"references/js_sdk/admin/Admin/properties/js_sdk.admin.Admin.workflowExecution/page.mdx": "2024-12-26T11:37:18.128Z",
"references/js_sdk/admin/ApiKey/methods/js_sdk.admin.ApiKey.batchSalesChannels/page.mdx": "2024-12-09T13:21:56.916Z",
"references/js_sdk/admin/ApiKey/methods/js_sdk.admin.ApiKey.create/page.mdx": "2024-12-09T13:21:56.900Z",
"references/js_sdk/admin/ApiKey/methods/js_sdk.admin.ApiKey.delete/page.mdx": "2024-12-09T13:21:56.912Z",
@@ -2631,27 +2631,27 @@ export const generatedEditDates = {
"references/js_sdk/admin/types/js_sdk.admin.FetchInput/page.mdx": "2024-10-22T15:09:53.767Z",
"references/js_sdk/admin/types/js_sdk.admin.ClientFetch/page.mdx": "2024-12-09T13:22:00.128Z",
"references/js_sdk/admin/types/js_sdk.admin.FetchParams/page.mdx": "2024-10-22T15:09:53.766Z",
"references/js_sdk/auth/Auth/methods/js_sdk.auth.Auth.callback/page.mdx": "2024-12-26T08:56:59.595Z",
"references/js_sdk/auth/Auth/methods/js_sdk.auth.Auth.login/page.mdx": "2024-12-26T08:56:59.394Z",
"references/js_sdk/auth/Auth/methods/js_sdk.auth.Auth.callback/page.mdx": "2024-12-26T11:37:18.128Z",
"references/js_sdk/auth/Auth/methods/js_sdk.auth.Auth.login/page.mdx": "2024-12-26T11:37:18.128Z",
"references/js_sdk/admin/types/js_sdk.admin.Logger/page.mdx": "2024-12-09T13:22:00.088Z",
"references/js_sdk/auth/Auth/methods/js_sdk.auth.Auth.logout/page.mdx": "2024-12-26T08:56:59.509Z",
"references/js_sdk/auth/Auth/methods/js_sdk.auth.Auth.refresh/page.mdx": "2024-12-26T08:56:59.671Z",
"references/js_sdk/auth/Auth/methods/js_sdk.auth.Auth.resetPassword/page.mdx": "2024-12-26T08:56:54.627Z",
"references/js_sdk/auth/Auth/methods/js_sdk.auth.Auth.register/page.mdx": "2024-12-26T08:56:54.624Z",
"references/js_sdk/auth/Auth/methods/js_sdk.auth.Auth.updateProvider/page.mdx": "2024-12-26T08:56:59.752Z",
"references/js_sdk/auth/classes/js_sdk.auth.Auth/page.mdx": "2024-12-26T08:56:59.269Z",
"references/js_sdk/auth/Auth/methods/js_sdk.auth.Auth.logout/page.mdx": "2024-12-26T11:37:18.128Z",
"references/js_sdk/auth/Auth/methods/js_sdk.auth.Auth.refresh/page.mdx": "2024-12-26T11:37:18.128Z",
"references/js_sdk/auth/Auth/methods/js_sdk.auth.Auth.resetPassword/page.mdx": "2024-12-26T11:37:18.128Z",
"references/js_sdk/auth/Auth/methods/js_sdk.auth.Auth.register/page.mdx": "2024-12-26T11:37:18.128Z",
"references/js_sdk/auth/Auth/methods/js_sdk.auth.Auth.updateProvider/page.mdx": "2024-12-26T11:37:18.128Z",
"references/js_sdk/auth/classes/js_sdk.auth.Auth/page.mdx": "2024-12-26T11:37:18.128Z",
"references/js_sdk/modules/js_sdk.admin/page.mdx": "2024-11-25T17:49:51.856Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.category/page.mdx": "2024-12-26T08:56:58.696Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.category/page.mdx": "2024-12-26T11:37:18.129Z",
"references/js_sdk/modules/js_sdk.store/page.mdx": "2024-10-22T15:09:53.787Z",
"references/js_sdk/modules/js_sdk.auth/page.mdx": "2024-10-22T15:09:53.779Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.collection/page.mdx": "2024-12-26T08:56:58.441Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.cart/page.mdx": "2024-12-26T08:56:58.566Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.customer/page.mdx": "2024-12-26T08:56:58.840Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.fulfillment/page.mdx": "2024-12-26T08:56:58.294Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.order/page.mdx": "2024-12-26T08:56:59.105Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.payment/page.mdx": "2024-12-26T08:56:58.958Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.product/page.mdx": "2024-12-26T08:56:54.620Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.region/page.mdx": "2024-12-26T08:56:54.620Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.collection/page.mdx": "2024-12-26T11:37:18.129Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.cart/page.mdx": "2024-12-26T11:37:18.129Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.customer/page.mdx": "2024-12-26T11:37:18.129Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.fulfillment/page.mdx": "2024-12-26T11:37:18.129Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.order/page.mdx": "2024-12-26T11:37:18.129Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.payment/page.mdx": "2024-12-26T11:37:18.130Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.product/page.mdx": "2024-12-26T11:37:18.130Z",
"references/js_sdk/store/Store/properties/js_sdk.store.Store.region/page.mdx": "2024-12-26T11:37:18.130Z",
"references/js_sdk/store/classes/js_sdk.store.Store/page.mdx": "2024-11-25T17:49:55.112Z",
"references/modules/js_sdk/page.mdx": "2024-10-22T15:09:52.263Z",
"references/core_flows/Inventory/Steps_Inventory/functions/core_flows.Inventory.Steps_Inventory.validateInventoryDeleteStep/page.mdx": "2024-12-25T08:43:13.769Z",
@@ -36,6 +36,62 @@ class MyPaymentProviderService extends AbstractPaymentProvider<
export default MyPaymentProviderService
```
### constructor
The constructor allows you to access resources from the [module's container](https://docs.medusajs.com/learn/fundamentals/modules/container)
using the first parameter, and the module's options using the second parameter.
:::note
A module's options are passed when you register it in the Medusa application.
:::
#### Example
```ts
import { AbstractPaymentProvider } from "@medusajs/framework/utils"
import { Logger } from "@medusajs/framework/types"
type Options = {
apiKey: string
}
type InjectedDependencies = {
logger: Logger
}
class MyPaymentProviderService extends AbstractPaymentProvider<Options> {
protected logger_: Logger
protected options_: Options
// assuming you're initializing a client
protected client
constructor(
container: InjectedDependencies,
options: Options
) {
super(container, options)
this.logger_ = container.logger
this.options_ = options
// TODO initialize your client
}
// ...
}
export default MyPaymentProviderService
```
#### Type Parameters
<TypeList types={[{"name":"TConfig","type":"`object`","description":"The type of the provider's options passed as a second parameter.","optional":true,"defaultValue":"","expandable":false,"children":[]}]} expandUrl="https://docs.medusajs.com/learn/fundamentals/data-models/manage-relationships#retrieve-records-of-relation" sectionTitle="AbstractPaymentProvider"/>
#### Parameters
<TypeList types={[{"name":"cradle","type":"`Record<string, unknown>`","description":"The module's container cradle used to resolve resources.","optional":false,"defaultValue":"","expandable":false,"children":[]}]} expandUrl="https://docs.medusajs.com/learn/fundamentals/data-models/manage-relationships#retrieve-records-of-relation" sectionTitle="AbstractPaymentProvider"/>
### identifier
Each payment provider has a unique identifier defined in its class. The provider's ID
@@ -111,6 +167,7 @@ class MyPaymentProviderService extends AbstractPaymentProvider<
const externalId = paymentData.id
try {
// assuming you have a client that captures the payment
const newData = await this.client.capturePayment(externalId)
return {
@@ -173,6 +230,7 @@ class MyPaymentProviderService extends AbstractPaymentProvider<
const externalId = paymentSessionData.id
try {
// assuming you have a client that authorizes the payment
const paymentData = await this.client.authorizePayment(externalId)
return {
@@ -225,6 +283,7 @@ class MyPaymentProviderService extends AbstractPaymentProvider<
const externalId = paymentData.id
try {
// assuming you have a client that cancels the payment
const paymentData = await this.client.cancelPayment(externalId)
} catch (e) {
return {
@@ -274,6 +333,7 @@ class MyPaymentProviderService extends AbstractPaymentProvider<
} = context
try {
// assuming you have a client that initializes the payment
const response = await this.client.init(
amount, currency_code, customerDetails
)
@@ -331,6 +391,7 @@ class MyPaymentProviderService extends AbstractPaymentProvider<
const externalId = paymentSessionData.id
try {
// assuming you have a client that cancels the payment
await this.client.cancelPayment(externalId)
} catch (e) {
return {
@@ -374,6 +435,7 @@ class MyPaymentProviderService extends AbstractPaymentProvider<
const externalId = paymentSessionData.id
try {
// assuming you have a client that retrieves the payment status
const status = await this.client.getStatus(externalId)
switch (status) {
@@ -428,6 +490,7 @@ class MyPaymentProviderService extends AbstractPaymentProvider<
const externalId = paymentData.id
try {
// assuming you have a client that refunds the payment
const newData = await this.client.refund(
externalId,
refundAmount
@@ -482,6 +545,7 @@ class MyPaymentProviderService extends AbstractPaymentProvider<
const externalId = paymentSessionData.id
try {
// assuming you have a client that retrieves the payment
return await this.client.retrieve(externalId)
} catch (e) {
return {
@@ -533,6 +597,7 @@ class MyPaymentProviderService extends AbstractPaymentProvider<
const externalId = data.id
try {
// assuming you have a client that updates the payment
const response = await this.client.update(
externalId,
{
@@ -707,4 +772,4 @@ Then, go through checkout to place an order. Your payment provider is used to au
## Useful Guides
- [Storefront Guide: how to implement UI for your payment provider during checkout](https://docs.medusajs.com/v2/resources/storefront-development/checkout/payment)
- [Storefront Guide: how to implement UI for your payment provider during checkout](https://docs.medusajs.com/resources/storefront-development/checkout/payment)