创建支付订单

在了解了 DogPay 的收单业务流程后,本指南将引导您通过调用 API 创建第一笔 Web3 支付订单。

🛠️ 1. 准备工作:获取币种配置

DogPay 支持多条区块链及多种加密货币。在创建订单前,您需要知道目标币种在特定公链上的唯一配置 ID (currencyConfigId)。

您可以调用 获取币种配置 (Currency Config) 接口 获取支持的列表。例如,获取以太坊 (Ethereum) 上的 USDT 配置:

// 响应示例片段
{
  "id": "config_eth_usdt_001",
  "pay_channel": "pay_002",
  "currency": "USDT",
  "chain": "Ethereum",
  "status": "active"
}

注:请保存您需要使用的 id,它将在创建订单时作为 currencyConfigId 传入。


🚀 2. 发起创建订单请求

获取到配置 ID 后,即可调用 创建支付订单 (Create Pay Order) 接口 创建订单。

⚠️

开发排坑指南 (Developer Notes)

  • 金额限制 (Minimum Amount):为了避免微小金额(Dust Amount)被网络过滤,订单金额 (orderAmount) 必须大于或等于 0.02。例如,充值测试时如果传入 0.01,该订单将被系统拦截。
  • 通道版本 (Channel Version):由于系统升级,请优先将 payChannel 参数固定传值为 pay_002。旧版通道 (pay_001) 已停止更新。

示例请求 (Request)

curl -X POST "[https://sandbox-api-v2.dogpay.com/open-api/v1/pay](https://sandbox-api-v2.dogpay.com/open-api/v1/pay)" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "orderAmount": "0.02",
           "payChannel": "pay_002",
           "currencyConfigId": "config_eth_usdt_001",
           "goodsName": "Premium Subscription",
           "callId": "order_req_1712345678",
           "successUrl": "[https://your-merchant-site.com/payment/success](https://your-merchant-site.com/payment/success)",
           "failureUrl": "[https://your-merchant-site.com/payment/failed](https://your-merchant-site.com/payment/failed)"
         }'

核心参数说明

参数名必填说明
orderAmount订单金额(单位为您设定的法币或稳定币,必须 $\ge$ 0.02)。
payChannel支付通道。推荐并优先使用 pay_002
currencyConfigId链与币种的组合配置 ID(通过 Step 1 获取)。
goodsName商品名称或简短描述,将展示在收银台页面。
callId您的业务系统生成的唯一请求 ID,用于保证请求的幂等性 (Idempotency)
successUrl用户支付成功后,收银台前端将跳转回您网站的该 URL。
failureUrl用户支付失败或主动取消时,前端将跳转回该 URL。

🔗 3. 处理响应与展示收银台

如果请求成功,DogPay 将返回包含 payUrl(托管收银台链接)的响应数据。

示例响应 (Response)

{
  "code": 0,
  "message": "success",
  "data": {
    "transaction": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "status": "pending",
      // ... 其他订单详情 ...
    },
    "payInfo": {
      "payUrl": "[https://pay.dogpay.com/checkout/550e8400-e29b-41d4](https://pay.dogpay.com/checkout/550e8400-e29b-41d4)",
      "expireTime": 1712349278
    }
  }
}

下一步操作

提取响应中的 data.payInfo.payUrl,并在您的前端应用中向用户展示(可通过直接重定向、内嵌 iframe 或生成二维码的形式)。 用户在收银台完成支付后,请监听相关的 Webhook 事件以更新您系统中的订单状态。