关于 autumn-add-payments
Autumn Payments 是实现 Autumn 支付流程的技能指南,涉及 Stripe 结账。内容涵盖结账与购买确认、产品状态场景、预付数量,以及 React 和后端集成要点。
主要功能
- 01结账与购买确认流程
- 02处理升级、降级和取消场景
- 03支持预付产品数量设置
- 04提供 React 与后端实现指引
- 05说明常见集成注意事项
适用场景
- 01构建订阅结账流程
- 02根据客户产品场景显示操作
- 03销售按席位或预付费产品
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ useautumn/ skills --skill autumn-add-payments安装后在 Claude Code 中输入/autumn-add-payments确认已加载。
详细介绍
Autumn Payments
代码示例和最新 API 请始终参阅 docs.useautumn.com。
Autumn 会自动处理 Stripe 结账、升级、降级和取消。
快速参考
支付流程
checkout- 返回 Stripe URL(新客户)或预览数据(回头客)attach- 在卡片已保存时确认购买
结账结果
| 字段 | 说明 |
|---|---|
url | Stripe 结账 URL(已保存卡片时为 null) |
product | 包含场景信息的目标产品 |
current_product | 客户当前的产品 |
lines | 发票明细项 |
total | 以主要货币单位表示的金额 |
currency | 货币代码 |
产品场景
| 场景 | 含义 | 操作 |
|---|---|---|
new | 尚未订阅 | 订阅 |
active | 当前方案 | 当前方案 |
scheduled | 已安排 | 已安排 |
upgrade | 更高级别 | 升级 |
downgrade | 更低级别 | 降级 |
renew | 已取消 | 续订 |
React 实现
import { useCustomer, usePricingTable } from "autumn-js/react";
const { checkout, attach } = useCustomer();
const { products } = usePricingTable();
// Checkout flow
const data = await checkout({ productId: "pro" });
if (data.url) {
window.location.href = data.url; // New customer
} else {
// Show confirmation dialog, then:
await attach({ productId: "pro" });
}
// Cancel
const { cancel } = useCustomer();
await cancel({ productId: "pro" });
// Or downgrade to free:
await attach({ productId: "free" });
后端实现
import { Autumn } from "autumn-js";
const autumn = new Autumn({ secretKey: process.env.AUTUMN_SECRET_KEY });
// Checkout
const { data } = await autumn.checkout({ customer_id, product_id: "pro" });
if (data.url) return redirect(data.url);
// Attach (after user confirms)
await autumn.attach({ customer_id, product_id: "pro" });
// Get products with scenarios
const { data: productsData } = await autumn.products.list({ customer_id });
预付费定价
对于按席位计费或预付费产品,请传入数量:
await autumn.checkout({
customer_id,
product_id: "credits_pack",
options: [{ feature_id: "credits", quantity: 500 }],
});
按钮文本模式
function getButtonText(product: Product): string {
const { scenario, properties } = product;
if (properties?.has_trial) return "Start Trial";
if (scenario === "active") return "Current Plan";
const text = { upgrade: "Upgrade", downgrade: "Downgrade", new: "Subscribe" };
return text[scenario] ?? "Enable";
}
常见注意事项
- URL 字段 - 使用的是
data.url,而不是data.checkout_url - 不要编写自定义逻辑 - 使用
products.list获取场景信息 - 自动按比例计费 - Autumn 会自动处理升级/降级的按比例计费
- 通过免费方案取消 - 建议关联免费方案,而不是直接取消
- 成功 URL - 传入
success_url,以便在 Stripe 结账后重定向
资源
评论
支持 Markdown