表单数据推送设置

[增值服务]—[API] 页勾选“启用数据推送”,并设置好推送的URL地址及使用该地址需要的token,当已开启推送通道的表单收到新数据时,番茄表单会将该条数据通过HTTP POST推送到指定的URL。 Alt text


如何进行具体表单的数据推送

在需要进行数据推送的表单设置页,勾选“数据推送给现有系统”即可完成该表单推送通道的开启 Alt text


推送API时body中的对象如下所示:

{
  data: "表单数据",
  time: "当前时间戳",
  sign: "推送数据签名"
}

该接口需返回success字符串,如果用户的接口反馈给番茄表单的字符不是success这7个字符,番茄表单服务器会不断推送该数据(最多推送三次)

data数据包含每个组件的用户提交数据,参见数据组件定义


推送数据签名算法

番茄表单对本次推送数据的签名,建议用户验证该签名已确保数据来源安全。

推送的JSON数据为:

{
  data: "表单数据",
  time: "当前时间戳",
  sign: "根据 ${data},${time}以及${token}拼接在一起使用sha1加密后的数据"
}

签名的数据为:data(JSON类型转换为String类型) + time(13位时间戳) + 用户设置推送api的token 进行加密。

示例代码:

const shasum = crypto.createHash('sha1')

shasum.update(data + time + app.pushToken)

const sign = shasum.digest('hex')

用户接收到推送数据后建议使用如下代码,验证推送数据中的token,确保数据来源的安全