通过DocuSign API移除/更正签署人身份验证操作不生效问题
问题原因
- DocuSign API更新收件人属性时会自动忽略空值、空字符串字段,你将
IdCheckConfigurationName设为空字符串、SmsAuthentication设为null的操作不会被API识别为覆盖原有配置,因此修改不生效。 - 身份验证类属性属于特殊配置,不能通过赋值空值的方式清空,必须使用API规定的取值显式声明配置变更。
- 需确保更新时传入的
RecipientId和原有签署人的ID完全匹配,否则API会判定为新增签署人,不会修改原有签署人配置。
解决方案
分两种场景实现需求:
场景1:移除签署人的SMS身份验证
不要赋值空值,使用API规定的None取值声明关闭身份验证:
//On Update 移除身份验证的正确写法 signer.IdCheckConfigurationName = "None"; signer.RequireIdLookup = false;
场景2:修改SMS验证的手机号
重新实例化SMS验证配置对象,传入新的手机号即可:
//On Update 修改手机号的正确写法 RecipientSMSAuthentication newSmsAuth = new RecipientSMSAuthentication(); newSmsAuth.SenderProvidedNumbers = new List<string>(); // 填入新的手机号 foreach (var newTelephone in newTelephoneNumbers) { newSmsAuth.SenderProvidedNumbers.Add(newTelephone); } signer.IdCheckConfigurationName = "SMS Auth $"; signer.SmsAuthentication = newSmsAuth; signer.RequireIdLookup = true;
接口调用注意事项
你当前使用的UpdateAsync接口可以正常工作,也可以选择更针对性的UpdateRecipientsAsync接口实现签署人更新,效果一致:
await envelopesApi.UpdateRecipientsAsync(accountId, envelopeId, recipients, new EnvelopesApi.UpdateRecipientsOptions() { resendEnvelope = "true" });
操作前要确认信封处于sent或delivered状态,已完成、已作废的信封无法修改签署人配置。
内容的提问来源于stack exchange,提问作者G.Mich
相关产品推荐
相关产品推荐

