项目进行了微信开发,并认证了一个微信服务号进行内部测试。然而,可能有许多不同的环境(开发开发、测试sit、预发布uat等。).由于微信限制一个服务号只能配置一个网页授权域名,无法为每个环境分配单独的服务号,既需要成本又浪费资源,因此需要解决以下问题:
1、可以自动区分环境。例如,部署一个开发环境。网址可能是http://dev.xxx.com/api/,但当测试环境时,它应该是http://sit.xxx.com/api/.你不能把它写死,否则开发和测试将不得不改变。非常麻烦
本文总结并分享一些想法:
主要是通过中间页面代理获取微信授权码,然后跳转到对应的环境URL进行使用;
比如在原来的开发环境中,微信中的授权域名是用dev.xxx.com配置的,所以现在配置了代理域名proxy.xxx.com。通过代理域名获取代码后,它跳回dev.xxx.com,如下图所示
代码片段getCode.html
!doctype html lang=' en ' head meta charset=' utf-8 ' title微信授权登录/title/head body/body脚本var code=getpara(' code ');if(!代码){ var redirect=GetPara(' URL ');var appid=GetPara(' appid ');var _ from=GetPara(' from ');var redirect _ URL=encodeURIComponent(' https://proxy . XXX.com/GetCode . html?url='重定向');var URL=' https://open . weixin . QQ.com/connect/oauth 2/authorize?appid=' appid ' redirect _ uri=' redirect _ URL ' response _ type=code scope=snsapi _ user infostate=STATE #微信_ redirect ';location.href=url} else { var redirect=GetPara(' URL ');var code=GetPara(' code ');if(redirect.split(?' ).长度1){ location.href=重定向“code=”代码;}else{ location.href=redirect '?代码=' code} }函数GetPara(name){ var URL=location . href;eval(' var reg=/(' name '=[A-Za-z0-9 _,[emailprotected]!#. : /]*)/I ')var match=URL . match(reg);if(match match . length 1){ var arr=match[0]。split('=');arr . shift();返回arr . join('=');} else { return“”;} }/script/html使用方法https://proxy.xxx.com/getCode.html? URL=http://dev . XXX.com/uinfoappid=wx6d 421 c 188956 xx 95
摘要
以上就是边肖介绍的一个微信号同时支持多个环境网页的解决方案。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!如果你觉得这篇文章对你有帮助,请转载,请注明出处,谢谢!