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

相关文章

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

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

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

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

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