php微信菜单点击跳转,微信公众号开发--获取网页受权并自定义菜单点击得到openid跳转...

本文主要是介绍php微信菜单点击跳转,微信公众号开发--获取网页受权并自定义菜单点击得到openid跳转...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以前作了个自定义菜单的click事件,可是订阅号升级为服务号,相应的有了网页的基础受权(须要认证的服务号)php

其中使用到了自定义菜单接口:http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.htmlhtml

网页受权获取用户基本信息接口:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.htmljson

34f3f148662823ee4c15326815264eb8.png

1、在接口处获取网页受权,并填写你的域名或ip(域名不须要协议 http://www.baidu.com而是www.baidu.com)api

13e0eba64fbbe6920681baec77833a47.png

2、在自定义菜单出的url写入“第一步:用户赞成受权,获取code”的url,并将redirect_uri写成你的VIEW时间点击后须要跳转的路径,以下:微信

68b325aaaa097482f7148be5c39c3674.png

"button": [

{"type": "click","name": "图文获取","key": "图文"},

{"type": "view","name": "受权获取","url": "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx0738856156f7323c&redirect_uri=http://www.你的网址.com&response_type=code&scope=snsapi_base&state=1#wechat_redirect"}

]

}

3、在请求成功后返回code并用来获取openidsession

7b3deb906a93d42ad2cb0bf8b0b94693.png

经过code获取openid的参数如上,即在入口文件中为:app

a592b594a740f7e5c15a1a642e90a075.png

/**

* @desc 向微信接口发送请求

**/

function getJson($url){

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$output = curl_exec($ch);

curl_close($ch);

return json_decode($output, true);

}

-------------------------------------------------------------------------------------我是分割线-------------------------------------------------------------------------------------------------curl

可是有些时候须要页面重定向出下面的效果:url

a1fa5959034948d9597cff4287a16089.png

这时候就须要页面重定向:spa

①判断是否有$_GET['code'],若则将页面重定向到网页受权页面

$now_url='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];//获取当前url$judge= preg_match("/stat/",$now_url);//正则判断是否网页受权urlif(!$_SESSION['nowUrl'] && !$judge){//搜索到oauth2这个词不存在时,证实这个url不是通过处理的$_SESSION['nowUrl'] =$now_url;//生成session用于判断$url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx50090139912065bd&redirect_uri=http://xxx&response_type=code&scope=snsapi_base&stat";header("Location:$url");}

② 通过①,页面已重定向到网页受权页面,若是你不在微信打开就会出现:请在微信客户端打开连接,若是在微信打开则以下操做:

if($_SESSION['nowUrl']){$url=$_SESSION['nowUrl'];unset($_SESSION['nowUrl']);header("Location:$url");//销毁session后跳转回去}

这样咱们就作好了微信网页受权(可避免在微信外打开)-\-\

这篇关于php微信菜单点击跳转,微信公众号开发--获取网页受权并自定义菜单点击得到openid跳转...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/772657

相关文章

Qt实现对Word网页的读取功能

《Qt实现对Word网页的读取功能》文章介绍了几种在Qt中实现Word文档(.docx/.doc)读写功能的方法,包括基于QAxObject的COM接口调用、DOCX模板替换及跨平台解决方案,重点讨论... 目录1. 核心实现方式2. 基于QAxObject的COM接口调用(Windows专用)2.1 环境

Agent开发核心技术解析以及现代Agent架构设计

《Agent开发核心技术解析以及现代Agent架构设计》在人工智能领域,Agent并非一个全新的概念,但在大模型时代,它被赋予了全新的生命力,简单来说,Agent是一个能够自主感知环境、理解任务、制定... 目录一、回归本源:到底什么是Agent?二、核心链路拆解:Agent的"大脑"与"四肢"1. 规划模

springboot的controller中如何获取applicatim.yml的配置值

《springboot的controller中如何获取applicatim.yml的配置值》本文介绍了在SpringBoot的Controller中获取application.yml配置值的四种方式,... 目录1. 使用@Value注解(最常用)application.yml 配置Controller 中

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

Apache服务器IP自动跳转域名的问题及解决方案

《Apache服务器IP自动跳转域名的问题及解决方案》本教程将详细介绍如何通过Apache虚拟主机配置实现这一功能,并解决常见问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录​​问题背景​​解决方案​​方法 1:修改 httpd-vhosts.conf(推荐)​​步骤

kafka自定义分区器使用详解

《kafka自定义分区器使用详解》本文介绍了如何根据企业需求自定义Kafka分区器,只需实现Partitioner接口并重写partition()方法,示例中,包含cuihaida的数据发送到0号分区... 目录kafka自定义分区器假设现在有一个需求使用分区器的方法总结kafka自定义分区器根据企业需求

golang实现nacos获取配置和服务注册-支持集群详解

《golang实现nacos获取配置和服务注册-支持集群详解》文章介绍了如何在Go语言中使用Nacos获取配置和服务注册,支持集群初始化,客户端结构体中的IpAddresses可以配置多个地址,新客户... 目录golang nacos获取配置和服务注册-支持集群初始化客户端可选参数配置new一个客户端 支

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D