API 综述

基本流程

接入 API 的基本流程是:

  1. 申请充值帐号,获得 API_KEY
  2. 预存充值货款到账户余额
  3. 进行开发测试
  4. 部署上线

如何获得 API_KEY

确保密钥的安全性,API_KEY通过技术QQ聊天私下获取。

测试商户号

商户节点号(PlatID):10001

交易Key(API_KEY):4c56ff4ce4aaf9573aa5dff913df997a

测试登录帐号:test

测试登录密码:123456

签名

API调用时,需要传入Sign(用 API_KEY 对其请求参数签名后的结果)

签名(计算Sign参数)方法如下:

  1. 把所有请求参数作为数组 A (参数API_KEY除外,即后面你将会看到的API接口名称,不参与签名),对数组 A 按照键名进行升序排序。
  2. 把数组 A 中的键值对,顺序按照“value1value2...valueN”连接,得到一个字符串 B。
  3. 在字符串 B 的结尾跟上你自己的 API_KEY,得到字符串 C。
  4. 对字符串 C 进行 MD5 (32位、小写)加密,得到签名Sign。

代码示例:



    List lstOrder=new ArrayList();
    lstOrder.add("PlatID");
    lstOrder.add("NodeOrderID");
    lstOrder.add("Phone");
    lstOrder.add("Fee");
    lstOrder.add("CallBackUrl");
    lstOrder.add("TransType");
    lstOrder.add("QQType");
    lstOrder.add("IP");

    Map paramMap=new HashMap();
    //商户节点ID
    paramMap.put("PlatID", "10001");
    //商户订单号
    paramMap.put("NodeOrderID",Sequence.GetSeq());
    //充值手机号
    paramMap.put("Phone", "13752520707");
    //充值金额,以分为单位,10元
    paramMap.put("Fee", "1000");
    //回调地址
    paramMap.put("CallBackUrl", "http://*******");
    //Q币充值,默认00,话费充值,默认01
    paramMap.put("TransType", "01");
    //Q币类型 1000 Q币  1001 全国币 1456:会员 1455:红钻 1454:蓝钻 1453:黄钻 1452:绿钻 1451:粉钻 1460:紫钻
    paramMap.put("QQType", "1000");
    //客户端远程IP地址
    paramMap.put("IP", "113.119.132.169");

    String mekey="";
    String []strArray=(String[]) lstOrder.toArray(new String[lstOrder.size()]);
    Arrays.sort(strArray);
    List lstSort=Arrays.asList(strArray);
    for(int i=0;i《lstSort.size();i++)
    {
        mekey +=paramMap.get(lstSort.get(i));
    }
    mekey +=SignKey;
    //签名加密
    String Sign =MD5.md5(mekey).toUpperCase();
                

订单接口

Recharge.json

接口地址:http://http://127.0.0.1:16756//Recharge.json

接口用途:提交充值订单。

请求方式:HTTP GET/HTTP POST

返回格式:JSON

特别说明:

该接口返回的是下单结果,并不代表充值结果,因为充值过程需要提交到第三方平台异步处理。要获取最终的充值结果,请通过充值结果回调通知,或通过订单状态查询接口查询。

正常情况下(请求参数合法),通过该接口提交订单会立即返回下单成功,如遇到第三方平台维护或系统维护的情况,会立即返回下单失败。

请求参数说明:

参数名 是否必须 描述
PlatID 商户节点ID,由平台商分配
NodeOrderID 商户订单号,商户提交过来唯一订单号,例如20170315140124700939
Phone 充值手机号
Fee 充值金额,单位以分
CallBackUrl 回调地址,订单成功或失败,平台商自动回调商户的系统进行通知
TransType Q币充值,默认00,话费充值,默认01 (Q币充值,则QQType必须传值,01话费充值,可为空)
QQType Q币类型 1000 Q币 1456:会员 1455:红钻 1454:蓝钻 1453:黄钻 1452:绿钻 1451:粉钻 1460:紫钻
IP 商户获取客户端IP地址,充值IP地址
SoftwareType 软件类型,值为:Other、 Android、Iphone、Web、 Win Phone
IMSI APP充值,获取sim卡序列号
IMEI APP充值,获取手机序列号
Attach 回调也相应传回
Area 游戏区域
AreaName 游戏区域名称
Server 游戏服务器
ServerName 游戏服务器名称
Sign 对请求参数的签名值,详见签名方法

返回结果说明:


{
    success    = true | false (仅代表下单结果)
    errorCode = 错误代码
    errorMsg = 错误描述
    data = 下单成功子JSON信息,仅在接口调用成功(success=true)时返回
    {
        NodeOrderID = 商户提交过来订单号
        InnerOrderID = 平台内部订单号
        Fee = 充值金额
        OrderTime = 订单处理时间
    }
}
                

返回示例:


错误返回:
{
    "errorCode":"1001",
    "errorMsg":"该笔订单已经存在,不能重复下单",
    "success":false
}

正确返回:
{
    "data":
    {
        "NodeOrderID":"20170315140124700939",
        "InnerOrderID":"20170315140124700940",
        "Fee":"100","OrderTime":"20160331143824"
    },
    "errorCode":"0000",
    "errorMsg":"",
    "success":true
}
                

充值结果回调通知

如果提交订单时指定了回调通知地址(Recharge.json 中的 CallBackUrl 参数),那么订单处理完成后,充充会把订单信息及充值结果以参数的形式,请求该地址通知给你。

你的回调地址在处理完充充的请求后,应当输出“success”,以告知充充你已经收到通知。

回调请求方式为:HTTP GET

在回调请求时,充充会把回调参数签名,签名算法与请求充充接口中的一致(详见签名方法),你可以通过验证签名值来确认回调请求的合法性。

回调参数说明:

参数名 描述
PlatID 商户节点号,由平台商分配
NodeOrderID 商户提交过来唯一订单号,例如20170315140124700939
Phone 充值手机号
Fee 充值金额,单位以分
ResultTime 订单结果时间,YYYYMMDDHHMMSS
InnerOrderID 平台商产生的内部订单号
TransState 订单充值结果,0000 (充值成功) | 0001 (处理中) | 其它失败
Attach 商户传入的附加参数
Sign 对回调参数的签名值,详见签名方法

QueryDetail.json

接口地址:http://http://127.0.0.1:16756//QueryDetail.json

接口用途:查询充值订单状态。

请求方式:HTTP GET/HTTP POST

返回格式:JSON

请求参数说明(注意:订单状态有效保留7天):

参数名 是否必须 描述
PlatID 商户节点号,由平台商分配
NodeOrderID 商户订单号/平台订单,传其中任何1个即可,二选一
InnerOrderID
Sign 对请求参数的签名值,详见签名方法

返回结果说明:


{
    success    = true | false (仅代表下单结果)
    errorCode = 错误代码
    errorMsg = 错误描述
    data = 下单成功子JSON信息,仅在接口调用成功(success=true)时返回
    {
        NodeOrderID = 商户提交过来订单号
        InnerOrderID = 平台内部订单号
        Fee = 充值金额
        OrderTime = 订单处理时间
    }
}
                

返回示例:


错误返回:
{
    "errorCode":"1001",
    "errorMsg":"该笔订单已经存在,不能重复下单",
    "success":false
}

充值处理中返回:
{
    "errorCode":"0001",
    "errorMsg":"订单处理中,请再次查询",
    "success":true
}

充值成功返回:
{
    "data":
    {
        "NodeOrderID":"20170315140124700939",
        "InnerOrderID":"20170315140124700940",
        "Fee":"100","OrderTime":"20160331143824"
    },
    "errorCode":"0000",
    "errorMsg":"充值成功",
    "success":true
}
                

QueryFee.json

接口地址:http://http://127.0.0.1:16756//QueryFee.json

接口用途:库存余额查询。

请求方式:HTTP GET/HTTP POST

返回格式:JSON

请求参数说明:

参数名 是否必须 描述
PlatID 商户节点号,由平台商分配
QueryDate 查询时间,时间格式yyyyMMddHHmmss
Sign 对请求参数的签名值,详见签名方法

返回结果说明:


{
    success    = true | false (仅代表查询结果)
    errorCode = 错误代码
    errorMsg = 错误描述
    storeFee = 库存余额,单位是元,仅在接口调用成功(success=true)时返回
}
                

返回示例:


错误返回:
{
    "errorCode":"1019",
    "errorMsg":"无此渠道节点或系统异常",
    "success":false
}

查询成功返回:
{
    "errorCode":"0000",
    "errorMsg":"查询余额成功",
    "success":true"storeFee":102083.20204
}

                

充值错误代码说明

错误码(errorCode) 含义(errorMsg)
0000 成功
0001 处理中,需要调用查询接口
1013 该笔订单已经存在,不能重复下单
9999 签名错误
1003 商户节点ID为空
1004 商户订单号为空
1005 充值手机号为空
1006 充值金额为空
1007 回调地址为空
1008 IP地址为空
1009 签名为空
1010 传入商户节点号不正确
1011 交易类型为空
1012 IP地址效验错误
1014 Json解析错误
1015 充值金额不存在
1016 未配置汇率
1017 库存不足或其它错误
1018 交易订单充值失败
1019 无此渠道节点或系统异常

SDK下载

接口文档下载

接口文档

下载接口文档