api说明文档.md 11.9 KB

51流量充值平台对外接口说明文档 V4.2

  • 文档说明:
    • 服务器域名: 地址具体咨询对接技术人员;
    • 参数描述: # 后面为注释内容;
    • 示例说明: 本文档接口调用示例采用Linux下的curl命令发起http请求;
    • 请求参数设置 Content-Type:application/json;
    • 返回参数说明: 本文档所有接口返回的数据一律为json格式数据;
    • api_key: 生成sign所需的api_key(50位): 请合作方登陆商户后台,点击左侧 "我的信息" 中查看;

接口目录

一、 使用商户余额充流量接口(单个号码充值)

  • 提交方式: POST
  • 参数格式: JSON
  • URL: https://服务器域名/api/accounts/chargeSingleNumber

接收参数:

参数 类型 必填 描述 范例
username string 用户账号 username
phone string 充值号码 13888888888
capacity string 流量包大小: (单位:MB) 10
sign string 签名:
按此顺序拼接相应的字符串与值,并用标准的SHA1加密(40位小写):
SHA1("api_key=" + api_key + "&capacity=" + capacity + "&phone=" + phone + "&username=" + username)
8814988657f8bc805e951bc46b0862bf90555b01
timestamp string 请求时间戳:
14位,格式: yyyyMMddHHmmss
20160113133256
area string 流量范围:
0 : 全国包
1 : 省漫游包
2 : 省内包
0
partner_order_no string 合作方订单唯一标识: 若提交,在推送中会带有 partner_order_no 信息 2016011313325615104
notify_url string 回调推送地址 http://www.buyaodianwo2333.com
available_length string 流量有效时长:
单位:小时。超过24小时的, 系统会换算成24的倍数。如: 传16表示效时长是16小时, 传24表示有效时长是24小时, 传25依然表示有效时长为24小时, 传55表示有效时长为48小时。
如果产品是以“天”为计量的, 请换算成小时。如: “10天”请传入240。
(不传默认当月有效)
720
clear_type string 流量清零方式:
0: 零点清零
1: 按照流量有效时长清零
(不传默认零点清零)
0
submit_area string 提交区域:
0: 全国范围
1: 省范围
2: 市范围
(不传根据area自动寻找范围,若要使用市包,请传2)
1

调用json示例:

{ "username":    "11111",
  "phone":       "13888888888",
  "capacity":    "10",
  "area":        "0", 
  "notify_url":  "http://www.buyaodianwo2333.com", 
  "timestamp":   "20160113133256",
  "partner_order_no": "2016011313325615104",
  "sign":             "5e646367ae318627685f98aa2a6c13576f8e964c" }

curl调用示例:

curl -d '{"username": "11111", "phone": "13888888888", "capacity": "10","area": "0", notify_url: "http://www.buyaodianwo2333.com", "timestamp":"20160113133256", "partner_order_no": "2016011313325615104","sign": "5e646367ae318627685f98aa2a6c13576f8e964c"}' 'https://服务器域名/api/accounts/chargeSingleNumber' -H Content-Type:application/json -v

调用成功返回json数据,同步响应参数说明:

参数 类型 必填 描述 范例
success int 充值请求否处理:
1: 调用成功,已处理
0: 调用失败,未处理
1
message string 提示信息 充值请求提交成功!
group int 这次充值请求的批次号(15位,不唯一) 147486690206934
code int 错误码(只在调用失败时返回) 详见文档末详情见下文【六、错误码】 301
partner_order_no string 合作方订单唯一标识 2016011313325615104

返回json示例:

{ "success":          1, 
  "message":          "充值请求提交成功!", 
  "group":            1474866902069,
  "partner_order_no": "2016011313325615104" }

二、 结果通知(接收回调,接口方推送)

  • 特别说明: 每条结果会默认推送5次,间隔为两分钟,合作方得到结果响应大写字符串"OK",则停止该条结果推送。 结果通知与结果查询只要选择一种方式,建议合作方使用接收回调的方法。
  • 推送地址: 由合作方提供。可在发送订购请求中携带notify_url参数来声明
  • 通知方式: POST
  • 参数格式: JSON
  • 编码格式: UTF-8

推送参数:

参数 类型 必填 描述 范例
phone int 充值号码 13888888888
group int 这次充值请求的批次号(若将此作为订单号,请结合号码查找订单) 147486690206934
result int 1: 充值成功
0: 充值失败
1
remark string 结果描述 充值成功
partner_order_no string 合作方订单唯一标识 2016011313325615104

json示例:

{ "phone":            13888888888, 
  "result":           1, 
  "group":            1474866902069,
  "remark":           "充值成功",
  "partner_order_no": "2016011313325615104" }

三、 按订单号查询单个订单状态(合作方主动查询,在无法接受回调时可使用)

  • 特别说明: 只返回单条订单的充值状态,相同订单的查询频率不可小于60秒
  • URL: https://服务器域名/api/accounts/querySingleOrder
  • 提交方式: POST
  • 提交参数格式: JSON
  • 返回参数格式: JSON
  • 返回参数编码: UTF-8

接收参数:

参数 类型 必填 描述 范例
username string 用户账号 username
phone string 充值记录的手机号 13888888888
partner_order_no string 充值记录的合作方订单号 asdasdasdasd
sign string 签名:
按此顺序拼接相应的字符串与值,并用标准的SHA1加密(40位小写):
SHA1("api_key=" + api_key + "&username=" + username)
8814988657f8bc805e951bc46b0862bf90555b01

调用json示例:

{ "username":         "username", 
  "phone":            "13888888888",
  "sign":             "8814988657f8bc805e951bc46b0862bf90555b01",
  "partner_order_no": "asdasdasdasdasd" }

curl调用示例:

curl -d '{"partner_order_no": "asdasdasdasd", "username": "12345678900", "phone": "13888888888", "sign": "8814988657f8bc805e951bc46b0862bf90555b01"}' 'https://服务器域名/api/accounts/querySingleOrder' -H Content-Type:application/json -v

同步响应参数说明:

参数 类型 必填 描述 范例
success int 此次调用是否成功
1: 调用成功(不代表充值成功)
0:调用失败(不代表充值失败)
1
result int 订单结果状态,仅在调用成功时出现。
1: 充值成功
0: 充值失败
2: 正在充值
1
phone string 充值记录的手机号 13888888888
partner string 充值记录的合作方订单号 asdasdasdasd
message string 描述 充值成功
code int 错误码 详见文档末详情见下文【六、错误码】 606

返回json示例:

{ "success":          1, 
  "result":           1, 
  "phone":            "13888888888",
  "message":          "充值成功",
  "partner_order_no": "asdasdasdasdasd" }

四、 商户余额查询

  • 说明: 返回商户当前的余额。
  • URL: https://服务器域名/api/accounts/getBalance
  • 提交方式: POST
  • 参数格式: JSON

接收参数:

参数 类型 必填 描述 范例
username string 用户账号 username
sign string 签名:
按此顺序拼接相应的字符串与值,并用标准的SHA1加密(40位小写):
SHA1("api_key=" + api_key + "&username=" + username)
8814988657f8bc805e951bc46b0862bf90555b01

调用json示例:

{ "username":         "username", 
  "sign":             "8814988657f8bc805e951bc46b0862bf90555b01"}

curl调用示例:

curl -d '{"username": "your_username", "sign": "8814988657f8bc805e951bc46b0862bf90555b01"}' 'https://服务器域名/api/accounts/getBalance' -H Content-Type:application/json -v

同步响应参数说明:

参数 类型 必填 描述 范例
success int 接口调用是否成功 1
company_name string 商户名称 51流量
balance float 余额 2333.33
message string 提示信息 余额查询成功!
code int 错误码 详见文档末详情见下文【六、错误码】 606

返回json示例:

{ "success":1,
  "company_name":"51流量",
  "balance":2333.33 }

五、 加密方法

所谓加密就是生成sign参数。

# 以“为单个号码充流量接口”为例
# 在调用该接口时,sign的加密需要[api_key, capacity, phone, username]四个参数。api_key在合作方登陆商户后台,点击左侧 "我的信息" 中查看

# Talk is cheap, here is code:

# 变量赋值
api_key = "asdasdasdasdasdasdasdasdasdasd..."
capacity = "10"
phone = "13888888888"
username = "your_username"

# 用标准的SHA1加密生成sign, 注意后方字符串拼接顺序不可变
sign = SHA1("api_key=" + api_key + "&capacity=" + capacity + "&phone=" + phone  + "&username=" + username)

# 特别提示:不同方法sign所需的加密参数不同,详见该方法中对sign的描述

六、 错误码

错误码 说明
201 手机号码不正确!
202 必须要有手机号
301 商户余额不足,无法充值
302 该商户不存在
303 该商户被禁用
305 无该省份充值权限
306 未使用授权ip
307 不存在或不拥有该套餐充值权限,请检查流量包
308 该接口不支持代理商子级商户
309 商户尚未开通该产品
310 折扣尚未确认
311 订单号重复
401 该商户不存在此条记录
402 找不到该订单
403 查询订单号不可为空!
405 相同订单查询频率需小于60秒!
501 上级代理商余额不足
601 号码与流量包不匹配
602 该运营商充值渠道暂时关闭
603 该省充值渠道暂时关闭
604 该运营商不提供此流量包
605 缺少号码所需的流量包
606 sign验证失败
608 该方法已关闭
607 未知错误
701 该商品尚未激活
702 该商品维护中
703 折扣配置有误,请联系商务