西西木科技-专业的shopify liquid开发机构-前端JS丨react后端丨API接口丨shopify plus丨外贸独立站
1.网页授权机制
如果用户在微信客户端访问第三方网页,公众号可以通过微信网页授权机制获取用户的基本信息来实现业务逻辑。
2.进入微信后台配置域名
在网页授权机制中,redirect_uri就是我们的项目地址。 该项目地址的域名需要在公众号平台配置。 否则会提示redirect_uri域名与后台配置不一致。
配置域名:登录微信官方平台-设置-公众号设置-功能设置-网页授权域名
3、域名不够怎么办?
在微信公众号管理后台,我们可以看到网页授权域名,只能配置2个。 对于普通企业和相对较小的企业来说liquid开发,这相对简单。 只需配置一个域名即可。
但我们公司比较混乱,经常出现三个产品线塞进一个公众号项目,而且每个产品线都有自己独立的二级域名。
例如A产品线的独立域名为
B产品线的项目域名为
产品线C的项目域名为
更糟糕的是,此时已经有一个域名被占用,而一位同事又配置了域名2(吐槽:他还配置了深层目录),所以只剩下域名1了:
4、解决方案
首先必须明确微信网页的授权域名和公众号项目代码的访问域名必须一致。
4.1 如果域名1没有重新配置会怎样?
如果不添加域名1的配置,大家共享当前域名2,那么以后公众号下所有产品线的项目代码都会被塞到域名2下。
首先微信公众平台公众号;关于微信公众号网页授权域名,整理配置域名数量不够的情况liquid开发,这是不合理的。 从域名来看,比如公网域名设置为/list/,但项目的业务之一是考试。 如果由于业务需要,测试项目需要链接到用户,那么域名中的新闻和列表将不会正式用于测试业务。
其次微信公众平台公众号,上网不方便。 如果有统一运维还好,但是如果每个项目独立负责上线就很麻烦了。 你的项目塞在别人的目录下,每次上线都要招募别人,也就是说你要上线很多次。 深夜上网怎么办? 而有些部门就喜欢耍花招。 。 。 。
4.2 如何添加和配置域名1
例如,配置更通用的域名。
然后在这个通用域名的机器上,配置nginx代理转发(proxy_pass),转发到专门的项目:
例如,项目A的实际域名是。 使用该方案后,微信公众号中的访问路径为/a
例如,项目B的实际域名是。 使用该方案后微信公众平台公众号,微信公众号中的访问路径为/b
这样做的原因如下:
① 多个业务线不需要塞到一个目录下。 每个人都可以独立管理和部署自己的业务线项目代码。然后我们负责微信配置文件的验证和nginx转发。
# yth.baidu.com机器的nginx配置文件
# 微信验证文件
location /MP_verify_666.txt {
add_header Content-Type "text/plain";
alias /data/servers/gateway/MP_verify_666.txt;
}
location /a/ {
proxy_pass https://a.baidu.com/;
}
location /b/ {
proxy_pass https://b.baidu.com/;
}
② 域名友好,各个项目业务线可以设置下面的目录名,以满足自己的业务需求。 例如,新闻服务可以设置为/news/,考试服务可以设置为/exam/
③可扩展性。 如果后续在当前公众号添加其他业务线项目,只需要在nginx配置文件中添加一个proxy_pass配置即可。
④ 就我们公司而言,负责转发的机器还配备了阿里云的SLB(负载均衡)。可以在一定程度上缓解流量过大带来的压力
⑤还有一种特殊情况:除了使用域名+服务器之外,当然也可以直接使用oss来处理当前的情况。
但这里需要注意的一点是oss不支持前端历史路由。 它将将此表单作为真实目录进行搜索。 比如/news/details对应的是前端页面,但是oss实际上会去寻找news目录和详情,导致访问失败。
当然,你也可以把项目改成hash路由,但是不方便,而且直接把项目改成hash会不会有其他潜在的问题呢? 再者,如果项目不在你手里,你想让别人改,别人也不一定愿意改。
基于这种情况以及后续的扩展性考虑,最终没有使用OSS的解决方案。
4.3 激励他人
如果您有更好的方案,欢迎提出。
西西木科技是shopify官方合作伙伴,通过了Shopify Partner Academy认证,具备多年shopify lic主题开发经验,熟悉Liquid和各项计算机语言。