关于DocuSign嵌入式签署:用户关闭浏览器窗口的检测问询
关于DocuSign嵌入式签署异常场景的解决方案
1. 检测用户关闭浏览器窗口
前端可通过beforeunload事件监听页面关闭/刷新行为,但该事件无法精准区分「关闭窗口」和「刷新/跳转页面」。若要尽可能捕获用户主动关闭的情况,可在事件触发时用navigator.sendBeacon向后端发送标记请求——这个API会在页面卸载时异步发送数据,比普通AJAX更可靠,不会因页面关闭被中断。
示例代码:
window.addEventListener('beforeunload', function(e) { // 发送请求到后端,记录该签署会话被用户主动关闭 navigator.sendBeacon('/api/docusign/sign-session/close', JSON.stringify({ envelopeId: '你的信封ID', signerId: '签署者ID' })); });
注意:这种方式无法覆盖浏览器崩溃、设备断电、网络突然断开等极端情况,仅能作为补充手段。
2. DocuSign是否会发送Webhook通知?
不会。DocuSign的Connect Webhook仅在信封状态发生明确变更时触发(比如签署完成、签署拒绝、信封作废等)。单纯的嵌入式签署会话超时、用户关闭窗口这类操作,只要信封状态未改变(仍处于待签署状态),DocuSign不会主动发送Webhook消息。
3. 是否需要主动查询状态?
是的,主动查询是最可靠的方式。你可在以下场景调用DocuSign的Envelopes API查询信封状态:
- 用户回到你的应用时
- 嵌入式签署会话超时后(可设置会话超时时间,到期后触发查询)
- 定期轮询(比如每隔5-10分钟,根据业务需求调整频率)
通过GET /v2.1/accounts/{accountId}/envelopes/{envelopeId}接口获取信封的status字段,即可明确当前签署进度:若状态为sent或delivered,说明用户未完成签署;若为completed则表示签署完成。
内容的提问来源于stack exchange,提问作者hshah
相关产品推荐
相关产品推荐

