Commit d0017e7e1472add128ab1281819bfd3d23180168

Authored by 李康
1 parent efdc53de10
Exists in master

init document

Showing 1 changed file with 55 additions and 0 deletions Side-by-side Diff

doc/server_document.md
... ... @@ -0,0 +1,55 @@
  1 +1. 充值通知第三方服务端接口(需提供回调地址)
  2 +-----------------------------
  3 + 参数列表:
  4 + orderId: 订单id
  5 + appId: 游戏接入分配appid
  6 + userId: 平台用户id
  7 + product: 购买商品名字
  8 + extraInfo:游戏接入方传入自定义参数,200字符
  9 + currency:币种 (目前仅有CNY)
  10 + amount:充值金额(分)
  11 + sig: 签名(算法详见2)
  12 +
  13 + 第三方server端返回值:
  14 + 如果第三方验证成功,则返回字符串"success"即可,否则会通知10次后停止.
  15 +
  16 +
  17 +2.签名算法
  18 +--------------------------------
  19 +
  20 + 注意:签名参数不能写成固定数量,一定要获取全部参数并且除sig参数外,然后按照字母升序排列。
  21 +```java
  22 +
  23 + /**
  24 + * 签名算法
  25 + * @param request
  26 + * @return
  27 + */
  28 + public String sig(HttpServletRequest request, String key){
  29 +
  30 + Enumeration names = request.getParameterNames();
  31 + SortedSet<String> allParams = Sets.newTreeSet();
  32 +
  33 + while (names.hasMoreElements()) {
  34 + String name = (String) names.nextElement();
  35 + if (name.equals("sig")) {
  36 + continue;
  37 + }
  38 +
  39 + try {
  40 + allParams.add(name + "=" + URLEncoder.encode(request.getParameter(name), "utf-8"));
  41 + } catch (UnsupportedEncodingException e) {
  42 + e.printStackTrace();
  43 + }
  44 + }
  45 +
  46 + String params = Joiner.on("&").join(allParams)+key;
  47 + String computedToken = DigestUtils.md5DigestAsHex(params.getBytes());
  48 + return computedToken;
  49 + }
  50 +```
  51 +
  52 +
  53 +
  54 + 注意:参数是按字母升序排列 akey=value&bkey=value.... + secretkey
  55 +