博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信开放平台授权java_解决微信等开放平台授权域名只能配置一个的问题
阅读量:6279 次
发布时间:2019-06-22

本文共 729 字,大约阅读时间需要 2 分钟。

此解决方案用于解决微信等开放平台授权域名只能配置一个的问题

背景:

商户接入微信公众号支付的时候需要在微信配置授权域名,而这个授权域名只能配置一个,公众号支付需要先获取用户的授权

获取授权的过程中需要先获取code,同时提供一个redirect_uri供授权成功后回调,这个redirect_uri必须是在这个授权 域名下,比如我们配置的域名是abc.com,则redirect_uri必须类似 https://abc.com/a/b

面临的问题

我们一般开发过程中都会有多套环境,比如最基本的测试环境&生产环境,而且一般测试环境和生产环境域名不同,这样就会 导致测试过程中需要切换授权域名,而我们一旦发布到生产环境后,再想测试就难啦,如果我们直接改成测试域名去测试就

会导致生产环境无法正常运行,另外由于我们配置授权域名的过程中,微信会要求我们从微信那下载一个认证文件然后放到

域名的根目录下,这样就需要分别在测试环境和生产环境去配置,流程特别繁琐

解决方案

既然只能设置一个域名,那我能不能专门搞个域名做这个事情呢,授权域名设置成我的域名,所有请求微信授权的请求都经过 我,同时微信回调的时候也先回调我,我再回调到业务系统,于是就有了此解决方案,两种方案的对比如下:

传统授权逻辑

68747470733a2f2f6e6f74652e796f7564616f2e636f6d2f7977732f6170692f706572736f6e616c2f66696c652f57454236373031393533323938663964663136333036326635346430653234386638303f6d6574686f643d646f776e6c6f61642673686172654b65793d3161323034613064303464623966633762326361353661353535343335653331

改进版授权逻辑

68747470733a2f2f6e6f74652e796f7564616f2e636f6d2f7977732f6170692f706572736f6e616c2f66696c652f57454235366634336262336561613831333535366137666233383839633130373931653f6d6574686f643d646f776e6c6f61642673686172654b65793d6465646434346464336665646332323030373164303832376564666636326266

如何使用

本系统基于spring boot构建了一个轻量级的工程,开发者只需要修改下application.yml中的配置,主要是oauth.domain 启动端口和url可以按需修改,然后直接启动此jar包,启动方式:java -jar common-oauth-1.0.jar,然后让运维人员配置 nginx,将特定url指向此服务的ip&port即可

转载地址:http://sznva.baihongyu.com/

你可能感兴趣的文章
php字符函数的学习
查看>>
Android进阶之AIDL的使用详解
查看>>
VMware 上网的三种方式
查看>>
backtrack5使用notepad++
查看>>
JSON-lib框架,转换JSON、XML
查看>>
UITableView常见问题
查看>>
优化Linux 的内核参数来提高服务器并发处理能力
查看>>
同步与异步、阻塞与非阻塞
查看>>
Python操作mysql数据库
查看>>
Tomcat中JVM内存溢出及合理配置
查看>>
输液导致白细胞过低,只能先停一下补输液了。
查看>>
Linux 用户和组权限图示
查看>>
VMware workstation -- 实验环境搭建系列(三) 使用Host-Only方式组建虚拟局域网
查看>>
IO中同步、异步与阻塞、非阻塞的区别
查看>>
[置顶] ARM处理器学习之--GPIO操作篇(gnu link script)
查看>>
我的友情链接
查看>>
Mysql按条件计数的几种方法
查看>>
Weinre《调试使用》调试Mobile Web
查看>>
表格控件 Spread for WinForms 7 新特性-中文本地化增强
查看>>
编程这件小事儿之Java篇:Java四个核心概念
查看>>