微信接口需要token验证,同时有些功能又需要本地调试,所以用nginx走反向代理,把微信测试的地址映射到自己的开发机上。
nginx:
阿里云三级域名设置:
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校验失败,非法请求";
}
}
}