Commit 0b6e346582da4cf796df8291aefdc50cb96c992e

Authored by 李康
1 parent d0017e7e14
Exists in master

update info

Showing 1 changed file with 8 additions and 9 deletions Inline Diff

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