独代-获取用户openId
<p>[TOC]</p>
<h3>1、【获取用户openId】接口说明</h3>
<pre><code>调用该接口获取用户openid</code></pre>
<ul>
<li>获取游戏状态</li>
</ul>
<h5>请求URL</h5>
<ul>
<li><a href="https://exc.llewan.com/v1/CPServer/getUserOpenId">https://exc.llewan.com/v1/CPServer/getUserOpenId</a></li>
</ul>
<h5>请求方式</h5>
<ul>
<li>GET </li>
</ul>
<h5>请求参数</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;">game</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>游戏标识</td>
</tr>
<tr>
<td style="text-align: left;">uid</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>用户uid</td>
</tr>
<tr>
<td style="text-align: left;">timestamp</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">integer</td>
<td>时间戳:单位:s</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>签名,签名方式见下(同支付签名方式)</td>
</tr>
</tbody>
</table>
<h5>响应参数</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;">code</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">integer</td>
<td>请求状态码,1成功,-1失败</td>
</tr>
<tr>
<td style="text-align: left;">msg</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>响应补充信息</td>
</tr>
<tr>
<td style="text-align: left;">d</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">array</td>
<td>响应数据主体</td>
</tr>
<tr>
<td style="text-align: left;">d.openid</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>用户openid,成功时响应</td>
</tr>
</tbody>
</table>
<h5>返回示例</h5>
<pre><code>// 成功
{
"code": 1,
"msg": "success",
"d": {"openid":"aaabbcc"}
}
// 异常
{"code": -1, "msg": "param error"} // 参数错误,缺少请求参数
</code></pre>
<h4>- 签名方式说明</h4>
<ul>
<li><strong>参与签名字段说明</strong>
以上请求参数除sign外都需要参与签名</li>
<li><strong>签名规则</strong>
1、签名串规则:所有参与签名的参数,按参数名(key)字典序升序排序,以key=value格式,并用【&】连接组成签名串,最后连接服务端签名秘钥
2、对签名串进行MD5加密得到签名(32位小写字符串),PHP示例如下:</li>
</ul>
<pre><code><?php
function getSign($params, $secret)
{
//剔除sign字段
if (isset($params['sign'])) unset($params['sign']);
//对数组按key升序排序
ksort($params);
//拼接签名串
$formatStr = '';
foreach ($params as $key => $v) {
$formatStr .= $key . '=' . $v . '&';
}
return md5(substr($formatStr, 0, -1) . $secret);
}
$secret = 'abc'; //服务端签名秘钥
$params = [
'game' => 'aaa-weixin',
'uid' => '12_11_1',
'timestamp' => 1520000000,
...
]; //请求参数
$sign = getSign($params, $secret); //签名
</code></pre>