【微信开发】网页授权多域名解决方案(转账:http://www.mamicode.com/info-detail-1779962.html)

本文主要是介绍【微信开发】网页授权多域名解决方案(转账:http://www.mamicode.com/info-detail-1779962.html),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

标签:chat   wechat   www   response   span   connect   域名   其他   二级域名   

在做微信开发的时候,会遇到这样的场景:一个公众号,会有多个业务:官网、论坛、商城等等

网页授权是只能一个域名,那么问题来了?这怎么搞?

 

答案就是: 做一个中转服务!

域名1: www.test.com

域名2: bbs.test.com

 

这时候,再解析一个二级域名:code.test.com 作为中转授权域名

并在微信公众平台后台网页授权域名地方填写这个 中转域名

 

www.test.com   授权代码改为:

header("location:http://code.test.com/code.php?ask_type=www");

bbs.test.com  授权代码改为:

header("location:http://code.test.com/code.php?ask_type=bbs");

 

code.test.com 域名新建三个文件

  • code_php : 发起授权文件
  • www.php: 返回接收code并跳转www.test.com文件
  • bbs.php : 返回接收code并跳转 bbs.test.com文件

code_php 文件代码:

if(isset($_GET[‘ask_type‘]) && !empty($_GET[‘ask_type‘])){$ask_type = $_GET[‘ask_type‘];if($ask_type == ‘bbs‘){$action = "bbs.php";}elseif($ask_type == ‘www‘){$action = "www.php";}//发起授权$appid = "";  $redirect_url = "http://code.test.com/".$action;$code_url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".urlencode($redirect_url)."&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";header("location: ".$code_url);    die;}else{echo "nononono";
}

 

bbs.php文件代码:

if(isset($_GET[‘code‘]) && !empty($_GET[‘code‘])){$code = $_GET[‘code‘];$bbs = "http://bbs.test.com/";header("location:".$bbs."?code=".$code);
}else{echo ‘nonono‘;
}

 

www.php 文件代码:

 

if(isset($_GET[‘code‘]) && !empty($_GET[‘code‘])){$code = $_GET[‘code‘];$bbs = "http://www.test.com/";header("location:".$bbs."?code=".$code);
}else{echo ‘nonono‘;
}

 

目前是两个业务域名。如果还有其他业务,可以按照上述例子新增!

这篇关于【微信开发】网页授权多域名解决方案(转账:http://www.mamicode.com/info-detail-1779962.html)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

css中的 vertical-align与line-height作用详解

《css中的vertical-align与line-height作用详解》:本文主要介绍了CSS中的`vertical-align`和`line-height`属性,包括它们的作用、适用元素、属性值、常见使用场景、常见问题及解决方案,详细内容请阅读本文,希望能对你有所帮助... 目录vertical-ali

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件