OpenAPI 接口文档
OpenAPI 接口文档
购买动态流量
使用钱包余额同步购买动态流量。成功响应表示流量已经生效,并返回对应的流量批次编号。
接口信息
| 项目 | 内容 |
|---|---|
| Method | POST |
| Path | /open-api/v1/dynamic/traffic/purchases |
| 认证 | X-API-Key |
| Content-Type | application/json |
| 处理方式 | 同步 |
| 请求号 | 必填,保护期 24 小时 |
请求体
| 字段 | 类型 | 必填 | 说明 | 约束 |
|---|---|---|---|---|
request_no |
string | 是 | 仅用于防止重复受理的调用方请求号 | 1~64 位,仅字母、数字、_、- |
product_code |
string | 是 | 产品编码 | 使用产品列表返回的值,长度不超过 64 |
traffic_gb |
string | 是 | 购买流量,单位 GB | 大于 0,普通十进制字符串,最多 6 位小数,并满足产品规格 |
不接受支付方式、优惠信息或其他未列出的字段。
购买金额按累计阶梯计算:各阶梯实际覆盖的流量分别乘以对应单价后求和,最终总金额使用 HALF_UP 四舍五入到小数点后 4 位,不会把全部流量按单一阶梯计价。提交订单时会按当时有效的价格重新计算;产品查询结果仅供预估。
请求示例
curl --request POST \
--url 'https://api-test.puraroute.com/gin/open-api/v1/dynamic/traffic/purchases' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <YOUR_API_KEY>' \
--data '{
"request_no": "traffic-20260824-001",
"product_code": "DYNAMIC_1GB",
"traffic_gb": "1.000000"
}'
示例产品编码只说明格式。调用时请使用查询动态流量产品实时返回的值。
响应参数
| 字段 | 类型 | 说明 |
|---|---|---|
order_no |
string | 动态流量订单号 |
status |
string | 固定为 COMPLETED |
product_code |
string | 产品编码 |
traffic_gb |
string | 实际购买流量,GB |
order_amount |
string | 下单时重新计算的订单金额,USD;固定 4 位小数 |
currency |
string | 固定为 USD |
traffic_lot_id |
string | 本次购买生成的流量批次编号 |
finish_time |
string | 完成时间,GMT+8 ISO-8601 |
成功响应示例
{
"code": 0,
"msg": "success",
"data": {
"order_no": "PO1912345678901234567",
"status": "COMPLETED",
"product_code": "DYNAMIC_1GB",
"traffic_gb": "1.000000",
"order_amount": "0.8500",
"currency": "USD",
"traffic_lot_id": "1912345678901234568",
"finish_time": "2026-08-24T15:30:01.000+08:00"
},
"next": null
}
可能的错误码
code |
说明 | 建议处理 |
|---|---|---|
300006 |
请求号重复 | 查询订单或流量批次,不要重放 |
300184 |
钱包余额不足 | 补充余额后使用新的请求号重新购买 |
300320 |
资源价格不存在或与请求规格不匹配。 | — |
400001 |
认证失败 | 检查 API Key |
400009 |
请求参数或流量规格不符合要求 | 修正请求 |
500000 |
系统处理失败,创建结果可能无法确认 | 先查询订单、余额和批次,不要直接重新创建 |
request_no 仅用于防止重复受理,不是结果查询键,也不会重放第一次结果。详见请求号与重复提交。