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を受け取ったら
コメント