第三方集成用友待办

一、对接流程

  • 1、三方系统注册监听待办事件订阅

  • 2、YonBIP/YonSuite发送待办事件,三方系统接收到待办事件后根据事件编码确定走不同的逻辑(新增/更新待办)。

  • 3、事件订阅返回的新增/更新待办中的businessKey是成对出现的,也就是说根据businessKey可以判断将哪条待办数据更新为已办。

  • 4、三方在接收道待办信息后建议将businessKey和待办动作信息存储入库,原因事件订阅方式可能会存在消费失败的情况,如果配置了重试可能会造成接收到的更新待办早于新增待办。 从而三方可能会有一条无法删除的待办记录。所以在处理逻辑的时候需要判断数据库中是否存在对应的businessKey+动作,区分多种情况。

     1)、新增事件逻辑:首先判断businessKey是否在系统中存在,如果存在,直接结束执行;如果不存在, 则正常走逻辑
     2)、更新事件逻辑:首先判断businessKey是否在系统中存在,如果不存在说明消息顺序反了。需要存储入库。标记为更新动作;如果存在相同更新动作的businessKey,则不需要做后续执行操作;如果存在且不是更新动作,说明是新增动作。那就需要正常处理更新逻辑;
  • 5、确定好逻辑后,需确定发送给哪个三方用户,建议三方系统和YonBIP/YonSuite的用户编码/手机号/邮箱一致。待办信息会返回yhtUserId。可以根据 yhtUserId调用开放平台接口(详见五章节)获取用户编码/手机号/邮箱。三方系统根据用户编码/手机号/邮箱获取三方的唯一标识。然后就可以发送给指定三方用户。

  • 6、三方用户在三方系统中点击待办开始走单点登录相关逻辑(详见六章节)

1

二、指定租户开通接收待办

提交工单给指定租户开通接收待办事件; 工单说明如下:

需要开通接收待办事件
租户id: ******
租户名称:******
标注是哪个数据中心

三、订阅待办事件

请点击链接查看:

事件订阅

  • 添加以下两个事件,

1

四、待办数据格式

businessKey是成对出现的,一个新增待办对应一个更新待办

4.1、创建待办接收数据格式


{
    "msgTsLong": 1635583234094,
    "resendable": true,
    "omitNotify": false,
    "todoType": "approve",
    "srcMsgId": "20211030202110307d0f6df7-d4d6-4f0e-ad11-76f26aa8819d:ubpm20200520",
    "typeName": "待办消息",
    "approveSource": "PU",
    "richText": "来自倪帅臣于10-30 15:48提交的采购订单CGDD0000211030000002,请处理。 ",
    "title": "待办提醒",
    "content": "来自倪帅臣于10-30 15:48提交的采购订单CGDD0000211030000002,请处理。 ",
    "mUrl": "https://c2.yonyoucloud.com/meta/voucher/st_purchaseorder/2496594306814208?domainKey=upu&apptype=mdf&taskFlag=todo&typecode=approve&tenantId=aen06kxy&qzId=278401&code=${esncode}&isReturnNative=true&source=PU,u8c,UIT&yssource=PU,u8c,UIT",
    "yyUserIds": ["0f059088-9c92-*******-8f1a341cc3df"],
    "webUrl": "https://c2.yonyoucloud.com/meta/voucher/st_purchaseorder/2496594306814208?domainKey=upu&bipCasTag&taskFlag=todo&typecode=approve&tenantId=aen06kxy&qzId=278401&source=PU,u8c,UIT&code=${esncode}&uSpaceOpenType=_blank",
    "appId": "59bcd8c644594106bf0",
    "businessKey": "51938770-395c-11ec-80f7-3e3f15ddd04c",
    "tenantId": "aen**kxy",
    "srcAppId": "msgplatform",
    "labelCode": "bizProcessGeneralDomain"
}

4.2、结束待办接收数据格式


{
    "msgTsLong": 1635583194664,
    "yyUserId": "0f059088-9c92-*******-8f1a341cc3df",
    "businessKey": "51938770-395c-11ec-80f7-3e3f15ddd04c",
    "srcMsgId": "20211030202110306c3f383b-7f73-469a-9eb3-6c5d2b95d222:ubpm20200520",
    "tenantId": "aen**kxy",
    "srcAppId": "msgplatform",
    "validApp": false
}

五、根据友户通userId获取用户信息

  • 接口文档

请使用YonBIP/YonSuite账号登录系统,然后进入【API文档】节点,按以下接口名称搜索,查看接口文档

1

六、三方系统单点YonBIP

6.1、背景

一般情况,【客开方】收到用友待办信息后,需要再调用三方消息接口,将该待办信息发送给三方系统。 这种情况存在一个问题:生成的单点登录地址只能使用一次,发送待办信息给三方系统时一般就会直接带上该地址。 这就造成使用者如果打开后未审批,或者想再次查看都会报错。

6.2、解决方案

【客开方】发送待办信息给三方系统时不要直接发送用友待办的mUrl或者webUrl,建议【客开方】发布一个接口作为地址信息,使用者点击后, 请求【客开方】服务然后重定向到单点地址。

可参考如下格式:

http://localhost:8080/yonsuite/sso?userId=200043&targetUrl=https%3A%2F%2Fdbox.yonyoucloud.com%2Flogin 示例截图

undefined

6.3、 单点实现

请点击链接操作:

单点登录

6.4、示例Demo

按照reademe看自建接入模式配置即可

undefined

七、测试

最基础的调通流程,不包含复杂判断逻辑,具体逻辑建议按照一章节描述编写代码
  • 提交采购订单单据

undefined

  • 代码接收到待办事件,示例中解析出了webUrl

undefined

  • 取出webUrl拼装为ssoController的请求参数。

举例:

http://localhost:8080/yonsuite/sso?userId=200043&targetUrl=https%3A%2F%2Fc2.yonyoucloud.com%2Fmdf-node%2Fmeta%2Fvoucher%2Fvoucher_order%2F1817314874847920139%3FdomainKey%3Dudinghuo%26businessStepCode%3D%26tenantId%3Dx73uqmdb%26apptype%3Dmdf%26serviceCode%3DorderList%26taskId%3D48847e63-56a1-11ee-a46a-361c0689b650%26from_mc_workflow%3D1%26from_service%3Diuap-apcom-messagecenter%26url_actual_build_source%3Diuap-apcom-messageplatform

可以将这个地址发送给三方。三方用户点击这个地址就会请求到本服务。然后走单点相关的逻辑, 最后重定向至targetUrl.

undefined

Copyright © 用友 -【生态技术部】 2022-2023 all right reserved,powered by Gitbook修订时间: 2023-11-24 19:12:58

results matching ""

    No results matching ""