Stripe Payment 服务

Stripe Payment Provider

使用 Stripe Checkout 创建 Payment 订单,并在 paid webhook 后发放 Credits。

const payment = new PaymentService({
  providers: [stripePaymentProvider()],
  resolve_topup: ({ topup_amount_minor }) => ({ credits: topup_amount_minor * 10_000 }),
  on_paid: async (record) => {
    await credits.topup({
      card: { kind: "primary", user_id: record.user_id },
      credits: record.credits,
      source: "payment",
      ref: record.payment_id,
      idempotency_key: `payment:${record.payment_id}`,
    });
  },
});

必须同时配置 STRIPE_SECRET_KEYSTRIPE_WEBHOOK_SECRET,否则 Provider 不可用且 webhook 会被拒绝。webhook 地址为 /v1/payment/webhook?provider=stripe

await city.payment.method("stripe").invoke({
  topup_amount_minor: 500,
  idempotency_key: "order_123",
});