openapi接口调用提示用户无权

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

openapi接口调用提示用户无权

# 问题描述 openapi接口调用提示“用户无权限”,具体报错如下: ![image.webp](/download/0100b724a482b91c4c82b74ea6f8c3435712.webp) # 问题背景 开发者在openapi下自定义了一个接口,目的是将自研系统的对公报销单推送到星瀚,具体配置见如下: ![image.webp](/download/0100ecd1c9bd591a4e1fab4be931664b4e8e.webp) # 原因分析 因为在调用对公报销单保存操作的时候,平台底层验权验的是费用核算(appId=em)下的对公报销单的权限,但是实际上开发人员只给用户分配了人人费用(appId=exp)的对公报销单权限。因为两者appId不相等,所以会提示无权。具体验权时的参数如下: ![image.webp](/download/01008bcbb246c222453aa0e48c35c265f488.webp) # 解决方法 根据上面的分析得知,是调用对公报销单保存操作时的应用ID不对,那么我们只要保证传入正确的appId即可。那如何传入呢?见截图: ![image.webp](/download/0100d7abdf73a87b474eb36549a72e83d9b8.webp) # 方案分析 1. 在操作API中,当操作类型为保存操作的时候,我们可以选择参数控制,如图: ![image.webp](/download/0100f278c33cb7f24ee1a3307685df93614a.webp) 但是该配置低版本只能选择几个预置的选项,无法灵活配置。基于此,我们可以在请求接口当中模仿保存操作的请求传参,传入我们自定义的控制参数即可。 2. 为什么接口中传入currbizappid这个参数就可以验权通过了呢?因为操作api底层调用的就是实体的操作,代码类为:kd.bos.servicehelper.operation.OperationServiceHelper,具体接口见官方文档说明: ![image.webp](/download/0100259a2e1aa14d43038f34444cfa515121.webp) 该方法中最后一个参数OperateOption,我们可以传入很多的选项,具体的选项值可以参考:OperateOptionConst类,OperateOptionConst中就包含currbizappid这个参数,参数说明如下: ![image.webp](/download/01002ed76bbd1b8848c89333ae1b060c3fa7.webp) # 参考文档 [实体操作服务帮助类](https://vip.kingdee.com/knowledge/specialDetail/218022218066869248?category=255694431574577408&id=255644921388790272&productLineId=29&lang=zh-CN) [OperateOptionConst参数说明](https://dev.kingdee.com/sdk/Cosmic%20V5.0.002/index.html?nav=class&module=kd.bos.kddm&package=kd.bos.entity.operate&name=OperateOptionConst)

openapi接口调用提示用户无权

# 问题描述openapi接口调用提示“用户无权限”,具体报错如下:![image.webp](/download/0100b724a482b91c4c82b74ea6f8c3435712.webp)# ...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息