美文网首页
微信授权登录 thinkphp版

微信授权登录 thinkphp版

作者: warcello | 来源:发表于2017-03-13 10:22 被阅读461次

今天整理一下微信授权登录的过程,方便以后记忆
1.首先在微信公众平台申请 微信测试账号,申请成功后微信平台会自动分配给你appID,appSecret

按照微信的要求填写接口配置信息,假如服务器地址为www.warcello.cn已经安装了thinkphp,
新建一个WechatController.class.php代码如下

namespaceHome\Controller;
useThink\App;
useThink\Controller;
define("TOKEN","qweqwe");
define("AppID","*******");
define("AppSecret","******");
class WechatController extends Controller{
获取微信用户信息
public function index()
{
$echoStr=$_GET["echostr"];
if($this->checkSignature()){
echo$echoStr;
exit;
}
}
private function checkSignature()
{
// you must define TOKEN by yourself
if(!defined("TOKEN")) {
throw newException('TOKEN is not defined!');
}
$signature=$_GET["signature"];
$timestamp=$_GET["timestamp"];
$nonce=$_GET["nonce"];
$token=TOKEN;
$tmpArr= array($token, $timestamp, $nonce);
// use SORT_STRING rule
sort($tmpArr, SORT_STRING);
$tmpStr=implode( $tmpArr );
$tmpStr=sha1( $tmpStr );
if( $tmpStr==$signature ){
return true;
}else{
return false;
}
}
}

将服务器上访问WeChat控制器的地址,token录入


提交成功后修改网页账号域名,如图:

点击后会弹出如下窗口

在该页面输入域名即可 ,不要带http
2.授权登录方法,根据微信文档描述,将

public  function getOauthAccessToken() {
$appid='公众号的appid';
$redirect_uri = '需要授权成功后跳转的地址';
$scope = 'snsapi_userinfo';//弹出授权页面 snsapi_base静默授权
$url="[https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=REDIRECT_URI&response_type=code&scope=$scopeE&state=STATE#wechat_redirect](https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect)";
redirect($url);
}

授权成功后将自动跳转到redirect_uri,并带着code
3.拿到上面获取的code后,去换取用户的openid

public function getCode($code){
$appid = appid;
$secret = secret;
$code = $code;
$url= "[https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code](https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code)";
$curl=curl_init();//初始化一个 cURL 对象
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);// 获取数据返回
curl_setopt($curl, CURLOPT_TIMEOUT,500);//设置一个长整形数,作为最大延续多少秒
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($curl, CURLOPT_URL,$url);
curl_setopt($curl, CURLOPT_BINARYTRANSFER,true) ;// 在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回
$res=curl_exec($curl);
curl_close($curl);
$result = json_decode($res);
return $result;
}

这部成功后已经可以拿到用户的openid了,然后再根据上面的方法获取用户信息;

相关文章

  • 微信授权登录 thinkphp版

    今天整理一下微信授权登录的过程,方便以后记忆 1.首先在微信公众平台申请微信测试账号,申请成功后微信平台会自动分配...

  • 微信授权登录 thinkphp版

    今天整理一下微信授权登录的过程,方便以后记忆1.首先在微信公众平台申请 微信测试账号,申请成功后微信平台会自动分配...

  • ThinkPHP 移动应用授权微信登录

    在第三方应用上使用微信登录已经是很常见的了,因为本身微信用户基数大,使用微信登录来拓展用户群,这篇文章是本人在参与...

  • ThinkPHP 公众号授权微信登录

    公众号微信用户登录,可以在微信上直接使用应用,无需再去下载app,减少用户的注册登录流程,优化用户体验,本文是讲解...

  • uniapp中微信授权登录

    该开始微信授权登录可以,后来又不行了,点击微信授权登录没有反应,在设置微信登录的按钮中添加 微信授权登录 监听 g...

  • 2018-11-30

    iOS版APP只使用微信授权登录且用户未安装微信如何解决? - 知乎

  • php 微信授权登录 40029错误

    php 微信授权登录 40029错误 授权登录是微信高级api,个人开发可以使用微信测试账号进行开发。在授权的过程...

  • h5微信登录

    步骤: 说明: 微信授权登录 微信公众平台 微信 内置 浏览器内登录(一般用于移动端网站,公众号登录) 网页授权方...

  • 微信公众号授权登录和微信网页授权登录

    微信公众号授权登录和微信网页授权登录 这段时间,项目开发需要,研究和配置了下公众号平台的h5微信授权登录过程和pc...

  • 手把手实现微信网页授权和微信支付,附源代码(VUE and th

    wechat github手把手实现微信网页授权和微信支付,附源代码(VUE and thinkPHP) 概述 公...

网友评论

      本文标题:微信授权登录 thinkphp版

      本文链接:https://www.haomeiwen.com/subject/spdfnttx.html