钉钉注册回调接口失败
"errcode":71009,"errmsg":"返回文本非success, HTTP请求结果校验返回字段值失败
[HttpPost("dingtalk")] public JsonResult dingtalk([FromBody]DingDtos entitydto) { StringValues msgSignature = string.Empty; Request.Query.TryGetValue("signature", out msgSignature); StringValues timestamp = string.Empty; Request.Query.TryGetValue("timestamp", out timestamp); StringValues nonce = string.Empty; Request.Query.TryGetValue("nonce", out nonce); string encryptStr = entitydto.encrypt; string encrypt = string.Empty; string AesKey = "2e5mst3754bg5dv4639ahukj04dwmwzt4d6ps322jhr";//43位随机 string Token = "123456";//加解密需要用到的token,普通企业可以随机填写 string suiteKey = "dinga9XXXX";// 基本信息开发信息中 string signatureNew = string.Empty; //DingTalkCrypt dingTalkCrypt = new DingTalkCrypt(Token, AesKey, suiteKey); DingTalkEncryptor dingTalkCrypt = new DingTalkEncryptor(Token, AesKey, suiteKey); //解密 string EventType = dingTalkCrypt.getDecryptMsg(msgSignature, timestamp, nonce, encryptStr); Hashtable tb = (Hashtable)JsonConvert.DeserializeObject(EventType, typeof(Hashtable)); string eventType = tb["EventType"].ToString(); switch (eventType) { case "bpms_task_change"://审批任务开始,结束,转交 #region 审批任务开始,结束,转交 #endregion break; case "bpms_instance_change"://审批实例开始,结束 #region 审批实例开始,结束 string processCode = tb["processCode"].ToString(); #region 审批实例开始,结束 #endregion #endregion break; } //dingTalkCrypt = new DingTalkCrypt(Token, AesKey, suiteKey); #region 加密返回数据,必须要有,无需修改 //加密 //dingTalkCrypt.EncryptMsg("success", timestamp, nonce, ref encrypt, ref signatureNew); Dictionary<String, String> resultMap= dingTalkCrypt.getEncryptedMap("success",SysConvert.ToLong(timestamp)); //查看解密结果是否是success string evne = dingTalkCrypt.getDecryptMsg(resultMap["msg_signature"], resultMap["timeStamp"], resultMap["nonce"], resultMap["encrypt"]); //dingTalkCrypt.DecryptMsg(signatureNew, timestamp, nonce, encrypt, ref evne); //SysFile.WriteFrameworkLog("查看解密结果是否是success:" + evne); DingDingBack back = new DingDingBack(); back.msg_signature = resultMap["msg_signature"]; back.encrypt = resultMap["encrypt"]; back.timeStamp = resultMap["timeStamp"]; back.nonce = resultMap["nonce"]; //SysFile.WriteFrameworkLog("返回json:" + new JsonResult(back)); return new JsonResult(back); #endregion }
特别注意:
string suiteKey = "dinga9XXXX";// 基本信息开发信息中