表单数据推送设置

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


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

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


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

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

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

data的json格式如下, 但是是以字符串形式推送的:

参数 类型 说明
_id String 该条数据的唯一标识符
form String 回复数据对应的表单id
created Date 创建时间
lastUpdated Date 最后修改时间
isStar Boolean 是否为标记星号
totalAmount Number 支付表单的总金额
score Number 评分表单有效,值为该回复的分数
values Array 包含表单每个组件的回复,详情参见
remark String 备注
extendValues Object 拓展字段 { queryString: String, 提交时链接中对应的queryString }
extendField String 扩展属性设置的取值


推送数据签名算法

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

推送的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,确保数据来源的安全