php实现微信扫码登陆,PHP实现微信开放平台扫码登录源码下载[通俗易懂]

php实现微信扫码登陆,PHP实现微信开放平台扫码登录源码下载[通俗易懂]1、首先到微信开放平台申请https://open.weixin.qq.com/获取到appid和APPSECRET,前台显示页面如下varobj=newWxLogin({id:”login_container”,appid:”wxed782be999f86e0e”,scope:”snsapi_login”,redirect_uri:encodeURIComponent(“htt…

大家好,又见面了,我是你们的朋友全栈君。

38b302dcf26f3ce05e440083d5575dd9.png

1、首先到微信开放平台申请https://open.weixin.qq.com/ 获取到appid和APPSECRET,前台显示页面如下

var obj = new WxLogin({

id: “login_container”,

appid: “wxed782be999f86e0e”,

scope: “snsapi_login”,

redirect_uri: encodeURIComponent(“http://” + window.location.host + “/login.php”),

state: Math.ceil(Math.random()*1000),

style: “black”,

href: “”});

2、PHP处理代码页面

/*

require_once(‘weixin.class.php’);

$weixin = new class_weixin();

*/

define(‘APPID’,        “”);

define(‘APPSECRET’,    “”);

class class_weixin

{

var $appid = APPID;

var $appsecret = APPSECRET;

//构造函数,获取Access Token

public function __construct($appid = NULL, $appsecret = NULL)

{

if($appid && $appsecret){

$this->appid = $appid;

$this->appsecret = $appsecret;

}

//扫码登录不需要该Access Token, 语义理解需要

//1. 本地写入

$res = file_get_contents(‘access_token.json’);

$result = json_decode($res, true);

$this->expires_time = $result[“expires_time”];

$this->access_token = $result[“access_token”];

if (time() > ($this->expires_time + 3600)){

$url = “https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=”.$this->appid.”&secret=”.$this->appsecret;

$res = $this->http_request($url);

$result = json_decode($res, true);

$this->access_token = $result[“access_token”];

$this->expires_time = time();

file_put_contents(‘access_token.json’, ‘{“access_token”: “‘.$this->access_token.'”, “expires_time”: ‘.$this->expires_time.’}’);

}

}

/*

*  PART1 网站应用

*/

/*

header(“Content-type: text/html; charset=utf-8”);

require_once(‘wxopen.class.php’);

$weixin = new class_weixin();

if (!isset($_GET[“code”])){

$redirect_url = ‘http://’.$_SERVER[‘HTTP_HOST’].$_SERVER[‘REQUEST_URI’];

$jumpurl = $weixin->qrconnect($redirect_url, “snsapi_login”, “123”);

Header(“Location: $jumpurl”);

}else{

$oauth2_info = $weixin->oauth2_access_token($_GET[“code”]);

$userinfo = $weixin->oauth2_get_user_info($oauth2_info[‘access_token’], $oauth2_info[‘openid’]);

var_dump($userinfo);

}

*/

//生成扫码登录的URL

public function qrconnect($redirect_url, $scope, $state = NULL)

{

$url = “https://open.weixin.qq.com/connect/qrconnect?appid=”.$this->appid.”&redirect_uri=”.urlencode($redirect_url).”&response_type=code&scope=”.$scope.”&state=”.$state.”#wechat_redirect”;

return $url;

}

//生成OAuth2的Access Token

public function oauth2_access_token($code)

{

$url = “https://api.weixin.qq.com/sns/oauth2/access_token?appid=”.$this->appid.”&secret=”.$this->appsecret.”&code=”.$code.”&grant_type=authorization_code”;

$res = $this->http_request($url);

return json_decode($res, true);

}

//获取用户基本信息(OAuth2 授权的 Access Token 获取 未关注用户,Access Token为临时获取)

public function oauth2_get_user_info($access_token, $openid)

{

$url = “https://api.weixin.qq.com/sns/userinfo?access_token=”.$access_token.”&openid=”.$openid.”&lang=zh_CN”;

$res = $this->http_request($url);

return json_decode($res, true);

}

首先须要申请,必须企业,个体工商户,媒体等,是开放平台,注意不是公众平台,是开放平台:申请地址:https://open.weixin.qq.com

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138542.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • KeyPal硬件钱包[通俗易懂]

    KeyPal硬件钱包[通俗易懂]KeyPal-一款多场景、易操作、全方位保护多链数字资产的硬件钱包以下文章来源于KeyPal硬件钱包,作者KeyPal2021年8月9日,TokenPocket发布了第一款服务于区块链领域的硬件钱包产品——KeyPal。KeyPal硬件钱包是TokenPocket基于开源项目自行深度研发出的一款多链的、多重认证、多方位保护用户数字资产的硬件钱包。KeyPal具有诸多亮点,从安全性、外观表现、材质用料、智能应用和公链支持等各方面都有不错的表现,是当前市面上最具性价比的一款硬件钱包。下面就..

  • linux安装软件报错: Can’t locate ExtUtils/Embed.pm in @INC…

    linux安装软件报错: Can’t locate ExtUtils/Embed.pm in @INC…

    2021年10月29日
  • Python负数取余总结

    Python负数取余总结Python负数取余总结余数存在正余数和负余数,要了解负余数,需要先了解取整原理17//5=3-17//5=-417//-5=-4-17//-5=3根据上述的4个公式,可以看出python的编译器是的取整符号位由被除数和除数同时决定,整数的数值是由向下取整的,即如果整数的符号位正,则取靠近0的数,如果整数是负数,则取远离0的数或者也可以这样理解:被除数和除数处于0的一边就往靠0的方向取整,如果是处于0的两边就往远离0的方向取整。了解了取整原理后,再理解取余就比较简单了17

  • ldap服务器签名要求修改,域控制器 LDAP 服务器签名要求

    ldap服务器签名要求修改,域控制器 LDAP 服务器签名要求你好,我们可以通过以下方法查看签名要求是否打开着:在DC中打开默认域策略(defaultdomainpolicy),展开目录:计算机配置>策略>windows设置>安全设置>本地策略>安全选项,在右侧的策略中有一条策略为“Domaincontroller:LDAPserversigningrequirements”由于我的环境中只有英文的系统,所以…

  • 微管滑动模型动画_滑动平均序列

    微管滑动模型动画_滑动平均序列因为本人是自学深度学习的,有什么说的不对的地方望大神指出指数加权平均算法的原理TensorFlow中的滑动平均模型使用的是滑动平均(MovingAverage)算法,又称为指数加权移动平均算法(exponenentiallyweightedaverage),这也是ExponentialMovingAverage()函数的名称由来。先来看一个简单的例子,这个例子来自吴恩达老师的De…

    2022年10月24日
  • qdoj.xyz 6.17

    qdoj.xyz 6.17

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号