微信公众号开发-三级域名-token验证-测试服-生产服

 

 

微信接口需要token验证,同时有些功能又需要本地调试,所以用nginx走反向代理,把微信测试的地址映射到自己的开发机上。

nginx:

微信公众号开发-三级域名-token验证-测试服-生产服_第1张图片

阿里云三级域名设置:

微信公众号开发-三级域名-token验证-测试服-生产服_第2张图片

 

 

springmvc.action:

注意:一定要在@RequestMapping中加UTF-8的参数,否则微信平台验证失败

produces="text/html;charset=UTF-8"
@Controller
@RequestMapping("/")
public class IndexAction extends BaseAction {

	@RequestMapping(value="/", produces="text/html;charset=UTF-8")
	@ResponseBody
    public String index(HttpServletRequest request, HttpServletResponse response) {
		String signature = request.getParameter("signature");
		String timestamp = request.getParameter("timestamp");
		String nonce = request.getParameter("nonce");
		String echostr = request.getParameter("echostr");
		
		// return echostr;
		
		if (StringUtils.isBlank(signature) || StringUtils.isBlank(timestamp)
				|| StringUtils.isBlank(nonce)) {
			return "参数为空,非微信平台请求";
		} else {
			// System.out.println("signature: " + signature + ", timestamp: " + timestamp + ", nonce: " + nonce + ", echostr: " + echostr);
		}
		
		try {
			if (WXPublicUtils.verifyUrl(signature, timestamp, nonce)) {
				System.out.println("token 验证成功");
			    return echostr;
			} else {
				return "token校验失败,非法请求";
			}
		} catch (com.highland.utils.wx.AesException e) {
			e.printStackTrace();
			return "token校验失败,非法请求";
		}
    }
}

 

你可能感兴趣的:(微信公众号)