应用开发注意事项
ISV可参考该部分内容,完成阐述的与WPS平台相关的对接逻辑开发部分
安装时产生的事件说明
企业管理员授权:
- 仅由企业管理员安装授权,更适合企业管控。
企业成员自主授权模式:
- 支持成员自行安装应用:详细的对接方法参见企业成员自主授权接入方式(新版)
应用安装时不同事件触发顺序
![]() | ![]() | ![]() |
|---|---|---|
| 租户管理员安装管理员授权模式应用 | 租户管理员安装成员自主授权应用 | 租户普通成员安装成员自主授权应用 |
应用市场购买订单事件处理
在WPS侧支付成功后,ISV会接收到应用市场购买订单事件,事件体如下:

事件中的数据为当前订单的数据,其中商品计价方式是由双方商务运营同学协商后确定,ISV根据商品计价方式的不同,产生组合的购买方式也不同,具体如下:
| 事件operation | 子订单类型order_type | 子订单续费类型renewal_order_type | 商品计价方式 按人数、时长计价 | 商品计价方式 按固定套数、时长计价 |
| paid付费 | purchase-新购 (未购买或权益过期后的付费行为) | N/A | 支持 | 支持 |
| renewal-续费 | addmember-增购 (购买时增购人数) | 支持 | 不支持 | |
renew-续期 (购买时延长到期时间) | 支持 | 支持 | ||
upgrade-升级 (低版本套餐升级到高版本套餐) | 支持 | 支持 | ||
| trial试用 | trial | N/A | 支持 | 支持 |
| refund退订 | 与实际退订的订单类型一致 | N/A | 支持 | 支持 |
业务说明
在当前365应用市场的应用套餐业务中,目前每次购买都是读取子订单中sub_orders的第一个子订单为有效数据,具体字段解释详见字段说明
会推送订单状态state为trial、paid、refund类型的订单
续费订单类型(order_type=renewal),购买过程允许同时包含多种组合购买类型,在购买事件的子订单的renewal_order_type数组字段可体现,如上述表格所示。
对接说明
ISV应当将需要将订单事件记录下来,用于记录和回溯问题
ISV如何更新企业应用权益信息。通过调用获取商品授权列表接口获取企业应用权益信息。在企业ISV应用市场业务中,获取数据列表中只会返回一个item数据(该商品授权信息表示的就是企业应用权益信息)。其中需要关注的是:
start_at 授权开始时间:为企业应用套餐生效的开始时间
expire_at 授权到期时间:为企业应用套餐生效的到期时间
total 授权总量:为企业应用套餐生效的套餐人数
如何测试支付?
1. 联系WPS侧对接人开启应用,开启后ISV先安装应用
2.安装后打开work.wps.cn,用安装了应用的企业进行登录,登录后进入应用市场->应用管理页面,找到你开发的应用,进入应用详情页,通过页面上的“购买应用”入口即可唤起支付弹窗

备注:支付时尽量创建 0.01 元的订单,财务层面可支持退款,非 0.01元订单不支持退款
用户账号初始化、通讯录组织结构初始化
涉及的相关业务概念
使用范围
业务概念:代表允许在应用市场中可以使用应用的用户范围(允许配置为用户、部门等)
配置入口:租户管理员可以在企业管理后台设置使用范围
用途:WPS会在用户使用、进入应用时进行默认校验和管控,三方开发者不需要过多关注使用范围。
![]() |
|---|
| 应用使用范围设置 |
权益范围
业务概念:代表已经占用了套餐人数席位的用户列表
数据变更逻辑:目前应用市场侧控制了席位抢占的逻辑,ISV不需要关心
当一个允许使用应用(在使用范围中)的用户,在第一次使用应用时,并且席位没有达到套餐上限时,用户会抢占套餐席位。
租户管理员可以在企业管理后台对权益范围进行移除、新增管理

通讯录权限范围
业务概念:租户管理员设置应用可访问的通讯录组织架构范围
作用域:管控ISV开发者调用租户应用的相关通讯录相关查询接口返回数据及权限
只有在通讯录权限范围内的数据才会接口响应数据中返回或者有权限调用
ISV通过调用通讯录接口获取不在通讯录权限范围内中的数据时,会返回Permission Denied
- 比如:通讯录权限范围中目前只设置了租户A的用户user_id_B。通过user_id_B调用通讯录接口查询指定用户信息是会返回Permision Denied的报错。
![]() |
|---|
| 通讯录访问权限范围设置 |
ISV如何处理用户账号创建

目前WPS应用市场已经针对用户是否允许使用和进入到应用做了强管控(包括是否在使用范围内,席位是否足够等条件的校验),三方只需要关注用户授权回调并调用获取用户信息接口并初始化用户账号。
三方在创建账号时如需用到其他信息,需要调用相应接口
- 如三方业务在创建用户账号时需要手机号信息,需要额外调用通讯录中的查询指定用户信息接口获取用户手机号(会受通讯录权限范围限制,如果不在通讯录权限范围中,接口会报无权限调用,此时建议三方做适当提示和引导)
ISV如何处理租户组织架构构建和更新
初始化
![]() |
|---|
| 建议的组织架构数据初始化处理逻辑 |
| 全量通讯录范围权限授权 | 部分通讯录范围权限授权 |
| 获取根部门 | |
更新
![]() |
|---|
| 建议的组织架构数据更新的处理逻辑 |
监听通讯录权限范围事件。处理和初始化操作一致。
监听对应的通讯录相关事件变更,删除或者更新对应的数据。如企业变更、部门变更、用户变更、用户状态变更
- 需要注意的是,在这个流程中,可能存在调用通讯录接口不成功的情况(比如:租户新增了用户user_A,但是user_A不在通讯录权限范围中,通过用户id调用获取指定用户信息接口会报错)
通讯录/FAQ
- 可能会出现进入应用的用户(通过用户登录授权回调创建的用户)不在通讯录权限范围时,如何处理?
建议三方将这类用户挂载在组织结构根节点或者按实际业务处理做对应提示
当调用通讯录相关接口时,返回报错Permission Denied,代表该数据不在通讯录权限范围中
后续通讯录权限范围数据可能会扩展对应的节点
判断用户是否在权益范围内
当ISV的业务需要拉取或者判断用户是否在权益范围中时
在企业ISV应用业务中,当前接口返回的数据列表中只会返回一个item数据,并且该商品授权信息表示的就是企业应用权益信息。
其中需要关注的是:
start_at 授权开始时间:意为企业应用套餐生效的开始时间
expire_at 授权到期时间:意为企业应用套餐生效的到期时间
total 授权总量:意为企业应用套餐生效的套餐人数

通过上部获取的授权key和过滤指定的用户查询租户应用的权益范围用户列表数据







