久违中控充值系统
全网话费接口API接入文档
API说明
接口请求方式
提交方式: HTTP POST (表单格式)
Content-Type: application/x-www-form-urlencoded
回调方式: HTTP POST (表单格式)
请求示例
// 请求参数示例
order_number=1&out_trade_num=1&mobile=1&otime=1&state=1
注意: 所有API请求都需要进行签名验证,签名规则请参考下面的签名说明部分。
响应格式
API响应数据格式为JSON。当HTTP状态码非200或响应体无数据时,可能是服务器或其他链路出现故障,无法准确判定是否成功下单,请通过订单查询或人工方式再次确认状态。
// 成功响应示例
{
"errno": 0,
"errmsg": "下单成功",
"data": {
"order_number": "XYZ111111",
"mobile": "18866667777",
"product_id": 10001,
"total_price": "95.00",
"out_trade_num": "ABC1111",
"title": "100元话费"
}
}
签名说明
所有接口请求和回调都需要进行签名验证,确保请求的安全性。
签名步骤
- 准备好所有待签名参数(除sign字段外)
- 将参数按名称字典升序排序
- 将排序后的参数键值对用&连接成字符串
- 在字符串最后追加&apikey=您的商户密钥
- 对签名字符串进行大写MD5加密
PHP签名示例
// 签名参数只是示例,并非真实提交数据
$param = ["参数名称"=>"参数值",...];
// 字典排序
ksort($param);
// 拼接签名串
$sign_str = http_build_query($param) . '&apikey=aaaaaaaaaaaaaaaaaaa';
// 签名
$sign = strtoupper(md5(urldecode($sign_str)));
$param['sign'] = $sign;
$httpdata = $param;
重要提示: 签名字符串不进行URL编码,如果使用php的http_build_query会自动进行URL编码,建议对签名字符串进行一次URL解码。提交报文中不要包含秘钥,容易造成秘钥暴露且不能验签通过。
充值提交接口
POST http://域名/yrapi.php/index/recharge
提交充值订单请求,系统将异步处理充值请求并通过回调通���结果。
请求参数
| 参数名称 | 数据类型 | 是否必填 | 描述 |
|---|---|---|---|
| out_trade_num | string | 必填 | 商户订单号,由商户自己生成唯一单号 |
| product_id | number | 必填 | 产品ID(代理后台查看) |
| mobile | string | 必填 | 充值号码(手机号、电费户、qq号等) |
| notify_url | string | 必填 | 回调地址,用于接收充值状态回调 |
| userid | string | 必填 | 商户ID,通过客服或代理后台获取 |
| amount | number | 可选 | 面值,(不传不校验) |
| price | number | 可选 | 最高成本,(不传不校验) |
| sign | string | 必填 | 签名 |
响应示例
{
"errno": 0,
"errmsg": "下单成功",
"data": {
"order_number": "XYZ111111",
"mobile": "18866667777",
"product_id": 10001,
"total_price": "95.00",
"out_trade_num": "ABC1111",
"title": "100元话费"
}
}
查询接口
查询用户信息
POST http://域名/yrapi.php/index/user
查询订单状态
POST http://域名/yrapi.php/index/check
用于主动查询一个或多个订单的当前状态。
请求参数
| 参数名称 | 数据类型 | 是否必填 | 描述 |
|---|---|---|---|
| userid | string | 必填 | 账户ID |
| out_trade_nums | string | 必填 | 商户订单号;多个用英文,分割 |
| sign | string | 必填 | 签名 |
响应字段说明
| 字段 | 描述 |
|---|---|
| state | 充值状态:-1取消,0充值中,1充值成功,2充值失败,3部分成功 |
| charge_amount | 充值成功面额 |
| charge_kami | 卡密流水 |
产品接口
获取产品类型和产品分类
POST http://域名/yrapi.php/index/typecate
获取产品列表
POST http://域名/yrapi.php/index/product
根据类型或分类筛选,获取可用的具体产品详情。
电费支持地区查询
POST http://域名/yrapi.php/index/elecity
回调说明
系统通过POST请求主动推送到商户提交的notify_url,通知订单状态变化。
回调参数
| 参数名称 | 描述 |
|---|---|
| order_number | 系统订单号 |
| out_trade_num | 商户订单号 |
| state | 充值状态:-1取消,0充值中,1充值成功,2充值失败,3部分成功 |
| mobile | 充值手机号 |
| otime | 成功/失败时间,10位时间戳 |
| sign | 签名字符串,用于验签 |
重要提示: 收到回调并验证签名无误后,必须返回纯文本字符串"success",否则系统会认为通知失败并进行重试(最多5次)。
PHP回调验签示例
$apikey = "你的秘钥";
$data = $_POST; // 接收所有post的数据
unset($data['sign']); // 删除掉sign字段
ksort($data); // 排序
$sign_str = urldecode(http_build_query($data)) . '&apikey=' . $apikey; // 获得签名原串
$mysign = strtoupper(md5($sign_str)); // 签名
if ($mysign == $_POST['sign']) {
// 签名正确,处理业务逻辑
}
其他接口
退单申请
POST http://域名/yrapi.php/index/cancel
提交取消订单的申请,提交后需等待上游系统异步处理,处理结果将通过回调接口通知。
注意: 请求之后为了避免订单取消后充值成功,所以只能提交申请退单,等上游系统处理完毕后会异步把订单信息处理结果推送到回调接口。
其他(忽略)
久违API文档
POST https://api.31335.cn