?
前面更新了两篇,这个是第三篇,也就是盲盒购物网站系统开发建设 第三篇,直接更新代码就可以了。
在公网接口处重写此方法:验证服务器有效性
public function serverValidation()
{
$TOKEN = 'I8cezsHeF1buiCBPwD';
$signature = $_GET["signature"] ?? "";
$timestamp = $_GET["timestamp"] ?? "";
$nonce = $_GET["nonce"] ?? "";
$tmpArr = array($TOKEN, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
if ($tmpStr == $signature) {
return $_GET["echostr"] ?? '';
}
return 'error';
}
获取用户信息
if ('snsapi_userinfo' == $res['scope']) {
$userinfo = file_get_contents("https://api.weixin.qq.com/sns/userinfo?access_token={$res['access_token']}&openid={$res['openid']}&lang=zh_CN");
$userinfo = json_decode($userinfo, true);
if (!empty($userinfo['errcode']) && !empty($userinfo['errmsg'])) {
$redirect = $redirect . (strpos($redirect, '?') ? '&' : '?') . 'status=0&token=&errmsg=' . $userinfo['errmsg'];
$this->redirect($redirect ? urldecode($redirect) : '/h5/#/');
exit();
}
绑定过手机,直接去首页
if ($this->has_mobile) {
$this->redirect('/h5/#/?status=1&errmsg=&token=' . $token. "&is_notice=". $this->is_notice);
}$redirect = $redirect . (strpos($redirect, '?') ? '&' : '?') . 'status=1&errmsg=&token=' . $token. "&is_notice=". $this->is_notice;
$this->redirect($redirect ? urldecode($redirect) : '/h5/#/');
}
$errmsg = $this->_error ?: '授权失败';
$redirect = $redirect . (strpos($redirect, '?') ? '&' : '?') . 'status=0&token=&errmsg=' . $errmsg;
$this->redirect($redirect ? urldecode($redirect) : '/h5/#/');
}
登录
private function login($openid, $nickname = '', $avatar = '', $invite_code = '', $is_channel ='')
{
$user = \app\common\model\User::getByWechatOpenid($openid);
if ($user) {
if ($user->status != 'normal') {
$this->_error = '账号被锁定';
return false;
}
//如果已经有账号则直接登录
$ret = $this->auth->direct($user->id);
} else {
$extend = [
'invite_code' => $invite_code,
'wechat_openid' => $openid,
'nickname' => $nickname,
'avatar' => $avatar,
];
$ret = $this->auth->register('', Random::alnum(), '', '', $extend);
if($ret && $is_channel == '49ba59abbe56e057'){//赠送10金币
\app\common\model\User::where(['id'=>$this->auth->id])->setInc("coin", 10);
$this->is_notice = 1;
}
}
if ($ret) {
$data = https://www.it610.com/article/$this->auth->getUserinfo();
$this->has_mobile = !empty($data['mobile']) ? true : false;
return $data['token'];
}
$this->_error = $this->auth->getError();
return false;
}
微信登录并重定向
public function wechatLoginRedirect()
{
$redirect = input('redirect');
if (empty('')) {
throw new HttpResponseException(Response::create(['code' => 403, 'msg' => '重定向地址为空', 'data' => null], 'json', 200));
}
$this->redirect('/index/wechat/bootToUrl?url=' . base64_encode($redirect));
}
}
【盲盒购物网站系统开发建设 第三篇】?
推荐阅读
- 对GO切片的理解
- 小程序商城网站开发秒杀模块篇
- Netty核心概念之ChannelHandler&Pipeline&ChannelHandlerContext
- 简单的线程池实现多线程对大文件的读取
- SSH 端口转发与 SOCKS 代理
- Ubuntu16.04/Scala2.11.8安装教程
- 学习PHP中的高精度计时器HRTime扩展
- 使用OpenResty+Lua实现灰度测试(金丝雀)
- 使用源码编译安装PHP扩展