多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 注意:本文档后期不在跟新,新文档迁移到:[http://www.openkit.cc/docs/openkit/#/](http://www.openkit.cc/docs/openkit/#/) # 首先感谢使用OpenKit工具包 ## 反馈交流QQ群:696279396 |更新时间|版本|作者| |:--:|:--:|:--:| |2018-1-26 17:56|V1.1.3|贲海龙| ### 首先你需要新建一个话费的配置文件 ```java // 你可以new一个空对象,然后使用set方法 HuafeiConfig huafeiConfig = new HuafeiConfig(); // 你也可以在创建对象的时候直接将必传参数传进去 HuafeiConfig huafeiConfig = HuafeiConfig(String key, String openId) ``` > 具体参数说明,如果有需要,自己使用set方法设置 |属性|是否必传|说明| |:--:|:--:|--| |key|是|申请的接口Appkey| |openId|是|在个人中心查询| |telCheckUrl|否|检测手机号码和金额是否能充值地址| |telQueryUrl|否|根据手机号码和面值查询商品信息地址| |onlineUrl|否|根据用户提供的请求为指定手机直接充值地址| |yueUrl|否|查询账户余额地址| |orderstaUrl|否|订单状态查询地址| |orderListUrl|否|历史订单列表地址| ### 接下来,我们来看看对应的方法(所有参数必传) - 1、检测手机号码是否能充值接口 > 调用:HuafeiService.telCheck(HuafeiConfig huafeiConfig, String phone, int cardnum) > 入参 |属性|数据类型|是否必传|说明| |:--:|:--:|:--:|--| |huafeiConfig|HuafeiConfig|是|配置信息| |phone|String|是|手机号码| |cardnum|int|是|充值金额,目前可选:5、10、20、30、50、100、300| > 返回值 |属性|数据类型|是否必传|说明| |:--:|:--:|:--:|--| |--|int|是|返回错码,0为允许充值的手机号码及金额,其他为不可以或其他错误| - 2、根据手机号和面值查询商品信息 > 调用:HuafeiService.telQuery(HuafeiConfig huafeiConfig, String phone,int cardnum) > 入参 |属性|数据类型|是否必传|说明| |:--:|:--:|:--:|--| |huafeiConfig|HuafeiConfig|是|配置信息| |phone|String|是|手机号码| |cardnum|int|是|充值金额,目前可选:5、10、20、30、50、100、300| > 返回值 |属性|数据类型|是否必传|说明| |:--:|:--:|:--:|--| |--|String|是|String类型结果| - 3、依据用户提供的请求为指定手机直接充值 > 调用:HuafeiService.onlineOrder(HuafeiConfig huafeiConfig, String phone,int cardnum,String orderid) > 入参 |属性|数据类型|是否必传|说明| |:--:|:--:|:--:|--| |huafeiConfig|HuafeiConfig|是|配置信息| |phone|String|是|手机号码| |cardnum|int|是|充值金额,目前可选:5、10、20、30、50、100、300| |orderid|String|是|商家订单号,8-32位字母数字组合,自定义| > 返回值 |属性|数据类型|是否必传|说明| |:--:|:--:|:--:|--| |--|String|是|String类型结果| - 4、查询账户余额 > 调用:HuafeiService.yuE(HuafeiConfig huafeiConfig) > 入参 |属性|数据类型|是否必传|说明| |:--:|:--:|:--:|--| |huafeiConfig|HuafeiConfig|是|配置信息| > 返回值 |属性|数据类型|是否必传|说明| |:--:|:--:|:--:|--| |--|String|是|String类型结果| - 5、订单状态查询 > 调用:HuafeiService.orderSta(HuafeiConfig huafeiConfig, String orderid) > 入参 |属性|数据类型|是否必传|说明| |:--:|:--:|:--:|--| |huafeiConfig|HuafeiConfig|是|配置信息| |orderid|String|是|商家订单号| > 返回值 |属性|数据类型|是否必传|说明| |:--:|:--:|:--:|--| |--|String|是|订单结果| - 6、历史订单列表 > 调用:HuafeiService.orderList(HuafeiConfig huafeiConfig) > 入参 |属性|数据类型|是否必传|说明| |:--:|:--:|:--:|--| |huafeiConfig|HuafeiConfig|是|配置信息| > 返回值 |属性|数据类型|是否必传|说明| |:--:|:--:|:--:|--| |--|String|是|列表结果| ### 错误码说明 #### 服务级错误码参照(error_code): |错误码 |说明| |:--:|:--:| |208501 |不允许充值的手机号码及金额| |208502| 请求手机号和面值查询商品信息失败,请重试| |208503 |运营商地区维护,暂不能充值| |208504| 请求手机号和面值查询商品信息错误,具体请参考reasoon| |208505 |错误的手机号码| |208506 |错误的充值金额| |208507 |充值失败,具体请参考reason| |208508| 请求充值失败,请重试| |208509| 错误的订单号| |208510| 请求订单状态失败,请重试| |208513 |查询订单失败,具体参照reason说明| |208514| 不合规范的订单号(8-32位)| |208515| 校验值sign错误| |208516 |重复的订单号| |208517| 当前账户可用余额不足| #### 系统级错误码参照: |错误码| 说明| 旧版本(resultcode) |:--:|:--:|:--:| |10001| 错误的请求KEY| 101| |10002 |该KEY无请求权限| 102| |10003| KEY过期 |103| |10004| 错误的OPENID |104| |10005 |应用未审核超时,请提交认证| 105| |10007| 未知的请求源 |107| |10008| 被禁止的IP |108| |10009 |被禁止的KEY |109| |10011| 当前IP请求超过限制| 111|| |10012| 请求超过次数限制 |112| |10013 |测试KEY超过请求限制| 113| |10014 |系统内部异常(调用充值类业务时,请务必联系客服或通过订单查询接口检测订单,避免造成损失)| 114| |10020| 接口维护| 120| |10021| 接口停用| 121| #### 错误码格式说明(示例:200201): |2| 002| 01| |:--:|:--:|:--:| |服务级错误(1为系统级错误)| 服务模块代码(即数据ID)| 具体错误代码| ### 回调地址规范 - 回调显示:post - 推送参数内容格式(普通参数键值对,非json): |名称|类型|说明| |:--:|:--:|:--:| |sporder_id|string|聚合订单号| |orderid|string|用户自定义的单号| |sta|int|充值状态1:成功 9:失败| |sign|string|校验值,md5(appkey+sporder_id+orderid) 32位小写,用于校验请求合法性| |err_msg|string|状态描述信息(暂只支持油卡业务)| - 处理成功请返回:success 或 任意字符串 - 重试机制:聚合数据在请求回调地址时,如果无任何内容返回或无响应,会重新发起最多3次,间隔3s左右 - 本回调推送内容格式适用于话费充值、油卡充值、流量充值等增值服务,如果需要状态回调的用户,如接口其他已经调试完毕,请将账号和回调地址发给在线客服,我们将回调地址配置线上。 ```java /***************servlet接收示例**************************/ @WebServlet("/callerBack") public class CallerBackDemo extends HttpServlet { public static final long serialVersionUID =1L; String appkey = "";//您 申请的数据的APIKEY @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String sporder_id = req.getParameter("sporder_id");//聚合订单号 String orderid = req.getParameter("orderid ");//商家订单号 String sta = req.getParameter("sta ");//充值状态 String sign = req.getParameter("sign"); //校验值 String local_sign = MD5Util.strToMD5(appkey+sporder_id+orderid);//本地sign校验值 if(sign ==local_sign){ if(sta=="1"){ //充值成功,根据自身业务逻辑进行后续处理 }else if(sta=="9"){ //充值失败,根据自身业务逻辑进行后续处理 } } return "SUCCESS"; } /***************Spring接收示例**************************/ @RequestMapping(value="/callerBack",method=RequestMethod.POST) public void callerBack(@RequestParam("sporder_id") String sporder_id,@RequestParam("orderid") String orderid, @RequestParam("sta") String sta,@RequestParam("sign") String sign ){ String local_sign = MD5Util.strToMD5(appkey+sporder_id+orderid);//本地sign校验值 if(sign ==local_sign){ if(sta=="1"){ //充值成功,根据自身业务逻辑进行后续处理 }else if(sta=="9"){ //充值失败,根据自身业务逻辑进行后续处理 } } return "SUCCESS"; } ``` ## 反馈交流QQ群:696279396 ## 赞助 ![](https://box.kancloud.cn/bf6f9c0e4f5a786c20d02c56b56a0eaf_600x500.png)