DocuSing サマリーPDF(完了証明書)について

DocuSignにはエンベロープごとに完了証明書というものを発行できる。
この完了証明書は、そのエンベロープに対する各イベント(いつ誰がサインをしたか)や情報開示に関する情報が要約されている。

さらにこの完了証明書、DocuSign Connectを使用すればHTTPSでDocuSign側から送信もしてもらえて非常に便利。
そこで、今回はその完了証明書がHTTPSでどのように送られてきてどうやってデコードするかのお話。

スポンサーリンク

完了証明書

完了証明書はそのエンベロープに対する各イベントと、情報開示に関する情報がすべて記録されたもの。こんな感じのPDFで作ってくれる。

公式情報:履歴と完了証明書

ちなみにこの完了証明書は日本語の別名(別訳?)が「修了証明書」や「サマリーPDF」、英語表記でも「Certificate Of Completion」や「Summary PDF」などと呼ばれたりする。
完了証明書について検索したいときはこれらの単語を検索ワードすると、結構見つかる。

完了証明書の添付

完了証明書を各エンベロープに添付する設定はこんな感じ。

ホーム画面の[設定]から[署名と送信]->[署名設定]と進み、下の方にある[エンベロープの配信]から[エンベロープに完了証明書を添付する]にチェックをつける。

完了証明書のHTTPS送信

ではここから、DocuSign Connectを使用してDocuSignからHTTPSで完了証明書を送ってもらうよう設定する方法。

DocuSign Connectを管理画面から設定する場合

先ほどの[設定]から[DocuSign Connect]を選択し、[送信するデータ:]で[完了証明書]にチェックをつける。

DocuSign ConnectをAPIから設定する場合

今回はC#での設定方法。
設定はとても簡単でDocuSign Connectを作成するオブジェクト「EventNotification」オブジェクトの「IncludeCertificateOfCompletion」プロパティにtrueを設定するだけ。

こんな感じ。

EventNotification eventNotification = new EventNotification();

// エンドポイントURLを設定する(HTTPSプロトコルで、TLS1.1以降のバージョン)
eventNotification.Url = "https://hogehoge.jp";

// 受信の確認ができない場合、配信を再試行するように設定する
eventNotification.RequireAcknowledgment = true.ToString();

// 文書をイベントとともにエンドポイントに送信する
eventNotification.IncludeDocuments = true.ToString();

// DocuSign管理者画面でConnectログが確認できるようにする
eventNotification.LoggingEnabled = true.ToString();

// 完了証明書を発行する
eventNotification.IncludeCertificateOfCompletion = true.ToString();

// エンベロープイベントを追加
eventNotification.EnvelopeEvents = new List<EnvelopeEvent>() 
{
    new EnvelopeEvent("Completed", true.ToString())
};

// 受信者イベントを追加
eventNotification.RecipientEvents = new List<RecipientEvent>();
{
    // 受信者イベントが必要な場合はここで設定
}

HTTPSで完了証明書を受け取ったら

最後に完了証明書のデコード方法。

DocuSignからのイベント通知でこんな感じのXMLが送られてくる。

<?xml version="1.0" encoding="utf-8"?>
<DocuSignEnvelopeInformation ...省略>
  <EnvelopeStatus>
	  <!-- エンベロープステータス(省略) -->
  </EnvelopeStatus>
  <DocumentPDFs>
    <DocumentPDF>
      <Name>hogehoge.pdf</Name>
      <PDFBytes>ここに署名文書のバイト配列</PDFBytes>
      <DocumentID>1</DocumentID>
      <DocumentType>CONTENT</DocumentType>
    </DocumentPDF>
    <DocumentPDF>
      <Name>CertificateOfCompletion_f1e28ad5-1c23-4d4f-b517-5d17bc581c97.pdf</Name>
      <PDFBytes>ここに完了証明書のバイト配列</PDFBytes>
      <DocumentType>SUMMARY</DocumentType>
    </DocumentPDF>
  </DocumentPDFs>
</DocuSignEnvelopeInformation>

そこで、DocumentTypeタブの「SUMMARY」をキーに完了証明書のバイト配列を探してあげて、Base64でデコードしてあげると完了証明書のPDFが取り出せる。
Base64でデコードする方法はこちら。
DocuSign DocuSignからPDFBytesを受け取ったら

コメント

タイトルとURLをコピーしました