最近在对接钉钉企业内部应用时可谓是困难重重,对于启蒙博客这种非技术高手来说,一个问题接着一个问题。刚开始在sdk方面就遇到了麻烦,一直对接不上。


如果需要看钉钉sdk引入到tp里面的方法的可以查看下面链接

https://www.72bk.com/a/72.html

现在呢启蒙博客就把钉钉事件回调的方法详细记录下面。钉钉回调首先需要在钉钉项目里事件订阅里添加输入测试信息



之后我们请求网址里输入一个网址点保存获取钉钉的返回信息,会像上图一样红色区域的字符


ecnrypt是post传输的 其他的全是get传输


注意注意!!!!!

启蒙博客建议大家直接把字符串放到代码里去测试,不要直接请求测试,启蒙博客忽略了get传参数的时候会把  +  号换成空格,在这里绕了好多弯路


钉钉官方sdk地址 :https://github.com/open-dingtalk/dingtalk-callback-Crypto/blob/main/DingCallbackCrypto.php
钉钉审批回调文档地址:https://developers.dingtalk.com/document/app/configure-event-subcription
引入sdk教程地址:https://www.72bk.com/a/72.html针对sdk的引入,如果只是加密解密我们自己复制的写个函数放进去就可以


900001    加密明文文本非法    加密明文不能为空
900002 加密时间戳参数非法 加密时间戳不能为空
900003 加密随机字符串参数非法 加密随机字符串不能为空
900004 不合法的aeskey 检查aeskey是否符合规格,长度固定为43个字符,从a-z, A-Z, 0-9共62个字符中选取,是AESKey的Base64编码。解码后即为32字节长的AESKey。
900005 签名不匹配 检查签名计算的参数是否正确。请参考文档获取签名参数
900006 计算签名错误 检查签名计算的参数是否正确。请参考文档获取签名参数
900007 计算加密文字错误 检查是否安装JRE补丁或者对应的JRE版本是否正常。 请参考文档ISV应用开发准备工作
900008 计算解密文字错误 检查是否安装JRE补丁或者对应的JRE版本是否正常。 请参考文档ISV应用开发准备工作
900009 计算解密文字长度不匹配 检查aeskey是否符合规格。长度固定为43个字符,从a-z, A-Z, 0-9共62个字符中选取,是AESKey的Base64编码。
900010 计算解密文字corpid不匹配 检查corpid是否正确或者是否为当前企业的corpid。

在对接钉钉sdk的时候我们会用到三个参数

aes_ke和token是我们在事件订阅里的值,也就是启蒙博客在第一图片里的那两个值

而suite_key用的则是钉钉的AppKey在这里启蒙博客也走了不少弯路刚开始一直以为应该用基本信息里的CorpId这个错误会报900010可900010的提示是是否为当前企业的corpid所以这里也是需要注意的。

注意:suite_key是AppKey不是CorpId

$aes_key="KJ83ARzFoRnaHGEZRFXsn8KuCTmgkpr8J6NOVUJp5ut";
$token="GA74MzfCDYDBkSntukiT7aoaUVqRTwHUChAjUc7lytRBY5me0S";
$suite_key = "ding6c1a9352369eeafd35c2f4657eb6378f";
我们在网络中搜索这个资料的时候大部分都是很老的资料,而启蒙博客今天介绍的这个方法则是针对php7.1及其以上的版本。其实很早之前做过对称加密,但自从回到县城后,有差不多一年没有动代码,好多东西全都忘记了,更特别是这次对接钉钉的对称加密的时候忘记了php低版本中用的是mcrpyt而7.1以上都改为了openssl_encrypt代替

提醒:在绑定事件订阅的时候返回的是“success”这个加密的字符串。不是钉钉本身传过来的值

点赞(1) 打赏

Comment list 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部