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

微信授权登录 thinkphp版

作者: warcello | 来源:发表于2016-11-10 17:21 被阅读4395次

今天整理一下微信授权登录的过程,方便以后记忆

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";

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";

$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/xsjxpttx.html