Skip to content

创建支付订单

支付订单用于把你网站里的业务订单连接到 Taria Pay 支付流程。你的服务端创建 payment intent 后,会得到 paymentIdcheckoutUrl

  • 使用 Hosted Checkout 时,前端跳转到 checkoutUrl
  • 使用 Checkout Button 时,前端按钮打开 checkoutUrl
  • 使用 Checkout Panel 时,前端把 paymentId 传给 <CheckoutPanel />

请求由谁发起

必须由你的服务端发起。不要从浏览器直接调用 Taria Pay API,也不要把 API key 放到前端、移动端包或公开仓库里。

推荐字段

字段是否必填说明
orderId必填你自己系统里的订单号,同一商户下必须唯一
amount必填订单金额,建议使用字符串
currency必填USDCUSDTEURC
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
  }
}
字段默认值说明
wallettrue是否展示"连接钱包"付款模块
transfertrue是否提供直接转账;设为 false 时服务端也会拒绝该订单的转账请求
transferDefaultOpenfalse转账区是否默认展开;wallet: false 时自动展开

规则与兜底:

  • wallettransfer 不能同时为 false,否则返回 400。
  • 两个开关都在服务端强制,不只是隐藏界面:关掉的方式对应的接口会返回 403。
  • 直接转账仍受网络支持范围约束。如果你设置了 wallet: false,但订单当前所在的网络不支持转账,结账页会自动回落展示钱包模块,并允许在该网络上用钱包付款,保证买家始终有可用的付款方式;买家切换到支持转账的网络后,钱包模块会重新隐藏。
  • 不传该字段时行为与现在完全一致,已有接入无需任何改动。

重要规则

  • 一个支付订单同时支持钱包支付和直接转账(结账页展示订单专属收款地址),无需传任何付款方式相关字段;两种方式的支付结果和 webhook 事件完全一致。想调整展示方式见上文 paymentMethods,更多背景见支持的付款方式
  • orderId 对同一商户必须唯一。
  • 重复创建相同 orderId 通常会返回冲突错误。
  • checkoutUrl 形如 https://checkout.tariapay.com/pi_<uuid>,请原样使用接口返回值,不要自行拼接结账 URL。paymentId 本身是不带前缀的 UUID。
  • 商家不需要提交链上归属地址。
  • 通常不需要在创建支付订单时传 chainId,结账页会展示当前可用的支付网络。
  • 不要用 successUrl 当作最终支付结果。

下一步