1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 微信公众平台测试号接口配置的一个坑——ngrok的

微信公众平台测试号接口配置的一个坑——ngrok的

时间:2023-08-12 12:20:54

相关推荐

微信公众平台测试号接口配置的一个坑——ngrok的

先说坑,我觉得真坑

要想做公众号开发,但是个人账号是没有公众平台的全部接口权限的,所以需要申请测试账号。URL填写需要一个域名,所以选择用内网穿透,我这里使用的就是ngrok,直接去官网下就可以了。我这里主要遇到的问题就是,配置ngrok的时候,设置了校验的密码。

http验证用户名: http验证密码:千万千万不要配,你配了微信服务器发你本地请求就发送不到,我今天被这个问题困扰了一下午,最后我把自己的地址发给我朋友去帮我测试的时候,才意识到的!

搭建工程

一、创建个springboot工程

写个控制器

import com.example.wx.utils.SHA1;import mons.logging.Log;import mons.logging.LogFactory;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;import java.security.NoSuchAlgorithmException;import java.util.Arrays;@RestController@RequestMapping("/wx")public class WxController{private static final Log log= LogFactory.getLog(WxController.class);public static final String TOKEN = "zhbcm";@GetMapping("/init")public void init(HttpServletRequest req, HttpServletResponse resp) throws NoSuchAlgorithmException, IOException{String signature = req.getParameter("signature");String timestamp = req.getParameter("timestamp");String nonce = req.getParameter("nonce");String echostr = req.getParameter("echostr");String[] arr = {WxController.TOKEN, timestamp, nonce};Arrays.sort(arr);//排序StringBuilder builder = new StringBuilder();for (String s : arr){builder.append(s);//合并}String sha1 = SHA1.sha1(builder.toString());//加密if (sha1.equals(signature)){PrintWriter pw = resp.getWriter();pw.println(echostr);pw.flush();pw.close();log.info("接入成功!");} else{log.error("接入失败!");}}}

加密包

import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class SHA1{/*** sha1加密** @param data* @return* @throws NoSuchAlgorithmException*/public static String sha1(String str) throws NoSuchAlgorithmException{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;}}}

接口测试

url里输入内网穿透的域名加上你的路径

输入你自定义的token

点击确定,然后看控制台打印!

做个宣传

技术交流群,免费提供jerbrant系列 idea webstorm等工具自动化开启包

技术交流分享②群:27271

技术交流分享③群:1093476453

bilibili学习教程地址:/439411741/video

简书地址:/p/133af2e4fe3f

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。