支付
学习如何在 MkSaaS 中设置和使用支付
MkSaaS 支持多种支付提供商,您可以根据需要选择合适的支付方案。
支付提供商
自定义支付提供商
MkSaaS 支持扩展新的支付提供商:
- 在
src/payment/provider目录中创建新的文件 - 从
types.ts实现PaymentProvider接口 - 在
index.ts中更新支付服务提供商选择逻辑
示例实现:
import {
PaymentProvider,
CreateCheckoutParams,
CheckoutResult,
CreatePortalParams,
PortalResult,
Subscription,
getSubscriptionsParams
} from '@/payment/types';
export class MyProvider implements PaymentProvider {
constructor() {
// 初始化您的支付服务提供商
}
public async createCheckout(params: CreateCheckoutParams): Promise<CheckoutResult> {
// 创建结账会话的实现
}
public async createCustomerPortal(params: CreatePortalParams): Promise<PortalResult> {
// 创建客户门户的实现
}
public async handleWebhookEvent(payload: string, signature: string): Promise<void> {
// 处理 webhook 事件的实现
}
}然后在 index.ts 中更新支付服务提供商选择:
import { MyProvider } from './provider/my-provider';
export const initializePaymentProvider = (): PaymentProvider => {
if (!paymentProvider) {
if (websiteConfig.payment.provider === 'stripe') {
paymentProvider = new StripeProvider();
} else if (websiteConfig.payment.provider === 'creem') {
paymentProvider = new CreemProvider();
} else if (websiteConfig.payment.provider === 'my-provider') {
paymentProvider = new MyProvider();
} else {
throw new Error(
`不支持的支付提供商: ${websiteConfig.payment.provider}`
);
}
}
return paymentProvider;
};
MkSaaS文档