服务器对接文档

服务器对接文档


支付回调接口

<p>[TOC]</p> <h5>简要描述</h5> <ul> <li>支付回调接口 请求方为SDK 服务器,响应方为CP服务器。 用户在游戏中提交购买请求后,游戏平台会异步执行充值购买,在购买操作完成后,游戏平台通过该接口将充值结果发送给“游戏服务器”。 此处定义本接口的规范,游戏合作商需根据此规范在“游戏服务器”实现本接口。</li> </ul> <h5>请求地址</h5> <ul> <li><code>即充值结果通知地址,由CP提供。游戏接入时,录入到的游戏平台中。</code></li> </ul> <h5>请求方</h5> <ul> <li><code>SDK 服务器</code></li> </ul> <h5>响应方</h5> <ul> <li><code>游戏服务器</code></li> </ul> <h5>请求方式</h5> <ul> <li><code>http post</code> </li> </ul> <h5>请求参数(json utf-8格式)</h5> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">order_id</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>订单号</td> </tr> <tr> <td style="text-align: left;">mem_id</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>玩家ID</td> </tr> <tr> <td style="text-align: left;">app_id</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>游戏ID</td> </tr> <tr> <td style="text-align: left;">money</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>充值金额 (单位:元)</td> </tr> <tr> <td style="text-align: left;">order_status</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>1 未支付 2成功支付 3支付失败</td> </tr> <tr> <td style="text-align: left;">paytime</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>时间戳, Unix timestamp</td> </tr> <tr> <td style="text-align: left;">attach</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>CP扩展参数,建议为英文与数字,CP用于校验此订单合法性</td> </tr> <tr> <td style="text-align: left;">sign</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>使用APP_KEY 对所有的参数md5加密串,用于与接口生成的验证串做比较,保证计费通知的合法性。</td> </tr> </tbody> </table> <h5>请求示例</h5> <pre><code> { &amp;quot;order_id&amp;quot;:&amp;quot;1465718712348234627&amp;quot;, &amp;quot;mem_id&amp;quot;:&amp;quot;24627&amp;quot;, &amp;quot;app_id&amp;quot;: &amp;quot;1&amp;quot;, &amp;quot;money&amp;quot;: &amp;quot;1.00&amp;quot;, &amp;quot;order_status&amp;quot;: &amp;quot;1&amp;quot;, &amp;quot;paytime&amp;quot;:&amp;quot;1465718712&amp;quot;, &amp;quot;attach&amp;quot;:&amp;quot; attach &amp;quot;, &amp;quot;sign&amp;quot;:&amp;quot;51295343ac734a32e1ef0196c2e82870&amp;quot; }</code></pre> <pre><code>假定apiKey=901f6984e638c2f96ef48675b6a32a73 sign 的签名规则: md5(order_id=...&amp;amp;mem_id=...&amp;amp;app_id=...&amp;amp;money=...&amp;amp;order_status=...&amp;amp;paytime=...&amp;amp;attach=...&amp;amp;app_key=901f6984e638c2f96ef48675b6a32a73s) (替换...为实际值) 签名原文: order_id=1465718712348234627&amp;amp;mem_id=24627&amp;amp;app_id=1&amp;amp;money=1.00&amp;amp;order_status=1&amp;amp;paytime=1465718712&amp;amp;attach=attach MD5 加密: echo -n 'order_id=1465718712348234627&amp;amp;mem_id=24627&amp;amp;app_id=1&amp;amp;money=1.00&amp;amp;order_status=1&amp;amp;paytime=1465718712&amp;amp;attach=attach&amp;amp;app_key=901f6984e638c2f96ef48675b6a32a73'|md5sum 加密结果:51295343ac734a32e1ef0196c2e82870</code></pre> <h5>返回参数说明</h5> <table> <thead> <tr> <th style="text-align: left;">响应内容</th> <th>响应内容描述</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">SUCCESS</td> <td>成功,表示游戏服务器成功接收了该次充值结果通知,校验签名,订单,金额等都没问题。</td> </tr> <tr> <td style="text-align: left;">FAILURE</td> <td>失败,表示游戏服务器无法接收或识别该次充值结果通知,如:签名检验不正确、游戏服务器接收失败</td> </tr> </tbody> </table> <h5>备注</h5> <ol> <li>通知机制<br /> 充值操作完成后,“SDK 服务器”会将充值结果通过“充值结果回调接口”发送到“游戏服务器”。“游戏服务器”收到“SDK 服务器”的充值通知后,根据处理结果返回字符串SUCCESS 或FAILURE。如果返回SUCCESS,则“SDK服务器”结束通知任务;如果返回FAILURE 或由于网络延时导致“SDK 服务器”没有收到任何返回,SDK 服务器将会在周期内进行重复通知;“游戏服务器”应判断订单是否已发货,已发货订单应不再发货</li> </ol> <h5>注意</h5> <p>1.平台方只对充值成功的订单进行通知。 2.平台方可能对某个订单重复通知,请勿重复处理;对已经成功处理的订单返回 ”SUCCESS” 避免重复通知。 3.CP在接收到运营方的通知后,在验证签名的基础上还需要对money参数进行确认,支付金额是否对应订单的实际金额,防止以较少金额购买游戏货币; 4.已经给用户发放过的游戏币订单也请返回成功,但是不要重复给用户发放游戏币。(平台会对成功的订单校验是否成功,可能出现重复回调情况)</p>

页面列表

ITEM_HTML