为广大中小型企业提供中石油、中石化充值接口,支持单号码充值批量充值。丰富企业、商家的产品和服务。
支持中石化、中石化油卡充值,多种充值方式,平均1分钟之内到账。 5分钟到帐,如遇高峰期,会有适当延时。
中石化 | 50元 | 100元 | 200元 | 500元 | 1000元 |
中石油 | 50元 | 100元 | 200元 | 500元 | 1000元 |
参数列表描述
参数名 | 类型 | 描述 | 备注 |
appId | String | 商户唯一ID | 由平台提供 |
param | String | 业务参数 | Base64.encodeBase64String(Des (source串,appKey)) |
DES加密后成为二进制Bytes数组,然后通过Base64. encodeBase64String将Bytes数组转为可视的字符串, 该字符串即为param的值。
业务请求参数见第二部分:接口描述
完整参数请求Request JSON示例如下:
{
"appId": "5b11886057",
"param": "g9Gfx97qeC2FGCfapbCaSi0m0+QBWzzPvlifHi/2siSkVH8MtDCFL+rlrndZplrurYqQ6pHfxyRmEES2r0hJmfMO2N+
QJGD2FMhPH89OylxRyHqdN9CNj4QyZEgOA/
iLCFLMkXgObj4qXSf3eZt26UZdpvIEm8Jbs60ONsZfOnfm+
ELJnuuxCfij49gpA0i3VNIRiqQyrGrSBAZE/bNx4t2MjW4DFoKfYhrbh6uFM6s="
}
参数名 | 类型 | 描述 | 备注 |
status | Int | 接口返回状态 | (每个接口返回码详见第二部分具体参数描述) |
data | json | 返回业务数据实体 | (每个接口返回业务参数详见第二部分具体参数描述) |
msg | String | 接口状态描述 | |
throwable | String | 扩展字段,暂时不用 |
沙箱接口测试地址: http://platform.17bst.com/sandbox
① 请求地址:http://platform.17bst.com/charge-api/product/getProductList
② 请求方式:POST
③ 业务请求source参数列表:
参数名 | 参数类型 | 描述 | 备注 |
agtPhone | String | 代理号码 | 由平台提供 |
业务请求参数示例(source串):
{
"agtPhone": "15889640829"
}
④返回业务参数说明:
参数名 | 参数类型 | 描述 | 备注 |
productCode | Number | 产品编号 | |
businessCode | Number | 业务类型编号 | |
arriveType | Number | 到账类型 | 话费 0 慢充,1 正常; Q币 2-声讯,3-直通车 |
provinceId | Number | 省份编号 | |
cityId | Number | 城市编号 | |
province | String | 省份名称 | |
city | String | 城市名称 | |
tradeFace | Number | 面额 | |
price | Number | 原价 | |
businessName | String | 业务类型名称 | |
discount | Number | 折扣系数 |
status状态码、msg错误 对应表:
status | msg |
1000 | 查询成功 |
1013 | 代理号码不存在 |
1003 | 其他错误 |
完整冲正接口返回Response JSON示例:
{
"data": [
{
"productCode": 8,
"businessCode": 1,
"arriveType": 1,
"provinceId": 200,
"cityId": -1,
"province": "广东",
"city": null,
"tradeFace": 500,
"price": 500,
"discount": 96.89
},
{
"productCode": 12,
"businessCode": 1,
"arriveType": 1,
"provinceId": 200,
"cityId": -1,
"province": "广东",
"city": null,
"tradeFace": 100,
"price": 100,
"discount": 97.33
},
{
"productCode": 18,
"businessCode": 3,
"arriveType": 1,
"provinceId": 200,
"cityId": -1,
"province": "广东",
"city": null,
"tradeFace": 300,
"price": 500,
"discount": 89.56
}
],
"status": 1000,
"throwable": null,
"msg": "产品查询成功"
}
① 请求地址:http://platform.17bst.com/charge-api/trade/queryAgtBalance
② 请求方式:POST
③ 业务请求source参数列表:
参数名 | 参数类型 | 描述 | 备注 |
agtPhone | String | 代理号码 | 由平台提供 |
tradePwd | String | 交易密码 | 由平台提供 |
业务请求参数示例(source串):
{
"agtPhone": "13412341234",
"tradePwd": "1bbd886460827015e5d605ed44252251"
}
④ 返回业务参数说明
参数名 | 参数类型 | 描述 | 备注 |
credit | Number | 保证金余额 | 单位元 |
freeze | Number | 冻结金额 | 单位元 |
profit | Number | 佣金余额 | 单位元 |
status状态码、msg错误 对应表
status | msg |
1000 | 查询成功 |
1013 | 代理号码不存在 |
1004 | 交易密码错误 |
1003 | 服务器内部错误 |
完整冲正接口返回Response JSON示例:
{
"data": {
"credit": 917.279,
"freeze": 210,
"profit": 10.2
},
"status": 1000,
"throwable": null,
"msg": "查询成功"
}
当充值接口返回处理中时,此笔订单的最终结果会由平台主动发送回调通知到请求方
① 请求地址:(范例如下)
http://www.baishitong.com/notify?agtPhone=15889640829&reqStreamId=201605271125260040&state=0&sign=7cd65de92e2bb381104d1053d5efd7bc
② 请求方式:GET
③ 业务请求source参数列表:
参数名 | 参数类型 | 描述 | 备注 |
agtPhone | String | 代理号码 | 由平台提供 |
reqStreamId | String | 接入方充值流水号 | |
state | Int | 订单状态 | 0成功; 1失败 |
sign | String | 签名 | 32位md5小写(agtPhone+reqStreamId+state+appKey) |
④ 返回参数说明
接入方接收成功返回 0
接入方接收失败返回 1
① 请求地址:http://platform.17bst.com/charge-api/trade/fuelcard
② 请求方式:POST
③ 业务参数source包描述:
参数名 | 参数类型 | 描述 | 备注 |
reqStreamId | String | 商户请求流水号 | 必填,不能够重复 |
agtPhone | String | 代理号码 | 必填 |
productCode | Int | 产品编码 | 必填 |
cardNumber | String | 加油卡号码 | 必填 加油卡号(充值账号)中石化:以100011开头共19位、中石油:以90开头共16位 |
cardType | String | 加油卡类型 | 非必填项 (1:中石化、2:中石油;默认为1) |
chargeMoney | int | 充值金额(元) | 1.任意充需要待充值面值(1的整数倍) 2.卡充充值这里表示数量 |
tradePwd | String | 交易密码 | 必填 md5(交易密码) ,32位小写md5密文 |
receiveUrl | String | 回调地址 | http://xxxxxx.com/trade/notify |
请求source明文串:
{
"reqStreamId": "2018012029223020041",
"agtPhone": "18664940068",
"productCode": 12000011,
"cardNumber ": "1000113200006632588",
"chargeMoney": 30,
"tradePwd": "bae5e3208a3c700e3db642b6631e95b9",
"receiveUrl ": "http: //xxx.com/notify"
}
④ 返回业务参数说明
参数名 | 参数类型 | 描述 | 备注 |
reqStreamId | String | 请求方充值流水号 | |
orderNo | String | 平台订单号 | |
balance | Number | 充值后代理商保证金余额 | 单位:元 |
status | String | 状态 | 参考状态对应表 |
applyTime | String | 交易时间 | |
chargeNumBalance | Number | 充值后客户号码余额 | 单位:元 |
状态码对应表:
status状态码、msg错误 对应表
status | msg |
1000 | 充值成功(成功) |
1001 | 充值失败(失败) |
1002 | 未设置供应商(失败) |
1003 | 服务器内部错误(处理中) |
1004 | 交易密码错误(失败) |
1004 | 交易密码错误(失败) |
1005 | 代理商账号已被冻结(失败) |
1006 | 未开通该业务类型(失败) |
1007 | 无效号码或空号(失败) |
1008 | 未上架该产品(失败) |
1010 | 余额不足(失败) |
1011 | 订单正在处理中(处理中) |
1011 | 订单正在处理中(处理中) |
1012 | 其他存疑错误(处理中) |
1013 | 代理号不存在(失败) |
1014 | 充值超时(处理中) |
1016 | 相同流水号不允许重复提交(失败) |
完整返回参数示例:
{
"data": {
"reqStreamId": "2018012029223020049 ",
"orderNo": "151720896834567756 ",
"balance": 0,
"applyTime": "2018-01-29 14:56:08",
"chargeNumBalance": 0
},
"status": 1000,
"msg": "充值成功"
}
① 请求地址:http://platform.17bst.com/charge-api/trade/getFuelOrderInfo
② 请求方式:POST
③ 业务请求source参数列表:
参数名 | 参数类型 | 描述 | 备注 |
reqStreamId | String | 请求方原充值流水号 | |
agtPhone | String | 代理号码 | 由平台提供 |
业务请求参数示例(source串):
{
"reqStreamId": "201606161725120324",
"agtPhone": "15889640829"
}
④ 返回业务参数说明
参数名 | 参数类型 | 描述 | 备注 |
reqStreamId | String | 请求方请求流水号 | |
orderNo | String | 平台订单号 |
status状态码、msg错误 对应表
status | msg | 客户端相应处理措施 |
1000 | 充值成功 | 成功处理 |
1001 | 充值失败 | 失败处理 |
1015 | 订单信息不存在 | 失败处理 |
1011 | 充值中 | 当做充值中,5分钟后再次查询或人工核实 |
1013 | 代理号码不存在 | 当做充值中,5分钟后再次查询或人工核实 |
1003 | 其他错误 | 当做充值中,5分钟后再次查询或人工核实 |
1017 | 查询频率过快 | 当做充值中,5分钟后再次查询或人工核实 |
1019 | 查询端口关闭 | 当做充值中,5分钟后再次查询或人工核实 |
PS:同一笔订单号五分钟内,只有第一次查询有效,5分钟内的其他查询均返回1017查询频率过快
完整查询接口返回Response JSON示例:
{
"data": {
"reqStreamId": "2018012029223020049",
"orderNo": "151720896834567756"
},
"status": 1000,
"msg": "充值成功"
}