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

相关文章

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

聊聊springboot中如何自定义消息转换器

《聊聊springboot中如何自定义消息转换器》SpringBoot通过HttpMessageConverter处理HTTP数据转换,支持多种媒体类型,接下来通过本文给大家介绍springboot中... 目录核心接口springboot默认提供的转换器如何自定义消息转换器Spring Boot 中的消息

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

C语言自定义类型之联合和枚举解读

《C语言自定义类型之联合和枚举解读》联合体共享内存,大小由最大成员决定,遵循对齐规则;枚举类型列举可能值,提升可读性和类型安全性,两者在C语言中用于优化内存和程序效率... 目录一、联合体1.1 联合体类型的声明1.2 联合体的特点1.2.1 特点11.2.2 特点21.2.3 特点31.3 联合体的大小1

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3