首页 > 资讯中心 > 开发修复 > 文章详情

PC端微信扫码登录(二)

摘要: 上节我们获得了微信开放平台的AppID,AppSecret,接下来在本节中我们介绍下,微信扫码登录的程序设计

        上节我们获得了微信开放平台的AppID,AppSecret,接下来在本节中我们介绍下,微信扫码登录的程序设计,ShopWind 电商系统 把第三方登录做成插件的形式,包括微信登录,支付宝登录新浪微博登录腾讯QQ登录


    后台配置 AppID,AppSecret。登录网站后台 


TIM截图20180606114628.png


        上面导航点击 扩展 > 插件 > 微信登录 填写 AppID,AppSecret提交,电商系统微信登录配置完成。


        下面简单介绍下代码实现。

        

D0wkkHSbtC6VUSHX4WsjP5ssg5mdnEmXO8NGVGF34dxS9N1WCcq6wvquR4K_Hcut.png


            第一步:请求CODE


            我们在PC端登录页面做微信图标链接,点击图标打开以下链接:

https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

这个链接里面的APPID读取我们后台配置的APPIDREDIRECT_URI为回调接收地址。

若提示“该链接无法访问”,请检查参数是否填写错误,如redirect_uri的域名与审核时填写的授权域名不一致或scope不为snsapi_login。


        关键代码片段:

        $data = array(
'gateway'       => 'https://open.weixin.qq.com/connect/qrconnect?',
'AppId' => $this->_config['AppId'],
'AppSecret' => $this->_config['AppSecret'],
'redirect_uri' => urlencode(SITE_URL . "/external/plugins/weixinconnect/callback.php"),
'response_type' => 'code',
'scope' => 'snsapi_login',
'state' => mt_rand()
);
$url = $gateway . "appid=".$AppId."&redirect_uri=".$redirect_uri."&response_type=code&scope=".$scope."&state=".$state."#wechat_redirect";

header("location:$url");


        第二步:通过code获取access_token


        第一步打开链接发起请求后,我们在 callback.php文件中用get接收微信那边发回来的code。通过code和appid,AppSecret,拼接重新发起请求获取access_token。

 $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$AppId}&secret={$AppSecret}&code={$_GET['code']}&grant_type=authorization_code";

$result = file_get_contents($url);

正确返回的结构是:

{
"access_token":"ACCESS_TOKEN", //接口调用凭证
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID", //授权用户唯一标识
"scope":"SCOPE",
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL" //当且仅当该网站应用已获得该用户的userinfo授权时,才会出现该字段。
}

获取返回正确的返回结果后,接收 unionid,access_token。

$unionid = isset($result['unionid']) ? $result['unionid'] : $openid;

$token = $result['access_token'];


            第三步:通过access_token,unionid查询用户信息


            $url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$token."&openid=".$openid;                        $user_info = file_get_contents($url);

            到此$user_info 里面就包含有用户信息,微信头像,微信名称等,后面就是程序逻辑的问题了,ShopWind会跳转到绑定手机号码的页面,绑定完成后插入用户表,并完成登录进入用户中心。微信扫码登录完成,如果有疑问可以联系交流,QQ 1983447904







【本站声明】

  • 1、本网站发布的该篇文章,目的在于分享电商知识及传递、交流相关电商信息,以便您学习或了解电商知识,请您不要用于其他用途;
  • 2、该篇文章中的内容和图片来源网络编辑,如存在版权问题请及时沟通处理。文章观点不代表本网站立场,如需转载请注明原创来源。
ShopWind多用户商城系统是一款可以满足B2B2C、B2B、O2O、B2C、C2C等多种电商模式的商城系统平台源码,覆盖PC端+微商城+小程序+APP,将多端数据打通并同步,并且基于社交电商的用户优势,实现多场景营销,打造一个真正的生态化电商平台。咨询合作和了解系统可联系客户经理微信号:shopwind 。