玩家登录接口
<p><strong>简要描述:</strong> </p>
<ul>
<li>玩家登录接口,收集游戏玩家数据</li>
</ul>
<p><strong>请求时机:</strong> </p>
<ul>
<li>当玩家登录成功时,由CP发起接口请求</li>
</ul>
<p><strong>请求URL:</strong> </p>
<ul>
<li><code>http://usdk.api.xxxx.com/s2s/player/login</code></li>
</ul>
<p><strong>请求方式:</strong></p>
<ul>
<li>POST/GET </li>
</ul>
<p><strong>参数:</strong> </p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必传</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
<th>参与签名</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">game_id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>游戏ID</td>
<td>是</td>
</tr>
<tr>
<td style="text-align: left;">agent_id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>渠道号(平台提供,区分不同渠道)</td>
<td>是</td>
</tr>
<tr>
<td style="text-align: left;">channel_id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>渠道包ID(平台提供,区分不同渠道包)</td>
<td>是</td>
</tr>
<tr>
<td style="text-align: left;">device_id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>设备ID(设备唯一标识,Android取deviceID或imei,iOS取uuid或idfa)</td>
<td>是</td>
</tr>
<tr>
<td style="text-align: left;">user_id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>CP玩家账号ID(玩家账号唯一标识)</td>
<td>是</td>
</tr>
<tr>
<td style="text-align: left;">ip</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>客户端IP</td>
<td>否</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>签名 <strong>MD5(channel_id+agent_id+device_id+game_id+user_id+game_key),其中“+”为链接符不加入签名计算,生成的字符串为小写 </strong></td>
<td>签名</td>
</tr>
</tbody>
</table>
<p><strong>返回示例</strong></p>
<pre><code>{
"code": 200,
"msg": "数据保存成功"
}</code></pre>
<p><strong>返回参数说明</strong> </p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">code</td>
<td style="text-align: left;">int</td>
<td>返回码</td>
</tr>
<tr>
<td style="text-align: left;">msg</td>
<td style="text-align: left;">string</td>
<td>返回码描述</td>
</tr>
</tbody>
</table>
<p><strong>返回码列表</strong> </p>
<table>
<thead>
<tr>
<th style="text-align: left;">返回码</th>
<th style="text-align: left;">对应描述</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">200</td>
<td style="text-align: left;">数据保存成功</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">101</td>
<td style="text-align: left;">请求参数xxx错误</td>
<td>请检查必传参数xxx</td>
</tr>
<tr>
<td style="text-align: left;">102</td>
<td style="text-align: left;">game_id错误</td>
<td>无法匹配game_id和game_key</td>
</tr>
<tr>
<td style="text-align: left;">103</td>
<td style="text-align: left;">签名验证失败</td>
<td>请检查签名规则生成的签名串</td>
</tr>
<tr>
<td style="text-align: left;">104</td>
<td style="text-align: left;">数据保存失败</td>
<td>系统原因导致数据保存失败</td>
</tr>
</tbody>
</table>