企业微信服务商开发(一)

最近公司在做一个智能名片,用到了企业微信的第三方应用,成为一个给其它企业提供服务的服务商,以下是开发前的准备工作,文中所提到的官方文档一定要仔细阅读。

在刚接触企业微信开发时,相信大家都会遇到很多坑,一开始我也一脸懵,不知道如何下手,经过了几天的研究,终于理通了,其实也没有那么难,现在就将自己在开发当中遇到的问题以及自己的经验记录下来,希望对那些刚要接触企业微信开发的小伙伴能有一丝的帮助。

准备工作

企业微信服务商,可以给企业提供第三方应用。

第一步:第三方服务商注册应用

任何具备以下条件的开发者都可以在“第三方官网”注册成为第三方服务商。
1、拥有第三方服务商身份的企业微信。
2、具有互联网上部署及发布应用的能力。

注册成为第三方服务商之后,即可登录“第三方官网”创建第三方应用。具体的注册细节请参见“第三方服务商注册应用”。

第二步:企业管理员授权应用

在服务商官网或企业微信官网找到适用的第三方应用后,管理员可发起一键授权。系统将展示第三方应用授权页面,管理员根据授权页面的引导,确认授权内容,完成授权操作。

第三步:第三方服务商提供服务

完成授权后,第三方即可获取企业赋予的永久授权码。通过此授权码,第三方可以换取到企业的访问凭证,从而可以调用通讯录管理、消息推送、身份验证、移动端SDK、素材、OA数据接口、企业支付、电子发票等相关接口。

首先要成为企业微信第三方服务商,具体见官网的操作流程,需要提供企业信息并认证成功。现在新注册的第三方服务商已经取消了“套件”的方式;所以,后续第三方服务商都需要尽量将同一类型的云服务整合到一个应用里。

开始开发

作为第三方服务商的开发者,在开始开发之前,需要先了解各种接口凭证的差别,以更好的理解第三方的开放体系。这里一定要搞清楚以下种不同的token。

企业接口的token

除了第三方相关的接口外,前文所述的为企业开放的所有接口,都必须以企业的corpid和永久授权码来获取access_token,然后调用通讯录、应用、消息等接口服务于企业。接口详情参见“获取企业access_token”,

应用授权的token

企业在授权应用时,第三方需要以suite_id(第三方应用ID)、suite_secret(第三方应用密钥)(获取方法为:登录服务商管理后台->标准应用服务->应用管理栏,点进某个应用即可看到)换取suite_access_token,再以suite_access_token访问应用授权的接口。在最终访问授权企业的接口时,再将suite_access_token换为企业的access_token。接口详情参见“获取第三方应用凭证

服务商的token

以corpid、provider_secret(获取方法为:登录服务商管理后台->标准应用服务->通用开发参数,可以看到)换取provider_access_token,代表的是服务商的身份,而与应用无关。请求单点登录、注册定制化等接口需要用到该凭证。

搞清楚以上的有三种token的使用场景,接下了开发创建应用或者关联小程序作为第三方应用,这里要注意的是,小程序必须是发布上线的。

服务商注册应用

注册条件

填写相关企业信息。

配置开发信息

开发者完成注册之后,即可登录进入服务商管理后台。
在后台主页->标准应用服务->通用开发参数栏->点击编辑按钮,配置基本开发信息

参数内容 说明
ProviderSecret 服务商的密钥(不同于下文的应用secret),相关的接口调用需要使用。
系统事件接收URL 用于接收跟应用无关的系统消息(如注册完成)。(填写URL时需要正确响应企业微信验证URL的请求。请参考接收消息
Token 可任意填写,用于生成签名,校验回调请求的合法性。
EncodingAESKey 回调消息加解密参数,是AES密钥的Base64编码,用于解密回调消息内容对应的密文。

在后台主页->服务商信息->IP白名单->点击修改按钮,添加白名单IP列表

参数内容 说明
白名单IP列表 服务商调用企业微信API时的合法IP列表,只有白名单内的IP才能正常调用企业微信API,修改后立即生效。支持“222.209.201.*” 这样用通配符表示IP段;多个IP以英文分号;分隔

配置白名单是为了调用微信的API接口,如果没有配置,是调不通的

创建应用

注册并配置好开发信息后,即可创建应用。这里就不赘述了,官方文档很明确。

开发信息:

参数内容 说明
应用主页 当从企业微信工作台进入应用时会直接跳转到对应的URL;从微工作台(原企业号)中点击应用将始终跳转到对应的URL(注意:默认在微工作台中不生效,需要勾选才生效)。URL支持使用$CORPID$模板参数表示corpid,授权或发布时企业微信会自动将其替换为授权企业的真实corpid
可信域名 设置可信域名后支持应用的OAuth2授权、JSSDK调用等
安装完成回调域名 在第三方应用授权流程中,授权成功后会302跳转到该域名下的url(详见从服务商网站发起授权应用),返回临时授权码。 企业微信跳转URL时,会检查该URL是否在此处填下的域名之下,以杜绝伪造攻击
业务设置URL 该URL为服务商侧的管理后台链接,授权企业的管理员可从企业微信后台的应用详情页免登录直接跳转该链接
数据回调URL 用于接收托管企业微信应用的用户消息用户事件。 URL支持使用$CORPID$模板参数表示corpid,推送事件时企业微信会自动将其替换为授权企业的corpid。(关于如何回调,请参考接收消息。注意验证时$CORPID$模板参数会替换为当前服务商的corpid,校验时也应该使用corpid初始化解密库)
指令回调URL 系统将会把此应用的授权变更事件以及ticket参数等推送给此URL,ticket说明详见API接口说明。 (填写URL时需要正确响应企业微信验证URL的请求。请参考接收消息
Token 可任意填写,用于生成签名,校验回调请求的合法性。后续所有托管的企业产生的回调消息都使用该值来计算签名。
EncodingAESKey 回调消息加解密参数,是AES密钥的Base64编码,用于解密回调消息内容对应的密文。后续所有托管的企业产生的回调消息都使用该值来解密。

创建完成之后,在“本地应用”栏可以看到该应用,点击进入此应用,可以看到应用的SuiteIdSuiteSecret等信息,这些信息可用于调用第三方应用接口。

这里要理解清楚几个配置的URL,都是在什么情况下触发该URL。业务设置URL、数据回调URL、指令回调URL后续再讲。

好了,完成以上的配置和仔细阅读文档,现在可以搭建环境正式开发了

获取示例源码

请关注微信公众号:「特想学英语」并回复:企业微信

原文作者: dgb8901,yinxing

原文链接: https://www.itwork.club/2019/03/26/corp-develop-1/

版权声明: 转载请注明出处

为您推荐

体验小程序「简易记账」

关注公众号「特想学英语」

企业微信服务商开发(二)