Commit d0017e7e1472add128ab1281819bfd3d23180168
1 parent
efdc53de10
Exists in
master
init document
Showing 1 changed file with 55 additions and 0 deletions Inline Diff
doc/server_document.md
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 | |||
56 |