2017-04-20 15 views
0

私はSoap APIを使用して、IFrame経由でドキュメントを読み込んでトークンを取得し、ユーザーが署名できるようにしています。しかし、署名を得るためにそこにない他の人に文書を送ることができるように、私はそれを入手する必要があります。私が理解しているように、ワークフローを使用して文書を一連の電子メールアドレスに送信して特定の順序で署名する方法があるはずです。しかし、私はまだこれを示す文書で何かを見つける必要がありません。私もこれについてgoogleを検索しました。 Docusignの販売グループは、サポート時間を購入するか、Stackoverflowを使用しているので、ここにいます。Soap APIとワークフロー

私は現在、Docusignシステムで文書を作成するコードを持っています。文書が存在し、顧客を待っていることを「他人を待っています」セクションで確認できます。しかし、私はどのアドレスでもメールを受け取ることはありません。以下は私がサービスを呼び出すために使用するコードです。

私はすべての電子メールアカウントをチェックしていますが、ブロックされたドキュメントのアドレスはありません。また、迷惑メールフォルダには何もありません。

public void CreateDocs(string emailSubject, List<FileToSign> files, IEnumerable<Recipient> recipents, IEnumerable<Tab> tabs) 
{ 
var envelope = new Envelope 
{ 
    Subject = emailSubject, 
    EmailBlurb = emailSubject, 
    AccountId = _apiAccountId, 
    Recipients = recipents.ToArray(), 
    Documents = files.Select((t, i) => new Document 
    { 
     PDFBytes = File.ReadAllBytes(t.PathToFile), 
     Name = t.DocumentName, 
     ID = (i + 1).ToString(), 
     FileExtension = t.Extension 
    }).ToArray(), 
    Tabs = tabs.ToArray() 
}; 

using (var client = new DSAPIServiceSoapClient("DSAPIServiceSoap")) 
{ 
    EnvelopeStatus status; 
    using (new OperationContextScope(client.InnerChannel)) 
    { 
     var httpRequestProperty = new HttpRequestMessageProperty(); 
     httpRequestProperty.Headers.Add("X-DocuSign-Authentication", _auth); 
     OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; 
     status = client.CreateAndSendEnvelope(envelope); 
    } 
    if (!status.SentSpecified) return; 
    EnvelopeStatus = status; 
} 
} 

EDIT:追加のサンプル受信者:

  Recipients.Add(new Recipient 
     { 
      UserName = row["FirstSigner"].ToString(), 
      Email = row["SignerEmail"].ToString(), 
      ID = "1", 
      Type = RecipientTypeCode.Signer, 
      CaptiveInfo = new RecipientCaptiveInfo { ClientUserId = "1" }, 
      RoleName = "Signer1", 
      RoutingOrder = 1 
     }); 
+0

あなたは 'IEnumerable recipents'で設定したプロパティを表示できますか?あなたのコード全体を見ることなく、それを伝えるのは難しいです。 –

+0

DocuSign SOAP APIを使用する理由があるのか​​不思議です。 DocuSign [REST API](https://docs.docusign.com/esign/)には豊富な機能があり、使いやすい[c#SDK](https://github.com/docusign/docusign-csharp-client) –

答えて

2

あなたのEmbedded recipients(別名キャプティブ受信者)として署名者

組み込み署名指定されている - または受信者ビューのワークフローは - ユーザーにすることができますアプリやウェブサイトから直接署名してください。 DocuSignプラットフォームに通知する受信者を埋め込むと、アプリケーションは署名URLを生成し、受信者を認証し、署名要求を提示し、トランザクションが完了するとリダイレクトします。

あなたはまた、埋め込まれた受信者に電子メールを送信したい場合は、clientUserId に加えてembeddedRecipientStartURLを設定する必要があります。このanswerを参照してください。

はあなたのコードを変更し、約EmbeddedRecipientStartURLhere

EmbeddedRecipientStartURLが埋め込まれた受信者をリダイレクトするための有効なURL文字列を提供し、送信者があるEmbeddedRecipientStartURL

Recipients.Add(new Recipient 
    { 
     UserName = row["FirstSigner"].ToString(), 
     Email = row["SignerEmail"].ToString(), 
     ID = "1", 
     Type = RecipientTypeCode.Signer, 
     CaptiveInfo = new RecipientCaptiveInfo 
     { 
      ClientUserId = "1", 
      EmbeddedRecipientStartURL = "<Url to your App>" 
     }, 
     RoleName = "Signer1", 
     RoutingOrder = 1 
    }); 

は、より多くの情報を参照してください追加します。このオプションを使用すると、埋め込み受信者は、リモート受信者と同じようにDocuSignから電子メールを受信しますが、電子メールのドキュメントリンクがクリックされると、受信者はDocuSignを介してこのURLにリダイレクトされます。 URLにルーティングするときは、送信者のシステム(URLに応答するサーバー)が受信者のトークンに署名セッションを開始するように要求します。