php 微信网页授权 实例

PHP实践:手把手微信公众号网页授权登录功能实现 在Web应用中,用户登录是非常常见的功能之一。为了提供更好的用户体验,并且方便用户进行登录,很多应用选择通过第三方平台进行登录授权,比如微信QQ等。本文将以微信登录授权为例,介绍如何使用PHP实现网页授权登录,并将用户昵称和头像更新到用户表中。通过以上的步骤,我们可以实现网页授权登录,并将用户的昵称和头像更新到用户表中。当用户点击登录按钮后,会跳转至微信授权页面进行登录和授权。用户同意授权后,微信将用户重定向回我们的网站,并携带一个授权码。我们使用这个授权码获取和openid,并通过和openid。 阅读详情

根据微信授权文档结合当前需求

(php有回复功能的页面  在微信内部打开,回复时要求获取用户信息并保存,使用微信用户信息资料)

做了分类判断(呼出类与静默类)

1.在php页面进行配置(分类判断操作的php页面,还是自己的页面)

php页面(index.php)

//微信授权
$backurl = base64_encode("http://****.com/wechat_oauth_save.php?id=".$post_id);//回掉页面
$oauth_url = "https://****.com/oauth.php?scope=snsapi_userinfo&backurl=".$backurl;//分类判断

php分类判断(oauth.php) scope,与backurl

<?php
ini_set("display_errors",'Off');
error_reporting(0);
//配置微信公众好appid和appsecret
define("APPID","wx6***bc");
define("APPSECRET","983***d9ddb9");

$backurl=$_GET['backurl'];
$scope=isset($_GET['scope'])?$_GET['scope']:'snsapi_base';
//snsapi_base无提示,snsapi_userinfo有提示
if($scope=="snsapi_base")
{
    $redirect_uri="http://****/oauth_back_snsapi_base.php?backurl=".$backurl;
}else
{
    $redirect_uri="http://****k/oauth_back_snsapi_userinfo.php?backurl=".$backurl;
}
//微信接口
$url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".APPID."&redirect_uri={$redirect_uri}&response_type=code&scope={$scope}&state=123#wechat_redirect";
header("Location: {$url}");
?>

2.请求微信接口获取数据

oauth_back_snsapi_base.php(静默获取)

<?php
define("APPID","wx***bc");
define("APPSECRET","983****db9");
include_once('/o*****h/memcache/memcache.php');//memcache配置

$code=$_GET['code'];//微信获取的code
$backurl=base64_decode($_GET['backurl']);

$url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".APPID."&secret=".APPSECRET."&code={$code}&grant_type=authorization_code";
$token_info=json_decode(curl($url),true);//获取openid
$openid=$token_info['openid'];
//user_info?
$access_token=curl("http://******/weixin/callback/get_access_token.php?from=ci123");
$url="https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$access_token."&openid=".$openid;
$uinfo=json_decode(curl($url),true);
//print_r($uinfo);exit;
M::Set('wx_'.$openid,$uinfo,3600);
$arr=parse_url($backurl);
$query=$arr['query'];
$backurl=str_replace('?'.$query,'',$backurl);
$backurl.="?op=".$openid."&".$query;
header("Location: {$backurl}");

function curl($url,$data=null)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $tmpInfo = curl_exec($ch);
    if (curl_errno($ch)) {
      return curl_error($ch);
    }
    curl_close($ch);
    return $tmpInfo;
}
?>

oauth_back_snsapi_userinfo.php 弹出框获取用户信息

<?php
//ini_set("display_errors",'On');
//error_reporting(E_ALL ^ E_NOTICE);
ini_set("display_errors",'Off');
error_reporting(0);
define("APPID","wx6*****deabc");
define("APPSECRET","983****d9ddb9");

include_once('*****/memcache/memcache.php');

$code    =$_GET['code'];//回掉带来的code
$backurl = base64_decode(trim($_GET['backurl']));
$url     = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".APPID."&secret=".APPSECRET."&code={$code}&grant_type=authorization_code";
$token_info=json_decode(curl($url),true);
$access_token=$token_info['access_token'];
$openid=$token_info['openid'];
$url="https://api.weixin.qq.com/sns/userinfo?access_token={$access_token}&openid={$openid}&lang=zh_CN";
$uinfo=json_decode(curl($url),true);
M::Set('wx_'.$openid,$uinfo,3600);
$arr=parse_url($backurl);
$query=$arr['query'];
$backurl=str_replace('?'.$query,'',$backurl);
$backurl.="?op=".$openid."&".$query;
header("Location: {$backurl}");//返回页面

function curl($url,$data=null)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $tmpInfo = curl_exec($ch);
    if (curl_errno($ch)) {
      return curl_error($ch);
    }
    curl_close($ch);
    return $tmpInfo;
}
?>

3.保存用户信息

wechat_oauth_save.php

<?php
session_start();
include_once('/***/m/inc/global.php');
include_once('/***/class_xmlrpc.php');
include_once('/****/memcache.php');
...
$openid=$_GET['op'];//授权用户的openid
$user_info = M::Get('wx_'.$openid);
$unionid = $user_info['unionid'];

$backurl = 'http://**/share_view.php?id='.$_GET['id']."#reply_content";//授权后重定向的网页
...

echo "<script>window.location.href='".$backurl."'</script>";//返回用户浏览页面

 

使用thinkadmin内置WeChatDeveloper发送公众号模板消息 资源 1.thinkadmin地址 https://gitee.com/zoujingli/ThinkAdmin?_from=gitee_search 2.WeChatDeveloper地址 https://gitee.com/zoujingli/WeChatDeveloper 配置信息 前往后台配置好公众号基本信息 代码实现 <?php namespace app\api\controller\v1; use WeChat\Contracts\Tools; use library\Control 阅读详情

相关推荐

PHP实现微信网页授权开发教程

微信网页授权是服务号才有的高级功能,开发者可以通过授权后获取用户的基本信息;在此之前,想要获取消息信息只能在用户和公众号交互时根据openid获取用户信息;而微信网页授权可在不需要消息交互,也不需要关注的情况下获取用户的基本信息。 微信网页授权时通过OAuth2.0完成的,整个过程分为三步: 用户授权,获取code; 根据code获取access_token【可通过refresh_token刷新获取较长有效期】 通过access_token和openid获取用户信息 对微信网页授权过程做了简单封装: <?php /** * 微信授权相关接口 */ class W

php实现微信授权登录

一、 微信授权方法: public function wxAuth() { $this->load->model(‘Wxapi_model’); openid=isset(openid = isset(openid=isset(_COOKIE[‘uid’])?COOKIE[′uid′]:′′;if(_COOKIE['uid']:''; if(C​OOKIE[′uid′]...

qq_42686930的博客 2102

【STM32】CubeMx系列教程之移植FreeRTOS

本文详细介绍了在STM32F429上通过CubeMX工具移植FreeRTOS的方法。主要内容包括:1)配置系统时钟源,将TIM1替换SysTick作为时钟基准;2)FreeRTOS的创建与配置,包括任务创建、堆栈大小设置等;3)关键配置参数说明,如堆大小建议设为RAM的50%-70%;4)常用函数如堆栈监控、任务挂起/恢复等。文章提供了从基础配置到深入优化的完整移植指南,适合STM32开发者参考使用。

JackieJin123的博客 785

PHP 网页授权获取微信用户基本信息(微信登录)

$appid = "appid "; //微信公众号(必须服务号)->基本配置 ->公众号开发信息 获取appid 和AppSecret $secret = "secret "; if(!cookie('code')||!cookie('mid')){ $redirect_uri = urlencode('...

psw的博客 5212

Android 13 GMS认证避坑:手把手教你搞定RKP配置,解决GTS测试fail

本文详细解析Android 13 GMS认证中的RKP(远程密钥配置)全流程,提供GTS测试失败的深度解决方案。从RKP核心概念到实战配置技巧,帮助开发者规避常见陷阱,确保设备顺利通过Google安全认证,特别适合需要快速掌握Android13 GMS认证的工程师参考。

weixin_29796279的博客 461

WinForm多语言切换实战:5分钟搞定中英文界面(附完整代码)

本文提供了WinForm应用实现中英文界面切换的两种高效实战方案。通过利用内置的本地化机制和资源文件,开发者可以在5分钟内为窗体添加多语言支持,并附有完整代码示例,帮助快速应对软件国际化需求。

weixin_29230773的博客 406

PHP实现微信网页登陆授权开发

官方开发文档地址 https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参

Young 2万+

【Pix4d精品教程】Pix4d中央子午线细化设置(测区跨两个分带)

本文介绍了在Pix4d软件中通过修改中央子午线设置来解决跨分带测区刺点问题的方法。针对测区跨3度分带(如105°和108°之间)时像控点与靶标点偏移较大的情况,建议将中央子午线设为测区中心(如106.5°)。具体操作步骤包括:修改投影文件中的中央子午线参数,选择新的输出坐标系配置文件。该方法能有效提高像控点刺点效率,为航测内业数据处理提供便利。操作简单实用,适合大比例尺测图项目中跨分带测区的数据处理需求。

智慧空间实验室 5526

PHP H5微信授权

<?php /** * Created by PhpStorm. * User: wudi * Date: 2019/1/28 * Time: 10:31 */ namespace app\index\controller; use app\BaseController; use think\facade\view; use think\facade\DB; class Wxgetuserinfo extends BaseController { /** * 调用方

libertine的博客 608

【ROS2】从yaml文件中读取参数配置

ROS2:从yaml中读取参数,到节点;使用C++演示参数的增、删、改、查、遍历、监听变化

郭老二 1284

【Matlab】如何使用Simulink进行电池建模和SOC预估

“通过Simulink电池建模进行SOC预估,其实挺容易!” 1 声明 本文只描述一般性电池建模方法,文中出现的电池相关数据来自一些论文或者外文文献,对数据的真实性不做任何保证。 本文参考了不少国内高校的硕士论文和外文文献,所以本篇文章只作为学术性交流,未经...

wanff1204的博客 2万+

php微信网页授权登录代码,6.01 浅谈微信网页授权登录流程及代码实例

微信网页授权登录流程:1、首先通过微信自定义菜单:用户同意授权,页面发生跳转到显示用户信息方法,获取code;2、通过code换取网页授权access_token,得到取得access_token和openid;3、将access_token和openid,传入到微信提供的接口当中,拉取用户信息。实例:建立Weixin.php控制器:// 微信网页授权// 获取当前用户的昵称、头像信息// 1 第...

weixin_39942033的博客 248

【AI智能体】QClaw 对接GitHub处理自动化任务实战操作详解

QClaw 对接GitHub处理自动化任务实战操作详解

congge 4867

php 微信网页静默授权,原生PHP 微信网页授权 实例

根据微信授权文档结合当前需求(php有回复功能的页面 在微信内部打开,回复时要求获取用户信息并保存,使用微信用户信息资料)做了分类判断(呼出类与静默类)1.在php页面进行配置(分类判断操作的php页面,还是自己的页面)php页面(index.php)//微信授权$backurl = base64_encode("http://****.com/wechat_oauth_save.php?id=...

weixin_33168937的博客 601

订餐平台餐厅信息抓取:使用Python爬虫获取商家信息和用户评价

在这篇博客中,我们展示了如何使用Python爬虫抓取订餐平台上的餐厅信息和用户评价数据。通过使用requests和Selenium,我们能够有效地从静态和动态网页中提取数据,并使用pandas和matplotlib对数据进行存储和分析。未来,您可以根据需求进一步扩展功能,例如增加错误处理、增加抓取多个页面的能力,或者使用高级技术如分布式爬虫来抓取更大规模的数据。

2201_76125261的博客 1651

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

微信网页开发教程 php,PHP实现微信网页授权开发教程_php实例

这篇文章主要为大家分享了PHP实现微信网页授权开发教程,开发者可以通过授权后获取用户的基本信息,感兴趣的小伙伴们可以参考一下微信网页授权是服务号才有的高级功能,开发者可以通过授权后获取用户的基本信息;在此之前,想要获取消息信息只能在用户和公众号交互时根据openid获取用户信息;而微信网页授权可在不需要消息交互,也不需要关注的情况下获取用户的基本信息。微信网页授权时通过OAuth2.0完成的,整个...

weixin_39947501的博客 80

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

微信oauth MySQL_微信OAuth2网页授权登陆接口PHP实例下载

微信OAuth2网页授权登陆接口,在你的网站上放上可以扫码登陆,会不会吸引更多用户去注册,微信扫码登陆接口开发你只要需要把配制文件中的APPid、KEY等修改为你自己中你申请的时的就可以,傻瓜式操作,无论你是技术大神还是刚入门的小白,只需修改一下配制文件,便可帮助你实现各种网站登陆。使用方法1.配置网页授权域名登录微信公众平台后台,在左侧目录底部找到“开发”-“接口权限”,点击进入并在接口列表中...

weixin_42612405的博客 290

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

php微信公众平台获取用户信息实例,php微信网页授权代码(获取用户信息)

php微信网页授权代码获取用户信息1.填写授权回调页面的域名 (注意只有服务号才可以页面授权)登录公众平台-->开发者中心-->接口权限表2.代码如下scope为snsapi_base那么用户必须是关注了公众号才能取得信息index.php//scope=snsapi_base实例$appid='你的AppId';$redirect_uri=urlencode('http:...

weixin_36416418的博客 508

网页授权获取用户信息(自我总结)

首先打开OAuth 配置;确定Scopes是snsapi_base还是snsapi_userinfo? 1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面) 2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用...

weixin_30919571的博客 182

php微信获取openid_PHP微信网页授权获取OPENID

必要条件:1)公众号认证2)有网页授权获取用户基本信息的权限接口或者去http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login微信开发者调试去注册填写授权回调页面的域名登录公众平台-->开发者中心-->接口权限表找到网页授权获取用户基本信息然后修改-->填写你的域名.如下:关于网页授权的两种scope的区别说明...

weixin_39734646的博客 901

微信获取openID以及token

微信的openID和token是唯一的身份标识。非常重要,其中token的有效期只有两个小时(官方可能修改)。获取openID事例: 官方文档 1 第一步:用户同意授权,获取code https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=URL&response_type=code &s

dianxiaoer51的博客 6283

微信网页授权-PHP微信获取用户信息

关于网页授权的两种scope的区别说明(官方) 1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面) 2、以snsapi_userinfo为scope发起的网页...

choujiaohan5830的博客 167

微信网页登陆授权示例-php版

http://www.jb51.net/article/93318.htm 本文实例讲述了php版微信公众平台之微信网页登陆授权。分享给大家供大家参考,具体如下: 微信公众平台实现微信网页登陆授权开发其实是非常的简单了,因为官方的参考程序了,下面小编就看了一站长根据官方参考做的一个网页登陆授权例子,大家可看看. 文件1:index.php ?

A9925的专栏 1283

php微信登录流程代码,6.1描述微信网页授权登录的流程。并写出示例代码

实例//通过code获取access_token用于获取用户信息publicfunctionauth_access_token($code){$url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".Config::get("wx.appid")."&secret=".Config::get("wx.apps...

weixin_39618173的博客 210
上一篇: 前端页面 (主要)原生php+H5 视频播放二 视频播放及切换
下一篇: 前端页面 音频加弹幕的php网页 demo
阿……莫西林
博客等级 码龄9年 42粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值