5 Star 42 Fork 23

fusu/ding-micro-server

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

钉钉微应用 服务端示例程序.

接入流程/使用说明/教程 请参照: https://www.cnblogs.com/applerosa/p/11509512.html

适用于第三方企业H5微应用, 消息处理模式为HTTP回调

code style maven maven

编译/构建/打包

项目采用maven 构建/管理依赖/打包发布
清理编译结果重新编译: mvn clean compile
构建/打包: mvn package

由于我自身在pom.xml中的相关配置, 所以package的结果,lib依赖包是独立的,没有放入最终的jar包,部署时需要注意

项目说明

  1. 使用了钉钉java语言的SDK jar 包,位置在/bak/toabao-xxxxxxxx.jar, 请自行引入;
  2. 钉钉微应用/套件 的配置在项目主配置文件resources/application.yml里面;
  3. 项目使用的额外的一些工具类, apachecommons-codecBase64, 除springboot自身依赖之外无其他依赖;
  4. 项目导入之后, 编译完成, 启动 cn.lnexin.DingApplication.main() 即可启动项目;

功能说明

再强调一遍: 适用于第三方企业H5微应用, 消息处理模式为HTTP回调

因为是微应用服务端的示例程序,所以某些功能具体的业务实现是没有的,比如: 钉钉发送下单数据过来, 示例包含接收订单数据步骤, 处理逻辑各人自己补充;

相关概念说明

套件/微应用   suiteKey             : 创建微应用后,基础信息里面有
套件/微应用   suiteSecret          : 应用密钥, 创建微应用后,基础信息里面有
套件/微应用   suiteTicket          : 钉钉给应用推送的ticket,测试应用随意填写如:TestSuiteTicket,正式应用需要从推送回调获取suiteTicket
套件/微应用   suitetoken           : 钉钉推送消息过来,我们解密数据时需要, 创建微应用后,基础信息里面
套件/微应用   aesKey               : 消息加密解密用, 创建微应用后,基础信息里面
       
免登授权码    code                 : 前端在调用钉钉相关 jsapi "dd.runtime.permission.requestAuthCode()" 之后获得
企业授权凭证  accessToken          : 由后台根据suiteKey,suiteSecret,suitrTicket 向钉钉服务器请求获得
       
企业id        corpId              : 企业/组织的唯一Id
用户userid    userId              : 用户在当前企业内的唯一ID
用户unionid   unionId             : 用户在我们开发的整个微应用中, 的唯一ID

第三方应用凭证 suite_access_token : 根据我们的suitekey/secret/ticket 向钉钉请求获取的, 这个是我们的应用(套件)对购买了应用的企业授权用的
临时授权码     tmp_auth_code      : 钉钉发给我们的
永久授权码     permanentCode      : 根据 临时授权码 和 suite_access_token 获取的, 用于激活应用授权

下面大概说一下有哪些示例:

  1. 根据 corpId 获取 accessToken ;

  2. 通过 免登code / accessToken 获取 用户的userId

  3. 通过 accessToken / userId获取 用户详情(包括姓名)
    (一般的登录流程为:
    微应用进入前端页面获取企业ID,然后前端初始化获取免登code,
    然后服务端用根据这两个参数, 通过上面3个步骤, 查询出户信息
    补充自己的一些处理逻辑,将数据返回前端即可)

  4. 获取企业的授权详细信息,这里可以理解为通过 accessToken/corpID 获取企业详情;

  5. 剩余的接口请参照 钉钉官方服务端开发文档

回调功能相关(钉钉推送数据到我们服务器)

因为是基于HTTP回调的模式,所以需要下面的步骤

  1. 解密消息
  2. 加密我们返回的消息;
  3. 获取第三方应用凭证 suite_access_token , 这个是应用(套件)对企业授权用的, 和上面的accessToken不是一个东西;
  4. 根据 suite_access_token / 临时授权码 获取 永久授权码;
  5. 根据 suite_access_token / 永久授权码 / corpId 激活应用;
    (完成上面的步骤,就可以授权企业使用应用或者体验应用,意思就是你就可以在钉钉里面看到这个微应用了)

api接口

功能 uri地址 类型 参数 返回
测试:获取配置 /ding/config GET 测试服务是否启动成功
登录 /ding/login GET code,corpId 返回用户详情,里面包含token
获取accessToken /ding/token GET corpId 仅仅只是获取accessToken
钉钉回调接口 /ding/callback POST signature,timestamp,nonce,encryptBody 前3个参数位于url中,encrtpt位于post的body中

空文件

简介

用于钉钉H5微应用开发,服务端示例代码。 提供/login登录获取用户信息接口,提供回调消息相关功能。使用教程地址:https://www.cnblogs.com/applerosa/p/11509512.html 展开 收起
README
MIT
取消

发行版

暂无发行版

贡献者 (2)

全部

近期动态

5年多前推送了新的提交到 master 分支,3a58127...6f92fa4
接近6年前评论了仓库
接近6年前推送了新的提交到 master 分支,949253c...3a58127
接近6年前推送了新的提交到 master 分支,8276623...949253c
接近6年前推送了新的提交到 master 分支,2e5471c...8276623
加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/lne/ding-server.git
git@gitee.com:lne/ding-server.git
lne
ding-server
ding-micro-server
master

搜索帮助