创建支付订单
支付订单用于把你网站里的业务订单连接到 Taria Pay 支付流程。你的服务端创建 payment intent 后,会得到 paymentId 和 checkoutUrl。
- 使用 Hosted Checkout 时,前端跳转到
checkoutUrl。 - 使用 Checkout Button 时,前端按钮打开
checkoutUrl。 - 使用 Checkout Panel 时,前端把
paymentId传给<CheckoutPanel />。
请求由谁发起
必须由你的服务端发起。不要从浏览器直接调用 Taria Pay API,也不要把 API key 放到前端、移动端包或公开仓库里。
推荐字段
| 字段 | 是否必填 | 说明 |
|---|---|---|
orderId | 必填 | 你自己系统里的订单号,同一商户下必须唯一 |
amount | 必填 | 订单金额,建议使用字符串 |
currency | 必填 | USDC、USDT 或 EURC |
successUrl | 推荐 | 买家支付后返回你网站的地址 |
cancelUrl | 推荐 | 买家取消支付后返回你网站的地址 |
customer | 可选 | 买家邮箱、姓名等信息 |
metadata | 可选 | 你的业务上下文,例如购物车 ID |
paymentMethods | 可选 | 控制结账页展示哪些付款方式,见下文 |
expiresAt | 可选 | 订单过期时间,ISO-8601 格式 |
SDK 示例
ts
const paymentIntent = await tariapay.paymentIntents.create({
orderId: "order_1001",
amount: "12.50",
currency: "USDC",
successUrl: "https://merchant.example/success",
cancelUrl: "https://merchant.example/cancel",
customer: {
email: "buyer@example.com",
name: "Alice",
},
metadata: {
cartId: "cart_12",
},
});
return {
paymentId: paymentIntent.paymentId,
checkoutUrl: paymentIntent.checkoutUrl,
};REST 示例
bash
curl -X POST "https://api.tariapay.com/v1/payment-intents" \
-H "Authorization: Bearer tpk_..." \
-H "Content-Type: application/json" \
-d '{
"orderId": "order_1001",
"amount": "12.50",
"currency": "USDC",
"successUrl": "https://merchant.example/success",
"cancelUrl": "https://merchant.example/cancel",
"customer": {
"email": "buyer@example.com",
"name": "Alice"
},
"metadata": {
"cartId": "cart_12"
}
}'控制结账页的付款方式
默认情况下,结账页同时提供钱包支付和直接转账(在支持的网络上),转账区默认收起。你可以在创建支付订单时用可选的 paymentMethods 字段调整:
json
{
"orderId": "order_1001",
"amount": "12.50",
"currency": "USDC",
"paymentMethods": {
"wallet": true,
"transfer": true,
"transferDefaultOpen": true
}
}| 字段 | 默认值 | 说明 |
|---|---|---|
wallet | true | 是否展示"连接钱包"付款模块 |
transfer | true | 是否提供直接转账;设为 false 时服务端也会拒绝该订单的转账请求 |
transferDefaultOpen | false | 转账区是否默认展开;wallet: false 时自动展开 |
规则与兜底:
wallet和transfer不能同时为false,否则返回 400。- 两个开关都在服务端强制,不只是隐藏界面:关掉的方式对应的接口会返回 403。
- 直接转账仍受网络支持范围约束。如果你设置了
wallet: false,但订单当前所在的网络不支持转账,结账页会自动回落展示钱包模块,并允许在该网络上用钱包付款,保证买家始终有可用的付款方式;买家切换到支持转账的网络后,钱包模块会重新隐藏。 - 不传该字段时行为与现在完全一致,已有接入无需任何改动。
重要规则
- 一个支付订单同时支持钱包支付和直接转账(结账页展示订单专属收款地址),无需传任何付款方式相关字段;两种方式的支付结果和 webhook 事件完全一致。想调整展示方式见上文
paymentMethods,更多背景见支持的付款方式。 orderId对同一商户必须唯一。- 重复创建相同
orderId通常会返回冲突错误。 checkoutUrl形如https://checkout.tariapay.com/pi_<uuid>,请原样使用接口返回值,不要自行拼接结账 URL。paymentId本身是不带前缀的 UUID。- 商家不需要提交链上归属地址。
- 通常不需要在创建支付订单时传
chainId,结账页会展示当前可用的支付网络。 - 不要用
successUrl当作最终支付结果。
下一步
- 前端如何处理:跳转到结账页
- 支付按钮或 Checkout Panel:Checkout Button 与 Checkout Panel
- 支付后如何更新订单:接收支付结果