Webアプリ統合
このページでは、Unicoのジャーニーがどのように機能するか、そしてそれをアプリケーションに組み込むために利用できる統合モデルについて説明します。
ジャーニーとは、本人確認を完了するためにユーザーが通過する一連のステップです。たとえば、書類の写真を撮影する、顔のキャプチャ(ライブネス)を行う、といったものです。
Unicoが体験全体を管理します。統合の手間は最小限です。ジャーニーはCreateProcessを介して作成され、ユーザーはそこへ誘導され、最後に結果を受け取ります。その間に起こること(画面、指示、検証)はすでに構築されており、Unicoが保守しています。
2つの統合モデル
クライアントによってニーズは異なります。Unicoは、ユーザーをジャーニーへ誘導するための2つのモデルを提供します。
| モデル | 最適なケース |
|---|---|
| Journeys SDK | 統合されたシームレスな体験を必要とし、ユーザーを同じ環境内にとどめたいWebアプリ |
| 直接アクセス | ジャーニーをメインページの外で実行できるWebフロー、またはすでにWebViewを組み込んでいるアプリ。ネイティブアプリにはプラットフォームSDKを推奨します |
- Journeys SDK
- 直接アクセス
ジャーニーはアプリケーション自体の内部で実行され、ユーザーをそのコンテキストから外に出しません。Journeys SDKはアプリケーションにインストールされ、必要なときにジャーニーを開くために使用されます。
これは、より統合された、シームレス な体験を実現するための推奨される方法です。ユーザーを終始同じ環境内にとどめることで、フロー全体にわたって摩擦や離脱を減らす傾向があります。
Unicoは、モダンブラウザと互換性のあるJavaScriptライブラリを提供しており、わずか数行のコードでほぼあらゆるアプリケーションにジャーニーを統合できます。
互換性
このライブラリは、使用しているスタックに関係なく、摩擦なくあらゆるプロジェクトに組み込めるように設計されています。
- あらゆるWebアプリケーション。 UMD形式で配布されており、モダンなバンドラー(webpackやViteなど)を介してインポートした際に動作します。あらゆるフレームワーク(React、Angular、Vue)またはピュアなJavaScriptと互換性があります。
- モダンブラウザ。 ライブラリにはPromisesや
async/awaitなどの機能に必要なポリフィルがすでに含まれており、古いバージョンのブラウザへの互換性も拡張します。 - 標準的なWeb API。 ジャーニーはブラウザのネイティブ機能上で動作し、プロジェクト内のプラグインや外部ライブラリに依存しません。
SDKの内部的な仕組み
ジャーニーが開かれると、SDKはページにiFrame を挿入し、その時点から視覚的な体験全体を制御します。各ステップの画面、スクリプト、アセットはこのiFrame内で実行され、ユーザーが開始した瞬間からプロセスが完了するまで続きます。
このアーキテクチャ上の決定は意図的なものです。iFrameの分離により、Unicoのジャーニーがアプリケーションのスタイルや動作に干渉しないことが保証されます。スクリプトが外部のコンテキストに漏れることはなく、CSSルールがアプリケーション自身のスタイルと衝突することもありません。その結果、エンドユーザーには一貫した体験が、クライアントのプロダクトには最小限の影響がもたらされます。
UnicoがiFrameの作成と管理を担うため、ジャーニーの改善(パフォーマンス、体験、検証のいずれであっても)は、統合されたアプリケーションに変更を加えることなく、すべてのユーザーに自動的に提供されます。統合は常に利用可能な最善の最適化で動作し、プラットフォームのあらゆる進化を追跡したり、それに対応したりする必要はありません。
はじめに
ステップ1: インストール
unico-journey-sdkパッケージは、IDPayの決済ジャーニーと本人確認ジャーニーの間で共有されています。本人確認のユースケースでは、以下の手順で示すようにByUnicoSDKクラスをインポートします。
npm install unico-journey-sdk
このパッケージは、以前idpay-b2b-sdkとして公開されていました。名称が新しくなっただけの同一のSDKであり、同じバージョン系列を維持しています。新しい名称で公開されているのは2.3.0以降のみです。完全な履歴についてはリリースノートを参照してください。
Journeys SDKをインストールする推奨方法は、npmやyarnなどのパッケージマネージャーを使い、npm registryで公開されているパッケージからインストールすることです。インストールと依存関係の管理が簡素化されるだけでなく、この方法では使用しているバージョンを明確に制御でき、新しいバージョンが公開されるたびに簡単に更新できます。
SDKは**セマンティックバージョニング(SemVer)**に従っており、patchおよびminorの更新では互換性を破壊する変更は導入されません。これらの更新を自動的に受け取るようにプロジェクトを構成しても安全です。統合の調整が必要になる可能性のある変更 はmajorバージョンに限定され、常に移行ガイドが付属します。
最新バージョンを維持することは、2つの理由から特に重要です。1つ目はセキュリティです。脆弱性が特定されたとき、または通信プロトコルを強化する機会が生じたときには、必ずセキュリティパッチが公開されます。古いバージョンを使用することは、これらの修正を見送り、フローを不要なリスクにさらすことを意味します。2つ目は安定性です。バグ修正も同じ方法で配布され、古いバージョンには、より新しいリリースですでに解決済みの挙動が残っている可能性があります。
始める前に、Unicoのサポートチームにドメインを登録してください。すべてのドメインはHTTPSを使用する必要があります。
ステップ2: init(options)を呼び出す
SDKを初期化し、ジャーニーが正しく機能するために必要なスクリプトを事前に読み込み、エンドユーザーにより滑らかな体験を提供します。フローのできるだけ早い段階で呼び出してください。
| パラメータ | 必須 | 説明 |
|---|---|---|
token | はい | Create Process APIから返されるプロセストークン |
env | いいえ | テスト環境の 場合のみ'uat'を設定 |
import { ByUnicoSDK } from 'unico-journey-sdk';
ByUnicoSDK.init({
token,
// env: 'uat' // テスト環境の場合のみ
});
ステップ3: open(options)を呼び出す
iFrameを表示し、ユーザーのためにジャーニーを開始します。この時点以降、すべてはiFrame内で自動的に行われ、中間ステップを管理する必要はありません。
| パラメータ | 必須 | 説明 |
|---|---|---|
transactionId | はい | Create Process APIから返されるプロセスID |
token | はい | Create Process APIから返されるプロセストークン |
onFinish | はい | ジャーニーが終了または閉じられたときに実行されるコールバック |
onWidgetVisibilityChange | いいえ | ウィジェットの表示状態が変化したときに実行されるコールバック |
アプリケーションとの次のやり取りは、ユーザーがジャーニーを完了したか閉じたかにかかわらず、ジャーニーが終了したときに発生します。その時点で、SDKはopenにパラメータとして渡された**onFinishコールバックを呼び出します。そこから、アプリケーションはgetProcessAPIを呼び出して結果を確認するか、非同期のアプローチが望ましい場合はWebhook**通知を待つことができます。
結果を照会するだけでなく、onFinishを使用してアプリケーションのフロントエンドの状態を処理することを推奨します。
- ループの回避。 ジャーニー終了直後にユーザーが再びフローをトリガーした場合に、プロセスが即座かつ不必要に再作成されるのを防ぎます。
- フローの管理。 ジャーニーが閉じた後にユーザーが出口のない画面で行き詰まらないよう、アプリケーションの次のステップへ確実に誘導します。
onFinishコールバックは、ユーザーがジャーニーを完了したことを示しますが、承認を保証するものではありません。プロセスはUnicoの検証ルールのいずれかで不合格となって終了している可能性があります。getProcessによる照会やWebhook通知の受信は任意ではありません。これらが実際の結果の唯一の情報源であり、アプリケーションの動作はそれらに基づく必要があります。ユーザーが承認されたかどうかを判断するためにonFinishを単独で使用してはなりません。
onFinishコールバックは、ジャーニーがどのように終了したかを示すオブジェクトを受け取ります。
| フィールド | 型 | 説明 |
|---|---|---|
type | string |