接口概览 企业批量下单
后端接口控制器:app\api\controller\Companyorder 提供两个核心能力:
- 提交订单:批量提交卡密 / 账号密码等信息,生成平台订单。
- 查询订单:按企业订单号查询详细提交内容与处理结果。
请求方式
POST / application/json
字符编码
UTF-8
返回格式
JSON(统一 suc / err 包装)
快速入门(建议第一次接入必看)
1
准备账号与密钥
在千牛开放平台申请企业账号,获取 appkey 和对应的密钥(secret)。这两个值只在您的服务端保存。
2
生成签名
sign查看签名规则 按「鉴权与签名」中的规则,用 appkey + 业务参数 + secret 生成 sign,在每次请求时一并提交。
3
调用下单接口 查看请求示例
把 appkey、sign 和订单明细一起传给 /api/companyorder/sendcode,拿到平台订单号 order_id。
4
查询处理结果 查看查询接口
用返回的 order_id 调 /api/companyorder/get_order_list,即可查看每一条卡密的最终状态和价格等信息。
建议按上面 4 个步骤依次阅读本页内容,直接复制对应章节中的请求示例,替换为自己的 appkey、sign 和业务参数,即可在 Postman 或代码中快速调通接口。
鉴权与签名说明
所有接口都需要通过 appkey 和 sign 进行身份校验。
重要
密钥(secret)只保存在您的服务端,前端页面、APP、文档示例中都不要填写真实密钥;下方签名示例仅演示计算规则。
公共参数
| 参数名 | 类型 | 说明 |
|---|---|---|
appkey | string | 企业在平台申请的唯一身份标识。 |
sign | string | 请求签名,用于验证参数未被篡改。 |
签名规则(伪代码示例)
典型做法是:按参数名升序排序 → 拼接为 key=value 字符串 → 在末尾追加密钥 → 对整个字符串做 MD5 并转大写,得到 sign。
// 伪代码示例:计算 sign
// 1. 准备好要参与签名的参数(不含 sign 本身)
$data = [
'appkey' => 'YOUR_APPKEY',
'type' => 'JD',
'money' => 100,
'callback_url' => 'https://yourcallback.com/notify',
// 其他业务参数...
];
// 2. 移除 sign 字段(如果有)
unset($data['sign']);
// 3. 按参数名升序排序
ksort($data);
// 4. 组装 "key=value" 形式的字符串
$signStr = '';
foreach ($data as $k => $v) {
if ($v === '' || $v === null) {
continue;
}
// 如果是数组,先转成 JSON 字符串
$value = is_array($v) ? json_encode($v, JSON_UNESCAPED_UNICODE) : $v;
$signStr .= $k . '=' . $value . '&';
}
$signStr = rtrim($signStr, '&');
// 5. 在末尾拼接密钥(secret)
$signStr .= '&key=YOUR_SECRET_KEY';
// 6. 计算 MD5 并转成大写,得到最终 sign
$sign = strtoupper(md5($signStr));提交订单
批量提交卡密 / 账号密码等信息,生成平台订单。
POST
/api/companyorder/sendcode请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
appkey | string | 是 | 企业在平台申请的 appkey。 |
sign | string | 是 | 签名字符串,见「鉴权与签名」。 |
type | string | 是 | 商品类型编码,如 JD、ZSY 等,详见「商品类型对照表」。 |
money | number | 是 | 面值/金额,与 integraltype.a_money 对应。 |
callback_url | string | 是 | 异步通知回调地址。 |
coupons | array | 是 | 卡/账号列表,每项见下。 |
coupons[].account | string | 否 | 账号或卡号。 |
coupons[].password | string | 否 | 密码/卡密。 |
请求示例
curl -X POST 'https://qnhs.sktpw.com/index.php/api/companyorder/sendcode' \
-H 'Content-Type: application/json' \
-d '{
"appkey": "YOUR_APPKEY",
"type": "JD",
"money": 100,
"callback_url": "https://yourcallback.com/notify",
"coupons": [
{
"account": "1234 5678 9012 3456",
"password": "ABCD-EFGH-IJKL-MNOP"
},
{
"account": "2234 5678 9012 3456",
"password": "WXYZ-1234-5678-9999"
}
],
"sign": "CALCULATED_SIGN"
}'成功响应示例
{
"code": 1,
"msg": "成功",
"data": {
"order_id": "120123123123123123123",
"money": 100,
"type": "JD"
}
}查询订单
根据企业订单号查询提交的卡信息及处理结果。
POST
/api/companyorder/get_order_list请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
appkey | string | 是 | 企业在平台申请的 appkey。 |
sign | string | 是 | 签名字符串。 |
order_id | string | 否 | 企业订单号 c_id。 |
page | number | 否 | 页码,从 1 开始,单页最多 1000 条。 |
请求示例
curl -X POST 'https://qnhs.sktpw.com/index.php/api/companyorder/get_order_list' \
-H 'Content-Type: application/json' \
-d '{
"appkey": "YOUR_APPKEY",
"order_id": "120123123123123123123",
"page": 1,
"sign": "CALCULATED_SIGN"
}'成功响应示例
{
"code": 1,
"msg": "成功",
"data": [
{
"id": 1,
"c_id": "120123123123123123123",
"price": 98.5,
"account": "1234 5678 9012 3456",
"password": "ABCD-EFGH-IJKL-MNOP"
}
]
}商品类型 type 对照表
提交订单时的 type 与后端 goods_type($type) 一一对应。
| 分类 | type | 说明 |
|---|---|---|
| 加油卡 | ZSY | 中石油卡号卡密 |
ZSH | 中石化卡号卡密 | |
ZSHP | 中石化纯卡密 | |
| 电商卡 | JD | 京东e卡秒消 |
JDD | 京东e卡大额 | |
TMA | 天猫卡号卡密秒消 | |
TMG | 天猫购物券 | |
TMC | 天猫超市直充链接 | |
YH | 永辉超市卡 | |
HM | 盒马礼品卡 | |
RX | 瑞祥商联卡 | |
SN | 苏宁易购礼品卡 | |
HMT | 盒马提货券 | |
WME | 沃尔玛8688 | |
WMR | 沃尔玛2326 | |
DRF | 大润发秒消 | |
WP | 唯品会礼品卡 | |
WLT | 万里通卡券 | |
QCS | 屈臣氏卡密 | |
QCSZ | 屈臣氏代金券 | |
MT | 美团礼品卡 | |
BL | i百联ok秒消 | |
TH | 天虹礼品卡 | |
THT | 天虹提货券 | |
WS | 万商卡6800 | |
WSW | 万商卡5600 | |
DDM | 叮咚买菜 | |
DDMP | 叮咚买菜纯卡密 | |
GAT | 关爱通积分卡 | |
MD | 麦德龙 | |
SD | 山东一卡通 | |
PP | 朴朴超市卡 | |
YF | 裕福集团 | |
XM | 小米礼品卡 | |
YZ | 银座超市卡 | |
ZB | 中百购物卡 | |
WM | 物美卡 | |
HR | 华润万家 | |
ZX | 资和信商通卡 | |
YD | 一号店 | |
YT | 银泰百货 | |
| 出行券 | RXH | 任我行秒消 |
QNE | 去哪儿礼品卡 | |
DC | 滴滴快车券 | |
LM | 驴妈妈礼品卡 | |
DZ | 滴滴专车 | |
GD | 高德打车 |

