zoukankan      html  css  js  c++  java
  • 微信测试帐号如何设置URL和Token,以及相关验证的原理

    首先说明,本帮助文档是利用javaweb的Servlet来进行“接口配置信息配置信息”认证的。

    在学习微信公众号开发的时候,读到填写服务器配置的帮助部分,总是不能理解为啥按照他的步骤做总是设置失败(吐槽:这个帮助写的太简略,原理讲了一般,对不了解PHP的人简直就是歧视)。

    设置失败的一个重要原因:url的请求相应没有返回echostr这个参数。

    如果读到这里你还不能理解,就请看以下的截图和源代码:

    1、首先我搭建了一个将局域网内我的电脑发布到intetnet上的环境,利用ngrok,如果想了解如何搭建,请查看我的另一篇博客:ngrok使用命令帮助

     1 @WebServlet("/portal")
     2 public class ServerPortal extends HttpServlet {
     3     private static final long serialVersionUID = 1L;
     4     private static final String token = "janken";
     5 
     6     /**
     7      * @see HttpServlet#HttpServlet()
     8      */
     9     public ServerPortal() {
    10         super();
    11     }
    12 
    13     /**
    14      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    15      */
    16     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    17         String signature = request.getParameter("signature");
    18         String timestamp = request.getParameter("timestamp");
    19         String nonce = request.getParameter("nonce");
    20         String echostr = request.getParameter("echostr");
    21         System.out.println("signature:" + signature);
    22         System.out.println("timestamp:" + timestamp);
    23         System.out.println("nonce:" + nonce);
    24         System.out.println("echostr:" + echostr);
    25         PrintWriter pw = response.getWriter();
    26         pw.append(echostr);
    27         pw.flush();
    28     }
    29 
    30     /**
    31      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    32      */
    33     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    34         doGet(request, response);
    35     }
    36 
    37 }

    4、根据ngrok提供的url和我们创建的servlet填写微信的url和token

    5、点击提交,这是微信会主动访问我们写的servlet,获得我们返回的参数中的echostr的内容即可认证通过。

    认证过程原理分析:

  • 相关阅读:
    Json对象和Json字符串
    主界面的构造函数报错
    WPF DataGrid绑定的数据源更新后界面信息不更新
    WPF 数据绑定 ( 经验 )
    WPF 简单快速地去掉Button控件的边框
    字节数组与字符串形式的数字(序列号)之间的相互转换
    将十进制数字转换为字节数组
    WPF 调用线程无法访问此对象,因为另一个线程拥有该对象。
    cmd中一些命令
    Notepad++运行快捷键的设置
  • 原文地址:https://www.cnblogs.com/janken/p/5593737.html
Copyright © 2011-2022 走看看