微信测试号,微信公众号开发中token验证的解决办法,即接口配置信息中的url和token怎么设置的方法

首先我们来看两张图,第一张是微信公众号中设置的图

第二张是测试号中的图片,之所以打马赛克是怕不良之心的人,如果有疑问可以在文章后留言,因为本人在这个问题上捣鼓了好几天,所以比较有心得,而微信公众号的开发文档或者百度的资料都不多,所以很容易走弯路

 

现在讲讲接口配置信息里面的url和token到底填啥

微信需要一个请求一个URL来响应token验证,也就是你点击确定的时候是向你指定的URL发送一个请求,在请求里面验证你的token是否正确。也就是我们需要一个外网接口让微信访问,这个接口不需要传入任何参数;注意必须是外网服务器接口,微信才能调用.

所以需要写一个接口放在服务器上


import java.io.PrintWriter;

import java.util.Enumeration;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 
@RequestMapping("/wechat")
@Controller
public class WechatController {
	private static Logger logger = Logger.getLogger(WechatController.class);
 
	private static String WECHAT_TOKEN = "wx_oms";
 
	@RequestMapping(value = "/wx.do")
	public void get(HttpServletRequest request, HttpServletResponse response) throws Exception {
 
		logger.error("WechatController   ----   WechatController");
 
		System.out.println("========WechatController========= ");
		logger.info("请求进来了...");
 
		Enumeration pNames = request.getParameterNames();
		while (pNames.hasMoreElements()) {
			String name = (String) pNames.nextElement();
			String value = request.getParameter(name);
			// out.print(name + "=" + value);
 
			String log = "name =" + name + "     value =" + value;
			logger.error(log);
		}
 
		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 (SignUtil.checkSignature(signature, timestamp, nonce)) {
			out.print(echostr);
//		}s
		out.close();
//		out = null;
 
	}
 
}

现在我来讲讲验证原理:微信使用我们提供的token,通过算法生成签名,然后将这几个参数(signature ,timestamp ,nonceechostr )传给我们,我们服务端通过我们提供的token按照微信的算法得出一个值,如果是同一个值说明token有效

 

现在你需要通过之前说的那个外网可以访问的url访问到我们这个类,也就是用url+' /wechat/wx.do '访问到我们的方法,这样微信就可以拿到我们的token了,然后就把这个url+' /wechat/wx.do '填写在url的地方,你自己在代码中设置的token填写在token的地方就可以完成验证了

根据引用\[1\]和引用\[2\]的描述,您在微信公众号开发遇到了服务器配置token验证失败的问题。根据引用\[3\]的代码,您使用了一个@GetMapping注解的方法来处理微信服务器发起的验证请求。在这个方法,您通过调用iService.checkSignature方法验证signature、timestamp、nonce和echostr参数的正确性。如果验证通过,就返回echostr的值。 根据您的描述,您的服务器接收到了数据并且验证通过,也成功地返回了echostr的值。然而,您仍然遇到了"token校验失败"的问题。 可能的原因是您在验证token时出现了一些问题。请确保您在验证token时使用了正确的token值,并且在验证过程没有出现任何错误。您可以检查一下您的token值是否正确,并且确认您的验证逻辑是否正确。 另外,您还可以检查一下您的服务器配置是否正确。请确保您在微信公众平台上正确填写了服务器配置的相关信息,并且将token值与您的代码token值保持一致。 如果您仍然无法解决问题,建议您查看微信公众平台的文档或者寻求相关的开发支持,以获取更详细的帮助和指导。 #### 引用[.reference_title] - *1* *3* [微信公众号服务器配置token验证失败原因](https://blog.csdn.net/qq_40985294/article/details/105257416)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [微信公众平台服务器配置token验证失败](https://blog.csdn.net/gaozhilu88520/article/details/88552415)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值