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