• 每周一坑微信测试号登录失败redirect10003


    每周一坑-微信测试号登录失败redirect10003
      今天把每周一坑的博客统一搬回到“每周一坑”分类上,幸好不多,我觉得后续只会越来越多,提早分好类,别到时太多搞崩自己。
      话说,从昨天开始我收到个任务,周四有人会检查高新用到的系统,当时经理给我发来一个知识产权列表,记录了我们公司自己开发的系统/项目,需要开起来(在公司内虚拟机部署),里面涉及到的年份从2018年到今年。从2019年我入职到现在,只要我部署过的项目,依稀比较记得,备份也有,不过,里面程序涉及的逻辑不是单纯靠备份就能完全恢复。有些坑比较好搞,例如登录的账号不记得密码,可以通过修改数据库表的密码字段,一般用的是md5加密,也有md5加密再加密,我们修改测试账号,对123456进行md5加密修改表密码字段即可。
      而今天讲到的坑是一个叫:蓝牙摇一摇的活动。这个项目是由tomcat跑的,当时我把以前备份好的tomcat安装目录、代码目录(也就是tomcat 指向的项目目录)及数据库重新运行起来。
    我给经理演示的地址是:192.168.2.5:{项目端口}/{项目名}/login.html
      

         这个地址输入账号密码:admin/123456 后会跳转到微信授权地址(不知道是不是这样叫 = =,可能说的不太专业),我经理反应过来说,正确访问地址应该是:192.168.2.5:{项目端口}/{项目名}/redirect.html

      这是坑一,实际不是login.html 而是 redirect.html

      然后微信地址就会拼一个appid 和 redirect_uri 的请求,顺带说一下,这个项目要用微信打开才行。

     

    第二坑:微信授权要用公网地址

      不同之前恢复的项目,直接在内网服务器把项目(一般是tomcat)跑起来,以“公司内IP+端口/{项目名}” 就能访问。

      因为要跟微信地址(open.weixin.qq.com)进行交互,纯 “公司内网+端口” 这种方式是不行的,涉及到一个授权的配置。我经理于是叫我用ngrok代理该服务的端口到公网域名上(其实一开始我是建议直接在线上服务器、用某个测试域名进行恢复,因为觉得ngrok反向代理贼慢,server端的带宽只有5M,开发测试经常吐槽,不过我经理图恢复)。

      如下图:

      这里我是代理8182端口(刚好这个摇一摇活动tomcat端口就是8182)

     

     访问地址就从

    192.168.2.5:{项目端口}/{项目名}/redirect.html

    变成:

    https://sxxxxme.ngrok.xxx.cn/{项目名}/redirect.html

       代码目录的redirect.html 也要修改

    这里有个问题(对我来说是个未解之谜),自从在ngrok 服务端弄了个泛域名https证书后(需要nginx配置,nginx用80端口,转发到ngrok 60端口,ngrok服务启动http监听60,https监听63),开启ngrok客户端会不定期,自带60或63端口(不是每次都这样),实际上去掉60、63端口才对。

     ngrok启动命令:

    cd /ngrok
    ./bin/ngrokd -tlsKey="assets/server/tls/snakeoil.key" -tlsCrt="assets/server/tls/snakeoil.crt" -domain="ngrok.xxx.cn"  -httpAddr=":60" -httpsAddr=":63" -tunnelAddr=":4443" >> /var/log/ngrok.log &

     ############### 上面是小小插曲,过掉。

    1、申请和服务器文件修改wechat.appID和wechat.appSecret

     微信测试号的ID貌似是有失效时间的,为了怕年代久远不能用(2019年),写到代码文件的appID需要在测试号公众平台重新申请,并修改配置(这个项目是:classes/application.properties):wechat.appId 和 wechat.appSecret


      我微信还要关注它,下面“加一”就是本人啦,哈哈哈哈哈~~~

     

     3、网站授权回调页面域名,也是改到ngork反向代理内网服务的公网地址

     

    网页授权:

     第三坑:

      欢喜地打开这个地址,一直报错。我经理查了很多资料,也试过换别的微信号去做测试号申请,也以为会不会是我重启tomcat服务没有生效(反复叫我试了2~3次)

     

       最后他留意到一个细节,这个就是问题突破口

     

       带了个端口60,然后他尝试在浏览器的这个url上去掉端口60的字样,也是相同报错:redirect_uri 域名与后台配置不一致。

       我给他说这个60端口是ngrok客户端开启,时不时自带的,他当时已经很绝望,不太相信是这个ngrok代理内网地址问题。此时,老板也过来跟他讨论别的事。我想着既然都没啥思路了,试下无妨,就趁他们谈话的空档,快速从线上恢复这个项目,用一个线上的公网地址去转发代理这个摇一摇活动,然后在微信测试号修改配置,完美解决。

    终于成功了~~~ ^___^

      只能感叹,两个水瓶座(我跟他都是水瓶座滴,真缘分也~)能抵一个诸葛亮,他留意到这个细节,我知道这个细节的来源,哈哈哈哈哈~~~~

       这个带https证书的ngrok还是蛮坑的(以前不用http的ngork还是挺靠谱的),平时自己玩玩就好,真正测试还是少用为妙

  • 相关阅读:
    JS笔记之第七天
    JS笔记之第六天
    JS笔记之第五天
    JS笔记之第四天
    JS笔记之第三天
    JS笔记之第二天
    JS笔记之第一天
    PHP文件上传
    bit、Byte、bps、Bps、pps、Gbps的单位的说明及换算
    Redis初级安装及使用
  • 原文地址:https://www.cnblogs.com/windysai/p/16618074.html
Copyright © 2020-2023  润新知