如何user_id
向 DocuSign 信封添加自定义属性,以便在收到来自 DocuSign 的回调时,可以检索关联的user_id
? (在 VB.Net 中)
我已经阅读了关于Custom Fields的文档,尽管这似乎是我在管理面板中的模板上创建它们 - 如果可能的话,我宁愿在代码中动态创建它们。尽管如此,我已经尝试使用这种方法(未成功)。代码包含在下面。
手动设置 EnvelopeID:
envDef.EnvelopeId = app_Id
EnvelopID 被 DocuSign 的自动生成的 GUID 覆盖
创建自定义字段:
(创建User_ID
在管理面板中命名的 Text CustomField 之后...)
Dim user_id_field As New TextCustomField()
user_id_field.Name = "User_ID"
user_id_field.Value = user_id
Dim custom_fields As New CustomFields()
custom_fields.TextCustomFields.Add(user_id_field)
envDef.CustomFields = custom_fields
DocuSign XML 负载中完全没有自定义字段
我可以创建一个关联表,将 DocuSign 的EnvelopeID
GUID 与user_id
创建信封的时间相关联。然后我可以使用EnvelopeID
来查找user_id
回调。
下面的代码运行良好。用户接收文档,签署文档,我们在文档发送和文档完成时都会收到回调。当然,缺少的部分是将 DocuSign 传递给我的自定义属性。
(为简洁起见,我排除了很多信息,如角色、模板等。)
Dim envDef As New EnvelopeDefinition()
Dim envelope_events As New List(Of EnvelopeEvent)
envelope_events.Add(New EnvelopeEvent("sent", True))
envelope_events.Add(New EnvelopeEvent("completed", True))
Dim recipient_events As New List(Of RecipientEvent)
recipient_events.Add(New RecipientEvent(True, "Sent"))
recipient_events.Add(New RecipientEvent(True, "Completed"))
recipient_events.Add(New RecipientEvent(True, "AuthenticationFailed"))
Dim notification As New EventNotification
' -- Notification properties excluded for brevity --
notification.EnvelopeEvents = envelope_events
notification.RecipientEvents = recipient_events
envDef.EventNotification = notification
Dim apiClient As New ApiClient("https://demo.docusign.net/restapi")
Dim cfi As New Configuration(apiClient)
Dim authHeader As String = "{""Username"":""" + userName + """, ""Password"":""" + password + """, ""IntegratorKey"":""" + INTEGRATOR_KEY + """}"
cfi.AddDefaultHeader("X-DocuSign-Authentication", authHeader)
Dim envelopesApi As New EnvelopesApi(cfi)
Dim envelopeSummary As EnvelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef)
您不必总是在管理面板中创建自定义字段。您可以在通过 API 创建信封期间动态指定自定义字段。
以下应该工作。在此处查看完整代码。
Dim envDef = New EnvelopeDefinition()
envDef.EmailSubject = "[DocuSign C# SDK] - Custom Fields"
envDef.Status = "sent"
envDef.CustomFields = New CustomFields()
Dim textCustomField = New TextCustomField()
textCustomField.Name = "User_Id"
textCustomField.Value = "KTI456"
Dim textCustomFields = New List(Of TextCustomField)()
textCustomFields.Add(textCustomField)
envDef.CustomFields.TextCustomFields = textCustomFields
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句