Commit 2914c56b33d059f30fb4d948ed41204f2fba9faf
1 parent
1415e20023
Exists in
master
update doc
Showing 1 changed file with 12 additions and 19 deletions Inline Diff
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:支付渠道(对应详情见4) | 11 | channel:支付方式(对应详情见4) |
12 | sig: 签名(算法详见3) | 12 | sig: 签名(算法详见3) |
13 | 13 | ||
14 | 第三方server端返回值: | 14 | 第三方server端返回值: |
15 | 如果第三方验证成功,则返回字符串"success"即可,否则会通知10次后停止.如重复通知,注意校验平台订单号,如重复忽略. | 15 | 如果第三方验证成功,则返回字符串"success"即可,否则会通知10次后停止. |
16 | 16 | ||
17 | 17 | ||
18 | 2. 登录验证(可选) | 18 | 2. 登录验证(可选) |
19 | ----------------------------------- | 19 | ----------------------------------- |
20 | url: http://inner-sdk.letsgame.mobi/v1/sdk/login_verify.do | 20 | URL: |
21 | 参数: | 21 | 参数: |
22 | userId:uid | 22 | userId: gumpId |
23 | appKey:第三方渠道的key | 23 | appKey: |
24 | sessionKey:验证key | 24 | sessionKey:验证key |
25 | 25 | ||
26 | 返回值: | 26 | 返回值: |
27 | { | 27 | { |
28 | "code":100000(100000:成功,100012:用户不存在,-1:失败), | 28 | "code":100000(100000:成功,100012:用户不存在,-1:失败), |
29 | "msg":"xxxxxx", | 29 | "msg":"xxxxxx", |
30 | "userId":1234 | 30 | "userId":1234 |
31 | } | 31 | } |
32 | 32 | ||
33 | 3.签名算法 | 33 | 3.签名算法 |
34 | -------------------------------- | 34 | -------------------------------- |
35 | 35 | ||
36 | 注意:签名参数不能写成固定数量,一定要获取全部参数并且除sig参数外,然后按照字母升序排列。 | 36 | 注意:签名参数不能写成固定数量,一定要获取全部参数并且除sig参数外,然后按照字母升序排列。 |
37 | ```java | 37 | ```java |
38 | 38 | ||
39 | /** | 39 | /** |
40 | * 签名算法 | 40 | * 签名算法(JAVA示例) |
41 | * @param request | 41 | * @param request |
42 | * @return | 42 | * @return |
43 | */ | 43 | */ |
44 | public String sig(HttpServletRequest request, String key){ | 44 | public String sig(HttpServletRequest request, String key){ |
45 | 45 | ||
46 | Enumeration names = request.getParameterNames(); | 46 | Enumeration names = request.getParameterNames(); |
47 | SortedSet<String> allParams = Sets.newTreeSet(); | 47 | SortedSet<String> allParams = Sets.newTreeSet(); |
48 | 48 | ||
49 | while (names.hasMoreElements()) { | 49 | while (names.hasMoreElements()) { |
50 | String name = (String) names.nextElement(); | 50 | String name = (String) names.nextElement(); |
51 | if (name.equals("sig")) { | 51 | if (name.equals("sig")) { |
52 | continue; | 52 | continue; |
53 | } | 53 | } |
54 | 54 | ||
55 | try { | 55 | try { |
56 | allParams.add(name + "=" + URLEncoder.encode(request.getParameter(name), "utf-8")); | 56 | allParams.add(name + "=" + URLEncoder.encode(request.getParameter(name), "utf-8")); |
57 | } catch (UnsupportedEncodingException e) { | 57 | } catch (UnsupportedEncodingException e) { |
58 | e.printStackTrace(); | 58 | e.printStackTrace(); |
59 | } | 59 | } |
60 | } | 60 | } |
61 | 61 | ||
62 | String params = Joiner.on("&").join(allParams)+key; | 62 | String params = Joiner.on("&").join(allParams)+key; |
63 | String computedToken = DigestUtils.md5DigestAsHex(params.getBytes()); | 63 | String computedToken = DigestUtils.md5DigestAsHex(params.getBytes()); |
64 | return computedToken; | 64 | return computedToken; |
65 | } | 65 | } |
66 | ``` | 66 | ``` |
67 | 67 | ||
68 | 68 | ||
69 | 69 | ||
70 | 注意:参数是按字母升序排列 akey=value&bkey=value.... + secretkey(对应渠道的应用ID) | 70 | 注意:参数是按字母升序排列 akey=value&bkey=value.... + secretkey(签名key) |
71 | 71 | ||
72 | 4.channel详情(部分上线) | 72 | 4.channel详情 |
73 | -------------------------------- | 73 | -------------------------------- |
74 | 74 | ||
75 | 100100:丫丫玩 √ | ||
76 | 100200:小皮 √ | ||
77 | 100300:安智 | ||
78 | 100400:豌豆荚 | ||
79 | 100500:应用宝 √ | ||
80 | 100600:机锋 √ | ||
81 | 100700:泡椒 | ||
82 | 100800:木蚂蚁 √ | ||
83 | 100900:靠谱助手 √ | ||
84 | 101000:游戏群(熊猫玩) | ||
85 | 101100:琵琶网 |