创建支付订单
在了解了 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 事件以更新您系统中的订单状态。
Updated about 14 hours ago
