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)


相关推荐

  • Vue学习之样式处理

    Vue学习之样式处理Vue学习之样式处理

  • JAVA中反射机制六(java.lang.reflect包)

    JAVA中反射机制六(java.lang.reflect包)一、简介java.lang.reflect包提供了用于获取类和对象的反射信息的类和接口。反射API允许对程序访问有关加载类的字段,方法和构造函数的信息进行编程访问。它允许在安全限制内使用反射的字段,

  • matlab中interp1什么意思,matlab中interp1函数是什么意思啊?

    matlab中interp1什么意思,matlab中interp1函数是什么意思啊?csape可以选择样条的边界条件,interp1无法使用边界条件;csape只是Cubicspline插值,interp1可以选择几种不同的插值方法。csape函数的用法如下:pp=csape(x,y,conds,valconds)其中(x,y)为数据向量,conds表示变界类型,valconds表示边界值。边界类型(conds)可为:’complete’,给定边界一阶导数.’not-a-…

  • Spring中的设计模式[通俗易懂]

    Spring中的设计模式[通俗易懂]Spring中的设计模式

  • 手机资费相关问题的解答方法_昆虫记的问题及答案

    手机资费相关问题的解答方法_昆虫记的问题及答案1、太原移动现在GPRS包月怎样收费?   答:现在有6档GPRS套餐。1、标准资费,0元月租,无赠送GPRS流量,按0.03元/KB收费。2、5元套餐,月租5元,赠送GPRS流量10MB,超出赠送部分的GPRS费用是0.01元/KB。3、10元套餐,月租10元,赠送GPRS流量20MB,超出赠送部分的GPRS费用是0.01元/KB。4、20元套餐,月租20元,赠送GPRS流量50MB,超出…

  • Json交互处理_stata交互项检验

    Json交互处理_stata交互项检验Json交互处理JSON简介JSON(JavaScriptObjectNotation,JS对象标记)是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。在JavaScript语言中,一切都是对象。因此,任何JavaScript支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等。看看他

    2022年10月15日

发表回复

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

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