微信公共号开发之独号闯关记

235 阅读2分钟

场景

         微信公众号开发时,不可避免的微信 auth 认证及 openId 获取;这对用户来说也是处于安全考虑。不过作为开发来讲就要多一些工作要做,但对于从 coding 到 online 只有一个认证公众号的我们;确实还要开发与 QA 同学多一项技能,那就是 代理认证授权 来顺利完成微信 jssdk 的功能使用。对于一个曾经在国内领先的微信公众平台服务商之一供职的偶,不禁发出 what? 无奈此景乃首次遇到;迫于时间压力只可向前走,后续再做专号专用之打算。

样例

有过开发的的同学看到下面的图样,应该是比较熟悉的。😯

image.png

方案

        通过 代理认证授权 实现一个认证公众号,实现多套环境使用的目的。

        实现起来也并不是一帆风顺,因现微信要求绑定到公众平台后台的网页授权域名受限。针对跨环境且访问协议不一致时,这个时候便是需要解决的根本问题所在,索性今天便是与众共享走过有关此的弯路。

工具

以下所列举工具的具体使用配置,可自行网上搜索就不再此赘述。

  • Windows:Fiddler、Charles
    • Mac:Charles

    操作解读

    入坑示例

    代理接口发起的为 post 请求且存在跨越(接口支持跨越)

    • 线上域名 https://m.agency.com/route/demo
    • 代理环境 http://tst.agency.com/route/demo

    代理配置

    image.png

    接口响应

    image.png

    抛出异常

    image.png


    解决方案

    线上访问本是通过 https 访问 ,但代理到的环境是 http 所以会受限与 Webview/Chrome;通过修改访问协议后遍达到预期结果。

    image.png

    小结

    对于Charles 代理出现此情况,如果有了解其底层实现原理不难理解;希望此场景能够帮助到遇到相似问题的偶们,如果有更好的姿势也欢迎提出。同时也借此为优秀的技术社区“掘金”贡献一份自己的微薄之力。感谢。