微信公众号开发之测试号接口接入指南
2017-12-29 22:30
731 查看
最近接触到微信公众号开发,在此记录一下。
由于微信公众号开发需要一个公众号来帮助我们进行测试,而注册公众号有太过麻烦,且功能过于简单,还好微信提供了供开发人员使用的测试号。
微信测试号登陆连接
用微信扫一扫即可登陆
登陆后页面为
URL就是你的服务器地址,这里为了开发方便,我选择外网映射工具,这样可以随时的测试我的公众号,Sunny-Ngrok,可自行百度搜索使用方法。Token是你自定义的一个字符串。
填写URL,Token后,微信服务器会通过get请求访问你的URL。
我们在本地服务器上写URL的处理信息,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下图所示。
微信开发文档
获取参数进行分析,将token、timestamp、nonce三个参数进行字典序排序然后将三个参数字符串拼接成一个字符串进行sha1加密 ,开发者获得加密后的字符串可与signature对比,相同就返回echostr随机字符串。
检查字符串的类
点击提交,测试成功!!
注意token值和代码中的token值一定要相同。
由于微信公众号开发需要一个公众号来帮助我们进行测试,而注册公众号有太过麻烦,且功能过于简单,还好微信提供了供开发人员使用的测试号。
微信测试号登陆连接
用微信扫一扫即可登陆
登陆后页面为
URL就是你的服务器地址,这里为了开发方便,我选择外网映射工具,这样可以随时的测试我的公众号,Sunny-Ngrok,可自行百度搜索使用方法。Token是你自定义的一个字符串。
填写URL,Token后,微信服务器会通过get请求访问你的URL。
我们在本地服务器上写URL的处理信息,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下图所示。
微信开发文档
获取参数进行分析,将token、timestamp、nonce三个参数进行字典序排序然后将三个参数字符串拼接成一个字符串进行sha1加密 ,开发者获得加密后的字符串可与signature对比,相同就返回echostr随机字符串。
package Server; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import Tools.CheckUtil; /** * Servlet implementation class Text */ @WebServlet("/Text") public class Text extends HttpServlet { private static fina 9f6b l long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Text() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String signature = request.getParameter("signature"); String timestamp = request.getParameter("timestamp"); String nonce = request.getParameter("nonce"); String echostr = request.getParameter("echostr"); PrintWriter out = response.getWriter(); if(CheckUtil.checkSignature(signature, timestamp, nonce)){ out.print(echostr); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
检查字符串的类
package Tools; import java.security.MessageDigest; import java.util.Arrays; public class CheckUtil { private static final String token = "hometao"; public static boolean checkSignature(String signature,String timestamp,String nonce){ String[] arr = new String[]{token,timestamp,nonce}; Arrays.sort(arr); //生成字符串 StringBuffer content = new StringBuffer(); for(int i=0;i<arr.length;i++) { content.append(arr[i]); } //sha1加密 String temp = getSha1(content.toString()); return temp.equals(signature); } public static String getSha1(String str){ if(str==null||str.length()==0){ return null; } char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f'}; try { MessageDigest mdTemp = MessageDigest.getInstance("SHA1"); mdTemp.update(str.getBytes("UTF-8")); byte[] md = mdTemp.digest(); int j = md.length; char buf[] = new char[j*2]; int k = 0; for (int i = 0; i < j; i++) { byte byte0 = md[i]; buf[k++] = hexDigits[byte0 >>> 4 & 0xf]; buf[k++] = hexDigits[byte0 & 0xf]; } return new String(buf); } catch (Exception e) { return null; } } }
点击提交,测试成功!!
注意token值和代码中的token值一定要相同。
相关文章推荐
- 微信公众号开发之测试号接口接入指南
- 微信公众号开发一:接入指南
- 微信公众号开发接入指南
- 微信“公众平台测试账号”接口接入指南
- Java开发微信公众号-接口测试帐号接口配置及Java源代码
- 适合新手学习的laravel接入微信接口,实现微信公众号二次开发
- 微信公众号开发教程01:接入指南
- 从零开发微信公众号系列 【二】开发者基本配置和接入指南
- JAVA微信开发-测试号接入指南
- C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台
- 微信公众平台接口开发-接入验证测试
- 微信公众号开发-接入指南
- C#微信公众号开发系列教程二(新手接入指南)
- 微信公众号开发使用测试号不能测试支付接口的解决方案
- 微信公众号开发(十六):微信的一些其他的常用接口测试代码
- nodejs微信公众号开发第一步(接入指南)--wechat模块
- 微信公众号开发接口指南(java实现)
- 微信公众号开发使用测试号不能测试支付接口的解决方案
- 微信公众平台接口开发-接入验证测试token
- 微信测试号开发之一 接入微信公众号