1. 充值通知第三方服务端接口(需提供回调地址) ----------------------------- 参数列表: orderId: parter订单号 tradId: 平台订单号 appId: 游戏接入分配appid userId: 平台用户id product: 购买商品名字(50字符) currency: 币种 (目前仅有CNY) amount: 充值金额(分) sig: 签名(算法详见2) 第三方server端返回值: 如果第三方验证成功,则返回字符串"success"即可,否则会通知10次后停止.如重复通知,注意校验平台订单号,如重复忽略. 2.签名算法 -------------------------------- 注意:签名参数不能写成固定数量,一定要获取全部参数并且除sig参数外,然后按照字母升序排列。 ```java /** * 签名算法 * @param request * @return */ public String sig(HttpServletRequest request, String key){ Enumeration names = request.getParameterNames(); SortedSet allParams = Sets.newTreeSet(); while (names.hasMoreElements()) { String name = (String) names.nextElement(); if (name.equals("sig")) { continue; } try { allParams.add(name + "=" + URLEncoder.encode(request.getParameter(name), "utf-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } String params = Joiner.on("&").join(allParams)+key; String computedToken = DigestUtils.md5DigestAsHex(params.getBytes()); return computedToken; } ``` 注意:参数是按字母升序排列 akey=value&bkey=value.... + secretkey