本地通过调用官方php demo实现加密,注册回调接口时,收到钉钉数据:
"POST /callback?signature=fd4056afc884d860a0d4c13f7aa73a01f5dbd68d×tamp=1537851086358&nonce=vcwTrpBN HTTP/1.1"
提取其中的timestamp、nonce,加密后向钉钉返回如下值:
{ "msg_signature":"e0a1916d0698459e3135acf661b91117107962e2", "encrypt":"LkiusoRxrGSTmAsNyMTwZtGl960E9nSAQhvZvbForl1yXP488uB2/ApoDx80bKq3WD7LrBbZ+e/qdsMCIeUHwg==", "timeStamp":"1537851086358", "nonce":"vcwTrpBN"}
但是总是显示{"errmsg":"返回文本非success","errcode":71009}。本地已经测试,解密后为success。请教如何解决!
问题已经解决,记录如下,供其它同志参考。
1、消息加解密时,我直接调用的钉钉php demo,有几个关键点
$crypt = new DingtalkCrypt($token, $aes_key, $suiteKey); //token是取的随机值,这个值要记住,我就是卡在这里
$res = $crypt->EncryptMsg($msg, $timeStamp, $nonce, $encryptMsg);
以上
token是取的随机值,这个值要记住;
aes_key是43位加密的密码;
suiteKey是企业的
corpid;
msg是要加密的值(比如success);
2、注册接口时,要传递以下内容:
data ={
"call_back_tag": ["bpms_instance_change"],
"token": "000000",
"aes_key": "1234567890zxcvbnmlkjhgfdsaqwertyuiop09876XX",
"url":"http://home.XXX.cn:5001/callback"
}
以上token要与第一步token一致!aes_key要与第一步一致!然后就可以注册成功,主要是加密接口的token\aes_key要与注册时的值一致。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。