5 Star 40 Fork 21

lnexin / 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中
MIT License Copyright (c) 2019 lnexin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

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

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/lne/ding-server.git
git@gitee.com:lne/ding-server.git
lne
ding-server
ding-micro-server
master

搜索帮助