TreeviewCopyright © aleen42 all right reserved, powered by aleen42
事件订阅
一、应用场景
根据客户订阅的事件动作,YonSuite\YonBIP对用单据数据改变后,会将数据改变的单据信息根据注册的回调地址推送给三方。 目的:1、保证双方系统数据的实时一致性;2、通过事件订阅可以减少接口轮询获取单据变更的数据的情况。
二、基础入门
三、添加事件订阅
- 登录业务系统 YonBIP/YonSuite系统
- 进入API调用节点,选择自己添加的应用点击事件订阅
四、配置回调地址
- 点击测试时还会校验appkey,appsecrect等解密 ,如果错误测试也会提示,
- 测试成功结果提示
- 解密相关文档
五、JAVA代码示例使用说明
- 我们提供了JAVA代码示例,简单配置即可使用。
按照reademe配置即可
5.1、回调地址配置参考
com.yonyou.openapi.base.event.EventListenerController#onEventNew
5.2、添加事件编码
- 添加事件编码:
com.yonyou.openapi.event.IsvEventExtendType
- 编码对应参考下图事件编码
5.3、编写接收事件代码
package com.yonyou.openapi.event.dept;
import com.google.common.collect.Sets;
import com.yonyou.openapi.base.auth.network.cryptor.EncryptionHolder;
import com.yonyou.openapi.base.event.EventListener;
import com.yonyou.openapi.event.ISVEventExtendDto;
import com.yonyou.openapi.event.IsvEventExtendType;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.Set;
/**
* @description: 部门新增事件监听
**/
@Slf4j
@Component
@RequiredArgsConstructor
public class DeptAddEvent implements EventListener<ISVEventExtendDto> {
/**
* 在这里写待办的处理逻辑,如果返回true则继续执行下一个相同编码的事件,返回false不继续执行。
* @param type 事项类型
* @param event 解析后对象
* @param holder 响应消息体
* @return boolean
*/
@Override
public boolean onEvent(String type, ISVEventExtendDto event, EncryptionHolder holder) {
String[] deptId = event.getDeptId();
Long timestamp = event.getTimestamp();
return true;
}
/**
* 如果存在相同事件编码的处理逻辑,此处用于执行排序
*/
@Override
public int priority() {
return EventListener.super.priority()-100;
}
/**
* 返回事件编码
* @return Set<String>
*/
@Override
public Set<String> supportTypes() {
return Sets.newHashSet(IsvEventExtendType.DEPT_ADD);
}
/**
* 返回接收实体对象
* @return Class<ISVEvent>
*/
@Override
public Class<ISVEventExtendDto> getEventClass() {
return ISVEventExtendDto.class;
}
}
5.4、测试
六、问题说明
1、请注意:待办事件订阅需要提交工单,研发老师给对应租户添加白名单后才能收到 2、存量变更事件也需要添加白名单, 请提交工单