表单/问卷配置Webhook地址
在表单设置时,发布者可配置一个webhook地址(在表单设置页面底部),以便在自己的服务器中接收表单事件推送。事件包括:验证、用户新增答卷、用户修改答卷、用户通知删除答卷、用户撤回删除通知、管理员删除答卷、发布者清空答卷,下面是各事件推送时携带的信息:
请求方式
POST
发起IP
124.220.208.87(接收端可用于校验请求是否可信)
请求头
x-from-appid: wx5c9674e6177b0f6a // 固定值"wx5c9674e6177b0f6a"
x-event-type: "" // 与请求参数eventType的值一致
x-event-requestid: "" // 系统请求ID
接收端返回
接收端收到请求后,应在3秒钟内返回请求参数formId的值,否则视为请求失败,失败后不再重试,请自行保证接口稳定性。
验证
在配置webhook地址时,首先需要点击验证(按上述要求返回视为验证成功),接收到此事件时,可保存表单信息到自己的服务器中,修改表单后可再次点击验证。
请求参数
eventType: "checkAndInitForm" // 事件类型,固定值"checkAndInitForm"
formId: "" // 表单ID
formName: "" // 表单名称
subjectArray: [{_id:"",name:"",type:"",typeName:"",required:true,optionArray:[]}] // 表单题目列表,以便与用户答卷信息匹配
用户新增答卷
- 请求参数
eventType: "addAnswer" // 事件类型,固定值"addAnswer"
formId: "" // 表单ID
answerId: "" // 答卷ID
userId: "" // 小程序用户ID
answer: {题目ID:"",spendTime:0} // 答卷信息,题目ID作为key,以便与验证同步时的表单题目列表匹配。
state: "" // 发布者自定义传的值
- state参数解释
发布者在使用复制路径分发表单时,可选择在路径后面拼接一个自定义参数state,用户提交表单时,系统会将该参数及其值推送给接收端,以便接收端做数据绑定等操作。比如路径是:thorPage/form/show/show?id=xxx,拼接state参数后则为:thorPage/form/show/show?id=xxx&state=xxx。
用户修改答卷
- 请求参数
eventType: "updateAnswer" // 事件类型,固定值"updateAnswer"
formId: "" // 表单ID
answerId: "" // 答卷ID
userId: "" // 小程序用户ID
answer: {题目ID:"",spendTime:0} // 答卷信息,题目ID作为key,以便与验证同步时的表单题目列表匹配。
state: "" // 发布者自定义传的值
- state参数解释
发布者在使用复制路径分发表单时,可选择在路径后面拼接一个自定义参数state,用户提交表单时,系统会将该参数及其值推送给接收端,以便接收端做数据绑定等操作。比如路径是:thorPage/form/show/show?id=xxx,拼接state参数后则为:thorPage/form/show/show?id=xxx&state=xxx。
用户通知删除答卷
- 请求参数
eventType: "notifyDelete" // 事件类型,固定值"notifyDelete"
formId: "" // 表单ID
answerId: "" // 答卷ID
用户撤回删除通知
- 请求参数
eventType: "cancelDelete" // 事件类型,固定值"cancelDelete"
formId: "" // 表单ID
answerId: "" // 答卷ID
管理员删除答卷
- 请求参数
eventType: "deleteAnswer" // 事件类型,固定值"deleteAnswer"
formId: "" // 表单ID
answerId: "" // 答卷ID
managerName: "" // 数据管理员名字(如是发布者删除,名为"表单发布者")
发布者清空答卷
- 请求参数
eventType: "clearAnswer" // 事件类型,固定值"clearAnswer"
formId: "" // 表单ID