OneSpan Sign Developer:コールバックイベント通知–パート2

Duo Liang, 2019年4月17日
OneSpan Sign Developer: Callback Event Notification – Part 2

これで前編このブログシリーズの中で、トランザクション、署名者、またはその他の情報をポーリングする必要があるときはいつでもコールバックリスナーを設定することにより、さまざまなイベント通知の潜在的な用途と推奨ワークフローを確認しました。 

このブログでは、コールバック要求を処理する一般的なプロセスと、コールバックイベント通知に関する興味深い技術的な詳細をすべて紹介します。さっそく始めましょう。

イベント通知に登録する

OneSpan Signがイベントを通知する前に、コールバックURLまたはオプションのコールバックキーを登録し、通知が必要なイベントを指定する必要があります。あなたは私たちに従うことができますコールバック通知を設定する以下のように、プログラムでイベント通知に登録する方法、または管理ページの[統合]タブにあるWebポータルから登録する方法に関するガイド。4-17-1

コールバックリスナーを作成する

これで、Webhookリスナーを作成する準備ができました!以下の図は、投稿リクエストを処理するために必要なすべての手順を示しています。そこから、技術的な詳細を適宜説明します。これは、現在開発中のプログラミング言語またはWebフレームワークに適用できる一般的なプロセスです。4-17-2

コールバックリスナーポイント1

まず、OneSpan Signを呼び出すためのパブリックURLが必要です。テスト目的でのみ、一時的なものを取得できますングロク
そのため、トランザクションが完了したときなどのイベントが発生すると、OneSpan Signはこの最初のセクションに登録されているURLにHTTP POSTリクエストを送信します。 

コールバックリスナーポイント2および3

レジストリに設定したコールバックキーを覚えていますか?この秘密トークンは、POST呼び出しが実際にOneSpan Signからのものであることを識別するために使用されます。これは、スプーフィングコールを受信していないことを確認するのに役立ちます。
登録したコールバックキーは、Authorizationヘッダーを介して「Basic {callbackKey}」として渡されます。 
リクエストに共有シークレットが含まれていることを確認したら、リクエストの処理を続行できます。

コールバックリスナーポイント4

イベント情報はリクエストの本文で渡されます。リクエストの本文には、タイプとそのイベントに関連付けられたデータを含むJSONオブジェクトが含まれます。
以下は、いくつかのコールバックペイロードの例です。

パッケージが作成されました
{」 @class ":" com.silanis.esl.packages.event.ESLProcessEvent "、" name ":" PACKAGE_CREATE "、" sessionUser ":" 18EZDL44xgsX "、" packageId ":" wVdZEaPD2igwUnFGJBjDD0dpO7k = "、" message ":null、" documentId " :null、"createdDate": "2018-06-30T20:04:55.384Z"}

パッケージが送信されました
{」 @class ":" com.silanis.esl.packages.event.ESLProcessEvent "、" name ":" PACKAGE_ACTIVATE "、" sessionUser ":" 18EZDL44xgsX "、" packageId ":" 5n4obeO8jYoPp126Cm-Y3fxdfbo = "、" message ":null、" documentId ":null、" createdDate ":" 2018-06-30T20:09:50.425Z "}

署名者1は同意文書に同意しました
{」 @class ":" com.silanis.esl.packages.event.ESLProcessEvent "、" name ":" DOCUMENT_SIGNED "、" sessionUser ":" 44aafb7c-97b9-40e1-bb59-eb76c7d2a484 "、" packageId ":" 5n4obeO8jYoPp126Cm-Y3fxdfbo = " 、"message":null、"documentId": "default-consent"、"createdDate": "2018-06-30T20:10:51.002Z"}

署名者1がドキュメントを完成させた
{」 @class ":" com.silanis.esl.packages.event.ESLProcessEvent "、" name ":" DOCUMENT_SIGNED "、" sessionUser ":" 44aafb7c-97b9-40e1-bb59-eb76c7d2a484 "、" packageId ":" 5n4obeO8jYoPp126Cm-Y3fxdfbo = " 、"message":null、"documentId": "7caf46cdd75f7a411bf8c22793b84fa79d8d180becc40691"、"createdDate": "2018-06-30T20:12:12.12.256Z"}

署名者1は署名パッケージを完了しました
{」 @class ":" com.silanis.esl.packages.event.ESLProcessEvent "、" name ":" SIGNER_COMPLETE "、" sessionUser ":" 44aafb7c-97b9-40e1-bb59-eb76c7d2a484 "、" packageId ":" 5n4obeO8jYoPp126Cm-Y3fxdfbo = " 、"message":null、"documentId":null、"createdDate": "2018-06-30T20:12:12.272Z"}

パッケージは完全でした
{」 @class ":" com.silanis.esl.packages.event.ESLProcessEvent "、" name ":" PACKAGE_COMPLETE "、" sessionUser ":" e00696ec-d6f5-4feb-89c5-a5ce002a6c66 "、" packageId ":" 5n4obeO8jYoPp126Cm-Y3fxdfbo = " 、"message":null、"documentId":null、"createdDate": "2018-06-30T20:15:01.038Z"}

署名者1オプトアウト:
{」 @class ":" com.silanis.esl.packages.event.ESLProcessEvent "、" name ":" PACKAGE_OPT_OUT "、" sessionUser ":" b5381b13-991e-4179-9f9b-d4e1ec9d06bb "、" packageId ":" J5tyJalzG49hmDho5b9JdG61T7M = "、"メッセージ ":"個人情報が正しくありません "、" documentId ":null、" createdDate ":" 2018-06-30T20:16:29.763Z "}

なお、各呼び出しの本文は、通知イベントの種類によって異なる場合があります。

コールバックリスナーポイント5および6

イベント名に応じて、ビジネスロジックに従ってタスクをスタブ関数に分散して処理できます。これは、このブログシリーズの最初の部分で推奨されました。サービス関数に複雑なワークフローがあり、リクエストを長時間消費する場合は、非同期メソッドを使用してタイムアウトエラーの発生を回避することをお勧めします。現在の実装では、コールバックのタイムアウト設定は20秒であり、インスタンスごとに異なる可能性があります。

次に、HTTPステータスコード200をOneSpan Signに返し、コールバックを正常に受信したことを示します。 

通知を見逃した場合はどうなりますか?

イベント通知メカニズムを使用する場合、通知が欠落している可能性があります。 

コールバックが失敗すると、電子メールが送信されます。バージョン11.21以降、その電子メールは改善され、失敗の理由が記載されています。たとえば、タイムアウト例外、「リソースが見つかりません」エラー、またはその他のエラーコードがある場合、これらのメールは失敗の原因のトラブルシューティングに役立ちます。 4-17-3

さらに、通知が欠落した場合の損失を減らすためのバックアップとして、6、12、または24時間ごとに積極的にイベントをポーリングできます。

上記は、コールバックリスナーをセットアップするために知っておく必要があるすべての技術的な知識でした。次のいくつかのブログでは、ここで説明した手順に従って、さまざまな言語とフレームワークを使用したサンプルプロジェクトをいくつか紹介します。

このブログや、OneSpan Signをアプリケーションに統合することに関するその他の質問がある場合は、開発者コミュニティフォーラム 。あなたのフィードバックは私たちにとって重要です!

OneSpan Sign開発者コミュニティ

OneSpan Sign開発者コミュニティ

OneSpan Sign開発者コミュニティに参加してください!フォーラム、ブログ、ドキュメント、SDKダウンロードなど。

今日参加します