公众号网页授权php,微信公众号里的PHP网站进行网页授权

news/2024/5/12 19:30:03/文章来源:https://blog.csdn.net/weixin_33279929/article/details/115167724

要进行网页授权,肯定要和微信合作,首先,要有一个自己的公众号,而且必须要经过认证的公众号.(如果没有,可以去申请测试号)

订阅号和服务号以及测试号:订阅号专注的是推送消息,所以一些高级接口会没有.服务号专注的是用户交互,所以接口会比订阅号多一点,相对的,推送消息的数量就会比订阅号少一点.而测试号,什么接口都有,但测试号,你懂得,用不时间长.

本文的教程仅仅是微信入门教程,如有错误,欢迎指正!!!

我要说的是微信的网页授权功能.如果要开发网页授权功能,就需要一个服务号,服务号,服务号. 因为进行网页授权的时候,必须要填一个网页授权域名,这个网页授权域名在订阅号里面没有,不支持.所以要用服务号

9da64eede1f3

功能设置

填好网页授权域名后,就可以进行代码的开发了.我这用的是PHP,思路都一样,具体代码差异,请找度娘............................

大致思路是:你先创建一个网页,让用户同意,当用户同意后,微信会带一个code参数来访问你填的网页授权域名底下的文件,比如:

http://授权域名/index.html、http://授权域名/index.php

这个文件是你自己建的,名字你自己起(没错,这个网页授权就是上面说的网页授权),然后我们在index.html或index.php里会获得微信传过来的code,然后拿这个code和Appid等换取信息,这个信息就是用户的信息咯

下面说代码:

嗯.......进行网页授权,第一步需要先创建一个页面,这个页面是给用户授权的.比如你进微信公众号网站,他会弹出来一个界面,问你是否授权用微信号登录这个网站.创建这个页面的代码:

$AppId = "你的Appid";

$Redirect_Uri = urlencode('域名/index.html');//这里是code参数来访问你填的网页授权域名,

底下的文件,这里是index.html//这个$Url 的scope 可以根据需求自己更改,我用的是snaapi_base,

这个意思就是用户只要关注了这个公众号,就不需要再手动去确认授权了,直接就访问微信公众号里的网页了

$Url = "https://open.weixin.qq.com/connect/oauth2/authorize

appid=$AppId&redirect_uri=$Redirect_Uri&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";//跳到这个$Url

header("Location:" .$Url);

这个授权界面弄好了,接下来就是再创建一个文件用来接收微信发的code了,再说一遍,你创建的这个文件就是上面代码里$Redirect_Uri 里域名后的那个文件.

你可以创建一个php文件,用$_Get["code"] 来获取code的信息.然后用code和APPid等去换取用户信息

但是,在这里,我用的是html文件,html 文件怎么去获取code呢?就要用js..... 这里,就要用到js函数了.

这个函数是获得Code的

function GetCode(name) {

var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");

var r = window.location.search.substr(1).match(reg);

if (r != null) return unescape(r[2]);

return null;

}

然后: 在前台html代码里执行js的GetUserInfo函数:

这是js里GetUserInfo()函数的代码,这里是用GetCode函数取得code,然后通过ajax把他传入后台php文件里

function GetUserInfo() {

var code = GetCode("code"); //获得code

$.ajax({

url: "Controller/GetUserInfo.php",

type: "GET",

dataType: "json",

data: {code:code},

success: function (data) {},

error: function () {

alert("服务器连接错误:获取用户信息失败!...");

}

});

}

接下来,是PHP后台了:

$Code = $_GET['code']; //这里获取到Code

$Wx = new GetWxUserData();//这里通过Code和appid获得用户信息的过程我是写在

//GetWxUserData()类里的GetOpenid($code) 这个函数里的

$Result = $Wx->GetOpenid($Code);

$Openid = $Result["openid"]; //这里的$Openid就是用户的openid,

//可以把他通过echo json_encode($Openid) 返回到前台,就是前面

js里GetUserInfo()的ajax里的success(data) {},这个data就是echo json_encode($Openid) 返回的数据.也可以把用户的openid运用在后台,比如存数据库之类的,反正随便你怎么用

接下来,就是这个GetWxUserData类了,类的代码我不发了,我只发GetOpenid($Code)这个函数就行了:

private $AppId = "你的Appid";

private $Secret = "你的secret,就是开发者密码";

public function GetOpenid($Code) {

$Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$this->AppId&secret=$this->Secret&code=$Code&grant_type=authorization_code";

$Result = $this->https_request($Url);

return json_decode($Result, true);//因为返回来的数据是json数据,所以要把他转化一下

}

public function https_request($Url, $Data = null) {

$Curl = curl_init();

curl_setopt($Curl, CURLOPT_URL, $Url);

curl_setopt($Curl, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($Curl, CURLOPT_SSL_VERIFYHOST, FALSE);

if (!empty($Data)) {

curl_setopt($Curl, CURLOPT_POST, 1);

curl_setopt($Curl, CURLOPT_POSTFIELDS, $Data);

}

curl_setopt($Curl, CURLOPT_RETURNTRANSFER, 1);

$Output = curl_exec($Curl);

curl_close($Curl);

return $Output;}

好了,到这里就可以了,openid已经获取到了,其他好像没什么问题了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_715184.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mouseenter 与mouseover 区别

mouseenter 与mouseover 区别 mouseenter与mouseover有什么不同,也许可以从两方面去讲。看他们是是否支持冒泡或者是否为事件的触发时机; 只有当鼠标指针在对象的边界之外,用户把鼠标移动到对象的边界内时,事件mouseenter才触发。…

Nginx 开启 Gzip压缩提升网站速度

多说无益 ,直接上配置 vim nginx.conf 参数 gzip配置的常用参数 gzip on|off; #是否开启gzip gzip_buffers 32 4K| 16 8K #缓冲(压缩在内存中缓冲几块? 每块多大?) gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源) gzip_disab…

Bootstrap响应式网站开发实战 # 第二章习题答案

1.用Bootstrap实现一个隔行变色的表格 <!DOCTYPE html> <html> <head><title>Bootstrap Practice</title><link rel

Bootstrap响应式网站开发实战 # 第三章习题答案

一、选择题 AAA 二、操作题 1.实现如图所示的效果(四列网格布局) <!DOCTYPE html> <html> <head><title>Bootstrap Practice</title

Bootstrap响应式网站开发实战 # 第四章习题答案

一、选择题 1.A 2.B 3.A 二、操作题 1.实现如图所示的效果 <!DOCTYPE html> <html lang="zh-CN"> <head>

Bootstrap响应式网站开发实战 # 第五章习题答案

一、选择题 1.A 2.A 3.A 4.A 5.B 6.B 7.B 二、操作题 请用多媒体对象实现如图所示效果图 <!DOCTYPE html> <html lang="zh-CN"> <head>

Bootstrap响应式网站开发实战 # 第七章习题答案

1.实现如图所示效果 (网页里实现幻灯片切换效果 / 轮播) <!DOCTYPE html> <html lang="zh-CN"> <head><meta

Bootstrap响应式网站开发实战 # 第八章习题答案

如图所示 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset

修改网站自动关闭时间timeout_优雅关闭线程池的方案

我们经常在项目中使用的线程池&#xff0c;但是是否关心过线程池的关闭呢&#xff0c;可能很多时候直接再项目中直接创建线程池让它一直运行当任务执行结束不在需要了也不去关闭&#xff0c;这其实是存在非常大的风险的&#xff0c;大量的线程常驻在后台对系统资源的占用是巨大…

在这里输入你要搜索的内容怎么不显示_网站收录释疑,当遇到收录问题,我们该怎么处理...

做SEO的童鞋们都清楚&#xff0c;网站收录是一个网站能够获得排名的基础&#xff0c;网站内容被搜索引擎收录&#xff0c;它才有可能在这个搜索引擎里获得排名&#xff0c;这是先决条件。网站收录是什么&#xff1f;打个比方&#xff0c;一个高中生要在全国高考获得名次&#x…

爬虫得到的页面和实际页面有出入_蜘蛛爬虫抓取网站页面的策略

如今&#xff0c;每天都有很多SEO人员在在更新着网站的页面&#xff0c;如果搜索引擎中蜘蛛爬虫没有选择性的抓取页面&#xff0c;那将会是一个庞大的工作量。根据以上情况可以了解到&#xff0c;蜘蛛爬虫在进行抓取的时候&#xff0c;是有一定的策略的&#xff0c;是有选择性的…

Vue预渲染prerender-spa-plugin的使用,改善少数营销页面的 SEO

1. 安装&#xff1a; cnpm i prerender-spa-plugin -D 2. 配置&#xff1a; webpack.prod.conf.js&#xff1a; const PrerenderSPAPlugin require(prerender-spa-plugin) const Renderer PrerenderSPAPlugin.PuppeteerRenderer ... plugins: [ ...// 预渲染new Prerende…

打不开网站 服务器程序错误怎么办啊,“网站打不开”怎么办?快速排查思路及解决方案...

一、域名解析不生效原因分析&#xff1a;域名解析并非添加后就会立即生效&#xff0c;解析不生效就会让域名找不到服务器&#xff0c;这样就会造成网站打不开。解析长时间无法生效或不对&#xff0c;需要联系域名提供商或者dns提供商协助排查。目前解析不生效有以下原因&#x…

git desktop发布到gitee_MAC系统下利用gitee和Hexo建个人网站-各种坑各种填

今天心血来潮&#xff0c;想建一个个人博客把自己的日常一些内容整理放到一起。以前建过一个网站&#xff0c;但是懒于打理&#xff0c;一直也没认真去做&#xff0c;域名和购买的主机的钱也打了水漂。痛定思痛&#xff0c;决定自己这次先来试试免费的&#xff0c;不用花自己钱…

http status 404 – 未找到_[SEO名词]网站404页面是什么?

404其实是一种http状态码&#xff0c;代表用户在浏览网页时&#xff0c;服务器无法提供正确信息或是服务器因不明原因导致不能正常返回信息。简单点说就是网页未找到或者网页丢失&#xff0c;就是出现404状态码。出现404的网页&#xff0c;我们称为404页面。404页面的影响打开的…

android 游戏引擎 排行_海淀seo优化:搜索引擎通用SEO优化技术

常常有一些人问不一样的百度搜索引擎的seo优化工作中有哪些不一样?从SEO提升的实践活动特点上看来&#xff0c;要是认真掌握SEO的压根&#xff0c;搞好基本提升;深入了解百度搜索引擎的优化算法标准&#xff0c;循规蹈矩地做&#xff0c;即便 百度搜索引擎的服务平台不一样&am…

url 参数传递的两种方式_SEO的最佳URL结构是什么?

您的许多访问者都会通过点击链接访问您的网站&#xff0c;因此您可能想知道特定网页的实际网址中的内容是否真实重要。您可能会惊讶地发现&#xff0c;当谈到现场搜索引擎优化时&#xff0c;您的网址看起来真的非常重要。一、什么是URL结构&#xff1f;您的网站URL作为您在网络…

检测到有程序正在访问网络_花旗银行、eBay等网站窃取访问者隐私信息 Behave可监测网站行为...

一个名为Behave&#xff01;的新浏览器扩展。如果网站正在使用脚本对网络上的本地和私有IP地址执行扫描或攻击&#xff0c;则会发出警告。浏览网页时&#xff0c;网页上嵌入的脚本不仅可以用于扫描访问者的计算机中是否存在开放的TCP端口&#xff0c;还可以对网络上的其他设备发…

网站底部运行时间的php代码,在wordpress网站底部添加运行时间和加载时间

效果如下图代码加到footer.php底部完整代码如下&#xff1a;本次查询<?php echo get_num_queries(); ?> 次 用时<?php timer_stop(1); ?> 秒已稳定运行function runTime() {var d new Date(), str ;BirthDay new Date("2019-3-8");today new Dat…

网站打开出现服务器错误代码,网站打开出现“404”错误怎么解决?

**404这个状态码是很多Seoer分析网站日志时常见到的&#xff0c;那么404错误是什么意思呢&#xff1f;它表示客户端请求的网页不存在&#xff0c;因此返回** 404代码&#xff1b;服务器找不到请求的网页。服务器上不存在的网页经常会返回此代码&#xff1f;如果出现这种情况&am…