使用Python SDK集成DocuSign时签署人被迫签署他人标签的问题
DocuSign集成异常问题分析
问题背景
我用Python SDK集成DocuSign,流程如下:
- 生成含多文档的信封,每文档配专属tabs
- 信封包含3位收件人:2位带
routing_order的签署人、1位抄送人 - 每文档内有对应两位签署人的2组tabs
- 第一位签署人完成所有文档签署后,信封流转至第二位签署人
路由顺序功能正常,但存在异常:第一位签署人被迫签署信封内全部tabs(含属于第二位签署人的),第二位签署人情况一致,导致date_signed tabs被错误填充。
以下是信封定义中收件人的JSON数据:
{ "recipients": { "signers": [ { "client_user_id": null, "completed_count": null, "email": "test1@test1.com", "name": "egeg feefe", "name_metadata": null, "recipient_attachments": null, "recipient_id": 72295, "recipient_id_guid": null, "role_name": null, "routing_order": "1", "tabs": { "sign_here_tabs": [ { "anchor_allow_white_space_in_characters": null, "anchor_allow_white_space_in_characters_metadata": null, "anchor_case_sensitive": null, "anchor_case_sensitive_metadata": null, "anchor_ignore_if_not_present": null, "anchor_ignore_if_not_present_metadata": null, "anchor_match_whole_word": true, "anchor_match_whole_word_metadata": null, "anchor_string": "/222c/", "anchor_string_metadata": null, "anchor_tab_processor_version": null, "anchor_tab_processor_version_metadata": null, "anchor_units": "pixels", "anchor_units_metadata": null, "anchor_x_offset": "20", "anchor_x_offset_metadata": null, "anchor_y_offset": "20", "anchor_y_offset_metadata": null, "caption": null, "caption_metadata": null, "conditional_parent_label": null, "conditional_parent_label_metadata": null, "conditional_parent_value": null, "conditional_parent_value_metadata": null, "custom_tab_id": null, "custom_tab_id_metadata": null, "document_id": null, "document_id_metadata": null, "error_details": null, "form_order": null, "form_order_metadata": null, "form_page_label": null, "form_page_label_metadata": null, "form_page_number": null, "form_page_number_metadata": null, "hand_draw_required": null, "height": null, "height_metadata": null, "is_seal_sign_tab": null, "merge_field": null, "merge_field_xml": null, "name": null, "name_metadata": null, "optional": null, "optional_metadata": null, "page_number": null, "page_number_metadata": null, "recipient_id": 72295, "recipient_id_guid": null, "recipient_id_guid_metadata": null, "recipient_id_metadata": null, "scale_value": null, "scale_value_metadata": null, "smart_contract_information": null, "source": null, "stamp": null, "stamp_type": null, "stamp_type_metadata": null, "status": null, "status_metadata": null, "tab_group_labels": null, "tab_group_labels_metadata": null, "tab_id": null, "tab_id_metadata": null, "tab_label": "/222c/", "tab_label_metadata": null, "tab_order": null, "tab_order_metadata": null, "tab_type": null, "tab_type_metadata": null, "template_locked": null, "template_locked_metadata": null, "template_required": null, "template_required_metadata": null, "tool_tip_metadata": null, "tooltip": null, "width": null }, { "anchor_allow_white_space_in_characters": null, "anchor_allow_white_space_in_characters_metadata": null, "anchor_case_sensitive": null, "anchor_case_sensitive_metadata": null, "anchor_ignore_if_not_present": null, "anchor_ignore_if_not_present_metadata": null, "anchor_match_whole_word": true, "anchor_match_whole_word_metadata": null, "anchor_string": "/333d/", "anchor_string_metadata": null, "anchor_tab_processor_version": null, "anchor_tab_processor_version_metadata": null, "anchor_units": "pixels", "anchor_units_metadata": null, "anchor_x_offset": "20", "anchor_x_offset_metadata": null, "anchor_y_offset": "20", "anchor_y_offset_metadata": null, "caption": null, "caption_metadata": null, "conditional_parent_label": null, "conditional_parent_label_metadata": null, "conditional_parent_value": null, "conditional_parent_value_metadata": null, "custom_tab_id": null, "custom_tab_id_metadata": null, "document_id": null, "document_id_metadata": null, "error_details": null, "form_order": null, "form_order_metadata": null, "form_page_label": null, "form_page_label_metadata": null, "form_page_number": null, "form_page_number_metadata": null, "hand_draw_required": null, "height": null, "height_metadata": null, "is_seal_sign_tab": null, "merge_field": null, "merge_field_xml": null, "name": null, "name_metadata": null, "optional": null, "optional_metadata": null, "page_number": null, "page_number_metadata": null, "recipient_id": 4804, "recipient_id_guid": null, "recipient_id_guid_metadata": null, "recipient_id_metadata": null, "scale_value": null, "scale_value_metadata": null, "smart_contract_information": null, "source": null, "stamp": null, "stamp_type": null, "stamp_type_metadata": null, "status": null, "status_metadata": null, "tab_group_labels": null, "tab_group_labels_metadata": null, "tab_id": null, "tab_id_metadata": null, "tab_label": "/333d/", "tab_label_metadata": null, "tab_order": null, "tab_order_metadata": null, "tab_type": null, "tab_type_metadata": null, "template_locked": null, "template_locked_metadata": null, "template_required": null, "template_required_metadata": null, "tool_tip_metadata": null, "tooltip": null, "width": null } ] } }, { "client_user_id": null, "completed_count": null, "email": "ftt.tttvb@gmail.com", "name": "Dan Kerbon", "name_metadata": null, "recipient_attachments": null, "recipient_id": 4804, "recipient_id_guid": null, "role_name": null, "routing_order": "2", "tabs": { "sign_here_tabs": [ { "anchor_allow_white_space_in_characters": null, "anchor_allow_white_space_in_characters_metadata": null, "anchor_case_sensitive": null, "anchor_case_sensitive_metadata": null, "anchor_ignore_if_not_present": null, "anchor_ignore_if_not_present_metadata": null, "anchor_match_whole_word": true, "anchor_match_whole_word_metadata": null, "anchor_string": "/222c/", "anchor_string_metadata": null, "anchor_tab_processor_version": null, "anchor_tab_processor_version_metadata": null, "anchor_units": "pixels", "anchor_units_metadata": null, "anchor_x_offset": "20", "anchor_x_offset_metadata": null, "anchor_y_offset": "20", "anchor_y_offset_metadata": null, "caption": null, "caption_metadata": null, "conditional_parent_label": null, "conditional_parent_label_metadata": null, "conditional_parent_value": null, "conditional_parent_value_metadata": null, "custom_tab_id": null, "custom_tab_id_metadata": null, "document_id": null, "document_id_metadata": null, "error_details": null, "form_order": null, "form_order_metadata": null, "form_page_label": null, "form_page_label_metadata": null, "form_page_number": null, "form_page_number_metadata": null, "hand_draw_required": null, "height": null, "height_metadata": null, "is_seal_sign_tab": null, "merge_field": null, "merge_field_xml": null, "name": null, "name_metadata": null, "optional": null, "optional_metadata": null, "page_number": null, "page_number_metadata": null, "recipient_id": 72295, "recipient_id_guid": null, "recipient_id_guid_metadata": null, "recipient_id_metadata": null, "scale_value": null, "scale_value_metadata": null, "smart_contract_information": null, "source": null, "stamp": null, "stamp_type": null, "stamp_type_metadata": null, "status": null, "status_metadata": null, "tab_group_labels": null, "tab_group_labels_metadata": null, "tab_id": null, "tab_id_metadata": null, "tab_label": "/222c/", "tab_label_metadata": null, "tab_order": null, "tab_order_metadata": null, "tab_type": null, "tab_type_metadata": null, "template_locked": null, "template_locked_metadata": null, "template_required": null, "template_required_metadata": null, "tool_tip_metadata": null, "tooltip": null, "width": null }, { "anchor_allow_white_space_in_characters": null, "anchor_allow_white_space_in_characters_metadata": null, "anchor_case_sensitive": null, "anchor_case_sensitive_metadata": null, "anchor_ignore_if_not_present": null, "anchor_ignore_if_not_present_metadata": null, "anchor_match_whole_word": true, "anchor_match_whole_word_metadata": null, "anchor_string": "/333d/", "anchor_string_metadata": null, "anchor_tab_processor_version": null, "anchor_tab_processor_version_metadata": null, "anchor_units": "pixels", "anchor_units_metadata": null, "anchor_x_offset": "20", "anchor_x_offset_metadata": null, "anchor_y_offset": "20", "anchor_y_offset_metadata": null, "caption": null, "caption_metadata": null, "conditional_parent_label": null, "conditional_parent_label_metadata": null, "conditional_parent_value": null, "conditional_parent_value_metadata": null, "custom_tab_id": null, "custom_tab_id_metadata": null, "document_id": null, "document_id_metadata": null, "error_details": null, "form_order": null, "form_order_metadata": null, "form_page_label": null, "form_page_label_metadata": null, "form_page_number": null, "form_page_number_metadata": null, "hand_draw_required": null, "height": null, "height_metadata": null, "is_seal_sign_tab": null, "merge_field": null, "merge_field_xml": null, "name": null, "name_metadata": null, "optional": null, "optional_metadata": null, "page_number": null, "page_number_metadata": null, "recipient_id": 4804, "recipient_id_guid": null, "recipient_id_guid_metadata": null, "recipient_id_metadata": null, "scale_value": null, "scale_value_metadata": null, "smart_contract_information": null, "source": null, "stamp": null, "stamp_type": null, "stamp_type_metadata": null, "status": null, "status_metadata": null, "tab_group_labels": null, "tab_group_labels_metadata": null, "tab_id": null, "tab_id_metadata": null, "tab_label": "/333d/", "tab_label_metadata": null, "tab_order": null, "tab_order_metadata": null, "tab_type": null, "tab_type_metadata": null, "template_locked": null, "template_locked_metadata": null, "template_required": null, "template_required_metadata": null, "tool_tip_metadata": null, "tooltip": null, "width": null } ] }, "user_id": null } ] } }
问题诊断
从提供的JSON数据可以看出,存在以下关键问题:
- 签署人tabs混入其他签署人的tab:
- 第一位签署人(recipient_id:72295)的
sign_here_tabs里包含了一个recipient_id:4804的tab,这属于第二位签署人的tab,导致第一位签署人看到不属于自己的签署项。 - 第二位签署人(recipient_id:4804)的
sign_here_tabs里同样包含了recipient_id:72295的tab,同理导致第二位签署人看到不属于自己的签署项。
- 第一位签署人(recipient_id:72295)的
- 缺失document_id参数:所有tab的
document_id均为null,DocuSign无法确定tab属于哪个文档,可能导致tabs在所有文档中显示,进一步混淆签署人需要处理的内容。 - date_signed tabs关联错误:如果
date_signedtabs同样存在上述recipient_id不匹配或归属错误的情况,就会出现错误填充的问题。
修复方案
- 清理签署人tabs:每个签署人仅保留属于自己的tabs,确保tab的
recipient_id与所属签署人的recipient_id完全一致。- 第一位签署人只保留
recipient_id:72295的tab,移除recipient_id:4804的tab。 - 第二位签署人只保留
recipient_id:4804的tab,移除recipient_id:72295的tab。
- 第一位签署人只保留
- 添加document_id参数:为每个tab指定对应的
document_id,明确该tab属于哪个文档,避免跨文档显示。 - 修正date_signed tabs:确保
date_signedtabs的recipient_id关联到正确的签署人,并且指定对应的document_id,只有当对应签署人完成签署后,该tab才会自动填充日期。
内容的提问来源于stack exchange,提问作者rydan
相关产品推荐
相关产品推荐

