在企业微信内部应用开发中,需要用到调起PC端默认浏览器的js-api接口,需要先进行wx.config验证签名,签名验证时总是报错40093,根据官网文档排查问题,经确认jsapi_ticket准确无误,在确认【当前页面的url】这个参数时产生疑问,内部应用是采用应用管理后台配置的欢迎页,访问该应用企业微信会访问设置好的欢迎页,在欢迎页点击按钮,会调用应用后端验签接口,那我理解当前页面的url应该就是打开的这个欢迎页的url,但是怎么尝试都无法完成验签,都是报错40093,还望有大神能提供帮助。
WxAccountDTO wxAccountDTO = wxAccountService.getJsApiTicket();
//随机字符串
String nonceStr = "ninebot";
//时间戳
long timestamp = System.currentTimeMillis();
//当前页面的url
String url = request.getParameter("url");
logger.debug("url:"+url);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("jsapi_ticket=");
stringBuilder.append(wxAccountDTO.getJsapiTicket());
stringBuilder.append("&noncestr=");
stringBuilder.append(nonceStr);
stringBuilder.append("×tamp=");
stringBuilder.append(timestamp);
stringBuilder.append("&url=");
stringBuilder.append(url);
//生成签名
String string1 = stringBuilder.toString();
String signature = DigestUtils.sha1Hex(string1);
JSONObject jsonObject = new JSONObject();
//企业id
jsonObject.put("appId", wxAccountDTO.getAccountid());
jsonObject.put("timestamp", timestamp);
jsonObject.put("nonceStr", nonceStr);
jsonObject.put("signature", signature);
Result ok = new Result().ok(jsonObject);
logger.debug(JSONObject.toJSONString(ok));
你好,jsapi签名验证错误可以先根据这些点排查下
https://work.weixin.qq.com/api/doc/90000/90136/90509,还没有解决的话给下corpid 应用agentid 校验config时间点看看