简单使用微信公众号测试模式

       我们在做微信公众号的时候,简单的情况就设置下自动回复,添加下自定义菜单,菜单按钮设置到指定的模版页面。那有种情况:我们需要在公众号获取到用户信息,并且能绑定到自己的平台账号上(当然必须是有自家的服务平台,要不没这需求点),估计不能用跳转到一个静态页面的方式了。
 
     首先我们看下菜单的设置

       1. 扫码进入 https://mp.weixin.qq.com/
             
 
       2.  自定义菜单, 可以在网页中设置地址。
   
             

 

           那么需要在  "基本配置" 的 "IP 白名单" 以及 服务器配置,

              

 

                    并且配置 "公众号设置" 中的 功能设置 中的域名
 
                    
 
    然后进入主题:怎么绑定用户信息,然后拓展不影响线上服务器(生产环境) 情况下,继续迭代开发功能 ? 

        1.  进入测试
     
                

 

        然后看到界面如下
                     
 
 
        其实就是一个测试环境的公众号,开发人员可以扫码进入,就相当于关注了一个新的隔离的公众号,并且可以单独的设置公众号对应的安全域名(重点:能购买多个公众号的企业,直接来个测试用的,就不需要这样。。)
并且有消息模版功能:
  
       

 

       而且下方有很多的能用的功能(重点是红色,安全回调域名): 
          

 

现在,我们来解决问题。
 
问题  1.  将关注了公众号的用户,点击按钮,跳转指定页面,并且需要验证是在自己平台中对应了帐号
     我的做法 :
     按钮:http://安全域名/test
     这个接口中,跳转下面的路由(后台代码直接可以重定向请求)
     路由A : https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http%3A%2F%2F${self.wechat.api.host}%2Fwechat%2Faccess&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
     其中redirect_uri 就是腾讯服务器回调你服务器的地址, ${self.wechat.api.host} 就是你的服务器 ,%2Fwechat%2Faccess 就是路由, 进行过了 url encode。
    
     那么在你的 ${self.wechat.api.host}/wechat/access  接口中(我们就叫 路由B),就能获取到这个用户的信息:
      

 

      这个 code 和 state 就可以 使用 

    https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
    来获取用户的 openId, 以及 unionId 了, 那么就可以把这个对应到自己平台的帐号上进行绑定。(eg:比如发现用户没有绑定,就跳转到页面让用户登录帐号绑定; 如果unionId 有对应的平台帐号,那么直接进入主界面)
     这样,就实现了用户绑定,也可以针对需要涉及权限的web界面,进行权限验证过。
    总结下就是: 自己接口---跳转 A 路由(设置回调自己路由B)--- 跳转自己的web界面(在界面的url上附带参数进行验证)
 
 
问题 2.  测试公众号怎么添加菜单
     上面仔细看,发现测试的里面有自定义菜单权限,那么来 post 操作一波。 添加删除如下:
   
https://api.weixin.qq.com/cgi-bin/menu/create?access_token=42_4S6RAhQ32dm8WhTNWVOw
 {
     "button":[
     {
          "type":"view",
          "name":"今日歌曲",
          "key":"V1001_TODAY_MUSIC",
          "url":"http://安全域名/wechat/index"
 
      }
     ]
 }
 
https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=42_4S6RAhQ32dm8WhTNWVOwY8iZXrlOoV_HQHNA0

 

问题 3: 安全域名
   因为微信是需要 微信服务器 回调你服务器验证的,那么会帮定一个域名。
   
    

          

 

        有可能,确认以后,不成功。。。。。
          那么你域名对应的服务器上,需要部署一个接口, /wechat  路由
  
              

 

             接口里面直接 return echostr; 这就是安全验证, 当然,可以写的很复杂,进行安全验证!!!

 
 
问题 4 ,微信开发、或者需要回调验证的接口中,怎么可以在本地进行
   方式:  1. 买固定IP
             2. 可以映射一个外网到本地路由的(蒲公英 ?)
             3. ssh 内网穿透
             4. 。。。。。。

    这样,针对 问题1 的接口,就可以直接本地断点调试了,很方便的看 debug 。。。
        

 

  可以关注来获取对应的源码
    

 

 

 
posted @ 2021-03-05 15:31  要吃西蓝花  阅读(501)  评论(0编辑  收藏  举报