H5游戏对接文档
<p>[TOC]</p>
<h1>约定KEY</h1>
<ul>
<li>lkey 登录密匙(登陆接口使用)</li>
<li>pkey 支付密匙(支付接口使用)</li>
</ul>
<h1>用户登录</h1>
<h4>接口说明:</h4>
<ul>
<li>游戏方提供,用于平台加载实现进入游戏功能</li>
</ul>
<h4>请求方式:</h4>
<ul>
<li><code>GET</code></li>
</ul>
<h4>请求地址示例:</h4>
<ul>
<li><code>https://[domain]/login.html?uid=$uid&platfrom=$platfrom&gkey=$gkey&skey=$skey&time=$time&is_adult=$is_adult&back_url=$back_url&sign=$sign</code></li>
</ul>
<h4>请求参数:</h4>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">uid</td>
<td style="text-align: left;">用户登录ID</td>
</tr>
<tr>
<td style="text-align: left;">platfrom</td>
<td style="text-align: left;">联营方标识ID,供游戏方区分联营平台(默认“ludashi”)</td>
</tr>
<tr>
<td style="text-align: left;">gkey</td>
<td style="text-align: left;">游戏名字(一般为拼音字母缩写,特殊情况单独给出)</td>
</tr>
<tr>
<td style="text-align: left;">skey</td>
<td style="text-align: left;">游戏服务器id,由双方协定 合作默认接入 1</td>
</tr>
<tr>
<td style="text-align: left;">time</td>
<td style="text-align: left;">时间戳</td>
</tr>
<tr>
<td style="text-align: left;">is_adult</td>
<td style="text-align: left;">防沉迷状态(2为18岁以上,1为未满18,0为未填写 )</td>
</tr>
<tr>
<td style="text-align: left;">back_url</td>
<td style="text-align: left;">登录失败跳转url</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">双方协定的密钥-签名生成规则如下</td>
</tr>
</tbody>
</table>
<h4>签名生成规则:</h4>
<pre><code>$sign = md5($uid.$platfrom.$gkey.$skey.$time.$is_adult.'#'.$lkey);
# lkey为登录密钥
# uid为urldecode之后的值
</code></pre>
<h1>用户充值</h1>
<h4>接口说明:</h4>
<ul>
<li>平台提供充值地址,游戏内引导用户至平台充值页面</li>
</ul>
<h4>请求示例:</h4>
<pre><code># 在游戏内通过postMessage发起充值请求
window.top.postMessage('URL', '*');
</code></pre>
<h4>请求URL示例:</h4>
<ul>
<li><code>https://wan.ludashi.com/h5/pay/index?order=201711141438449368&uid=1&money=0.1&game=tt&server=1&sign=cf969e843a058335defedecfdcda1ac9&order_from=shouyouh5&username=test</code></li>
</ul>
<h4>请求参数:</h4>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">order</td>
<td style="text-align: left;">订单号(确保每次传入的订单号不一样)</td>
</tr>
<tr>
<td style="text-align: left;">uid</td>
<td style="text-align: left;">用户id</td>
</tr>
<tr>
<td style="text-align: left;">username</td>
<td style="text-align: left;">游戏帐号(如果是中文,需要urlencode编码)</td>
</tr>
<tr>
<td style="text-align: left;">money</td>
<td style="text-align: left;">充值金额(单位:元)</td>
</tr>
<tr>
<td style="text-align: left;">game</td>
<td style="text-align: left;">游戏名字(同gameid,一般为拼音字母缩写,特殊情况单独给出)</td>
</tr>
<tr>
<td style="text-align: left;">server</td>
<td style="text-align: left;">游戏服务器id</td>
</tr>
<tr>
<td style="text-align: left;">order_from</td>
<td style="text-align: left;">固定值,shouyouh5,可为空</td>
</tr>
<tr>
<td style="text-align: left;">product_name</td>
<td style="text-align: left;">商品名(可选参数,充值显示,默认”${game}-充值消费-${money}元”)</td>
</tr>
<tr>
<td style="text-align: left;">callback_url</td>
<td style="text-align: left;">充值完成后的回调地址(不带参数,暂时不需要回传)</td>
</tr>
<tr>
<td style="text-align: left;">extra</td>
<td style="text-align: left;">透传字段</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">双方协定的密钥(生成规则如下)</td>
</tr>
</tbody>
</table>
<h4>签名生成规则:</h4>
<pre><code>$sign = md5($money.$order.$uid.$pkey);
# pkey为充值密钥</code></pre>
<h1>充值回调</h1>
<h4>接口说明:</h4>
<ul>
<li>玩家在平台充值成功后,由平台通过该充值接口向游戏发起发放游戏币的请求,在接口参数通过验证后,游戏向该服该玩家发放游戏币,并将发放结果在接口中返回。</li>
</ul>
<h4>请求方式:</h4>
<ul>
<li><code>GET</code></li>
</ul>
<h4>请求地址示例:</h4>
<ul>
<li><code>https://[domain]/payout</code></li>
</ul>
<h4>请求参数:</h4>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">uid</td>
<td style="text-align: left;">用户登录ID</td>
</tr>
<tr>
<td style="text-align: left;">order</td>
<td style="text-align: left;">订单号</td>
</tr>
<tr>
<td style="text-align: left;">money</td>
<td style="text-align: left;">人民币数量</td>
</tr>
<tr>
<td style="text-align: left;">server</td>
<td style="text-align: left;">游戏服务器id</td>
</tr>
<tr>
<td style="text-align: left;">status</td>
<td style="text-align: left;">success(固定参数)</td>
</tr>
<tr>
<td style="text-align: left;">extra</td>
<td style="text-align: left;">透传参数</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">双方协定的密钥(生成规则如下)</td>
</tr>
</tbody>
</table>
<h4>签名生成规则:</h4>
<pre><code>$sign = md5($money.$order.$status.$pkey);
# pkey为充值密钥</code></pre>
<h4>返回示例:</h4>
<pre><code>直接返回字符串
success=>成功
error=>失败</code></pre>
<h1>用户分享</h1>
<h4>功能说明:</h4>
<ul>
<li>非必须接入,平台提供方法,游戏内引导用户分享</li>
</ul>
<h4>请求示例:</h4>
<pre><code>window.top.postMessage('share', '*');</code></pre>
<h1>角色上报(后端上报)</h1>
<h4>接口说明:</h4>
<ul>
<li>非必须接入,游戏后端发起上报用户角色信息</li>
</ul>
<h4>请求方式:</h4>
<ul>
<li><code>GET</code></li>
</ul>
<h4>请求URL:</h4>
<ul>
<li><code>https://wan.ludashi.com/h5/report/grade</code></li>
</ul>
<h4>请求参数:</h4>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">uid</td>
<td style="text-align: left;">用户登录ID</td>
</tr>
<tr>
<td style="text-align: left;">game</td>
<td style="text-align: left;">游戏名字(一般为拼音字母缩写,特殊情况单独给出)</td>
</tr>
<tr>
<td style="text-align: left;">server</td>
<td style="text-align: left;">区服ID</td>
</tr>
<tr>
<td style="text-align: left;">grade</td>
<td style="text-align: left;">用户等级</td>
</tr>
<tr>
<td style="text-align: left;">time</td>
<td style="text-align: left;">时间戳</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">签名串(参与签名字段,uid,game,server,grade,time)</td>
</tr>
</tbody>
</table>
<h4>签名示例:</h4>
<pre><code># php版本
$params = [
'uid' => 0,
'game' => '',
'server' => 0,
'grade' => 0,
'time' => ''
];
ksort($params);
$sign = md5(http_build_query($params).'&key='.$lkey);
</code></pre>
<h5>返回示例:</h5>
<pre><code>直接返回字符串
success=>成功
其他=>失败</code></pre>
<h1>角色上报(前端上报)</h1>
<h4>接口说明:</h4>
<ul>
<li>非必须接入,游戏前端发起上报用户角色信息</li>
</ul>
<h4>请求方式:</h4>
<pre><code>window.top.postMessage({
"action": "grade",
"uid": "93",
"game": "rxhjh5",
"server": "102",
"grade": "102",
"time": "1548142502",
"sign": "d41cf87e6bc1239829881b68ac318c6b"
}, '*');
# 备注:参与签名字段及签名方式同后端上报</code></pre>