如何自定义知行之桥Webhook端口返回的Response消息

一、Webhook端口功能概述

知行之桥的Webhook端口提供灵活的消息响应机制,支持用户通过修改配置文件自定义返回的消息体内容,能够查看是否调用接口成功、数据是否推送成功以及自定义返回给用户端的响应内容。

本指南将详解如何通过脚本配置实现以下需求:

  • 设置JSON/XML等不同格式的响应消息
  • 自定义成功/失败时的返回内容

扩展阅读:Webhook端口使用介绍与演示

二、配置流程详解

创建好Webhook端口后,可以通过POST 方法访问webhook地址,可以看到返回结果的格式。本文以POSTMAN为例:

1. Webhook默认的返回消息

调用成功:

调用失败:

点击发送之后可以在知行之桥的Webhook端口的输出页面查看,无论调用成功与否,在该页面都会显示相应的信息。

调用失败时,在知行之桥EDI系统中,Webhook端口的对应文件会显示Error,且文件内容为空。在其他详细信息页面中可以查看调用失败的错误原因提示:

2. 自定义返回消息

a. 修改返回的消息类型

比如需要返回JSON,可以直接在访问地址上加上?@json

b. 修改返回的消息内容

比如,成功时需要返回

复制代码
{
"TestCode":"0",
"TestInfo":"Success"
}

需要按照以下步骤操作:

1) 首先直接在浏览器访问webhook地址

2)导出Webhook端口设置

鼠标右键点击Webhook端口,在弹窗中选择 导出端口设置。

3)解压下载的文件,找到解压缩文件夹Public下的webhook.rsb文件进行编辑

复制代码
<arc:script xmlns:arc="http://arc.cdata.com/ns/arcscript/2">
 <arc:restrict user="admin" role="cdata_admin,cdata_api"/>
 <arc:info title="Webhook" compileOptions="PreventCSRF=false;X-Frame-Options=Any" desc="Webhook endpoint succesfully invoked.">
 <input name="*"/>
 </arc:info>
 <arc:equals attr="_request.server:REQUEST_METHOD" value="POST" case="ignore"> <!---判断请求类型,此处如果为POST 则为正确 -->
 <arc:set attr="_context.settings:outputformat" value="null"/>
 <arc:set attr="_context.settings:outputformatoptions" value="prevent_error_details"/>
 <arc:set attr="_response.header:Content-Type" value="application/json; charset=utf8"/> <!---设置返回的content-type-->
<!---设置请求正确且成功时的数据内容 -->
 <arc:set attr="_response.write">
{
 "TestCode":"1",
 "TestInfo":"success"
}
 </arc:set>
}
<rsb:set attr="in.connectorId" value="[_meta.arc:connectorid]"/>
<arc:call op="webhookReceive" in="in"/>
 <arc:else>
 <arc:try>
<!-设置请求发送错误时返回的错误信息- -->
 <rsb:set attr="in.connectorId" value="[_meta.arc:connectorid]"/> 
 <arc:catch code="*">
 <arc:set attr="_response.statuscode" value="500" />
 <arc:set attr="_response.statusdescription" value="Internal Server Error" />
 <arc:throw code="[_code]" desc="[_description]" />
 </arc:catch>
 <arc:call op="webhookReceive" in="in"/>
 </arc:try>
 </arc:else>
 </arc:equals>
</arc:script>

4)完成后,将以下解压文件全部重新压缩为zip文件

  1. 选择导入-》自定义导入-》替换所有冲突

导入文件的时候,如果没有找到ZIP文件可以将弹窗右下角的ARCFLOW文件(.arcflow)更改为 所有文件(.*),即可看到我们刚刚打包好的文件了。

在 工作区导入 弹窗中选择导入类型为:自定义导入,根据页面指示点击下一步

将会出现解决导入冲突页面,选择第二项,替换所有冲突,点击导入。

上传成功后可再次请求Webhook地址,请求成功后,Webhook端口返回的Response消息如下:

请求失败时,Webhook端口返回的Response消息如下:

如果您希望了解有关EDI对接的相关信息,欢迎交流。

阅读原文

相关推荐
北京聚信万通科技有限公司3 天前
产品功能详解-流程设计开发(八):配置功能详解
edi·电子数据交换
知行EDI8 天前
Ferrari AVIEXP EDI 对接指南:报文解析、发运通知与 ERP 集成
edi·电子数据交换·知行软件·知行edi
知行EDI8 天前
知行之桥集成飞书多维表:让 EDI 订单从报文走向可视化协同
edi·知行软件·知行edi
知行EDI11 天前
AVI-SPL EDI 对接指南:SFTP 与 X12 004010 报文实施方案
edi·电子数据交换·知行软件·知行edi
知行EDI13 天前
知行之桥 S3 端口或归档中配置阿里云 OSS 使用指南
阿里云·edi·oss·s3
知行EDI1 个月前
Costco US 与 Canada EDI:通过 Rithum 实现订单、发货、库存、退货和结算自动化
edi·电子数据交换·知行软件·知行edi
知行EDI1 个月前
知行之桥 Email Receive OAuth 回调为何跳转登录页?
oauth·edi·知行edi·email receive
知行EDI1 个月前
MARTUR EDI 对接指南:基于 AS2 与 EDIFACT D.96A 实现自动化接单
edi·电子数据交换·知行软件·知行edi·martur
YisquareTech1 个月前
SwiftInt EDI 是什么?企业级 B2B 数据交换与报文映射平台能力详解
edi·供应链协同·edi对接
北京聚信万通科技有限公司2 个月前
易连EDI-EasyLink 数据转换性能测试报告
电子数据交换·as2·国产软件