Commit 3bae07658e3add9b3930847836a78415e800fdfb
1 parent
0b6e346582
Exists in
master
更新
Showing 1 changed file with 18 additions and 2 deletions Inline Diff
doc/server_document.md
1 | 1. 充值通知第三方服务端接口(需提供回调地址) | 1 | 1. 充值通知第三方服务端接口(需提供回调地址) |
2 | ----------------------------- | 2 | ----------------------------- |
3 | 参数列表: | 3 | 参数列表: |
4 | orderId: parter订单号 | 4 | orderId: parter订单号 |
5 | tradId: 平台订单号 | 5 | tradId: 平台订单号 |
6 | appId: 游戏接入分配appid | 6 | appId: 游戏接入分配appid |
7 | userId: 平台用户id | 7 | userId: 平台用户id |
8 | product: 购买商品名字(50字符) | 8 | product: 购买商品名字(50字符) |
9 | currency: 币种 (目前仅有CNY) | 9 | currency: 币种 (目前仅有CNY) |
10 | amount: 充值金额(分) | 10 | amount: 充值金额(分) |
11 | channel:支付渠道(对应详情见3) | ||
11 | sig: 签名(算法详见2) | 12 | sig: 签名(算法详见2) |
12 | 13 | ||
13 | 第三方server端返回值: | 14 | 第三方server端返回值: |
14 | 如果第三方验证成功,则返回字符串"success"即可,否则会通知10次后停止.如重复通知,注意校验平台订单号,如重复忽略. | 15 | 如果第三方验证成功,则返回字符串"success"即可,否则会通知10次后停止.如重复通知,注意校验平台订单号,如重复忽略. |
15 | 16 | ||
16 | 17 | ||
17 | 2.签名算法 | 18 | 2.签名算法 |
18 | -------------------------------- | 19 | -------------------------------- |
19 | 20 | ||
20 | 注意:签名参数不能写成固定数量,一定要获取全部参数并且除sig参数外,然后按照字母升序排列。 | 21 | 注意:签名参数不能写成固定数量,一定要获取全部参数并且除sig参数外,然后按照字母升序排列。 |
21 | ```java | 22 | ```java |
22 | 23 | ||
23 | /** | 24 | /** |
24 | * 签名算法 | 25 | * 签名算法 |
25 | * @param request | 26 | * @param request |
26 | * @return | 27 | * @return |
27 | */ | 28 | */ |
28 | public String sig(HttpServletRequest request, String key){ | 29 | public String sig(HttpServletRequest request, String key){ |
29 | 30 | ||
30 | Enumeration names = request.getParameterNames(); | 31 | Enumeration names = request.getParameterNames(); |
31 | SortedSet<String> allParams = Sets.newTreeSet(); | 32 | SortedSet<String> allParams = Sets.newTreeSet(); |
32 | 33 | ||
33 | while (names.hasMoreElements()) { | 34 | while (names.hasMoreElements()) { |
34 | String name = (String) names.nextElement(); | 35 | String name = (String) names.nextElement(); |
35 | if (name.equals("sig")) { | 36 | if (name.equals("sig")) { |
36 | continue; | 37 | continue; |
37 | } | 38 | } |
38 | 39 | ||
39 | try { | 40 | try { |
40 | allParams.add(name + "=" + URLEncoder.encode(request.getParameter(name), "utf-8")); | 41 | allParams.add(name + "=" + URLEncoder.encode(request.getParameter(name), "utf-8")); |
41 | } catch (UnsupportedEncodingException e) { | 42 | } catch (UnsupportedEncodingException e) { |
42 | e.printStackTrace(); | 43 | e.printStackTrace(); |
43 | } | 44 | } |
44 | } | 45 | } |
45 | 46 | ||
46 | String params = Joiner.on("&").join(allParams)+key; | 47 | String params = Joiner.on("&").join(allParams)+key; |
47 | String computedToken = DigestUtils.md5DigestAsHex(params.getBytes()); | 48 | String computedToken = DigestUtils.md5DigestAsHex(params.getBytes()); |
48 | return computedToken; | 49 | return computedToken; |
49 | } | 50 | } |
50 | ``` | 51 | ``` |
51 | 52 | ||
52 | 53 | ||
53 | 54 | ||
54 | 注意:参数是按字母升序排列 akey=value&bkey=value.... + secretkey | ||
55 | 注意:参数是按字母升序排列 akey=value&bkey=value.... + secretkey | ||
56 | |||
57 | 3.channel详情(部分上线) | ||
58 | -------------------------------- | ||
59 | |||
60 | 100100:丫丫玩 | ||
61 | 100200:小皮 | ||
62 | 100300:安智 | ||
63 | 100400:豌豆荚 | ||
64 | 100500:应用汇 | ||
65 | 100600:机锋 | ||
66 | 100700:泡椒 | ||
67 | 100800:木蚂蚁 | ||
68 | 100900:靠谱助手 | ||
69 | 101000:游戏群(熊猫玩) |