OmiseGo SDKのインテグレーション

# OmiseGo SDKのインテグレーション

SDKでは以下の機能を提供している。
以下のサイトを参考。
https://github.com/omisego/ewallet/blob/develop/docs/setup/integration.md

## 責任分界点

#### SDKによる提供される機能

| 責任範囲                 | タスク                                                                                                                                                                                                                           |
|--------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| トークンマネジメント     | ロイヤリティトークンの作成     <br>トークンを流通させる。     <br>トークンを流通から除く。     <br>ユーザに新しいロイヤリティトークンの作成するインターフェイスの提供     <br>ユーザに流通に、追加削除するインターフェイスの提供 |
| 二次ユーザの保存         | トークンの残高とともに,ユーザを作成。WalletAPI内で登録されたユーザは,一意と認識され,ユーザのトークン残高を処理。                                                                                                                 |
| トークントランザクション | <br>ユーザに対して、ロイヤリティトークンの貸方/借方の処理をする。                                                                                                                                                                |
| エンティティ管理         | 口座の作成、更新、リスト表示     <br>残高の作成、更新、リスト表示     <br>ユーザにロール割り当て、または解除     <br>ロールに対して権限を割り当て、または解除                                                                    |
| API管理                  | キーの生成、アクセスの無効化、秘密鍵？(サーバ用)     <br>APIキーの生成、無効化?(モバイルアプリ用)                                                                                                                                |
| トランザクション         | 貸方/借方のエンティティと、すべてのトランザクションをリスト表示。                                                                                                                                                                |
| 支払い要求               | QRコードをつかって、支払い要求を作成する。                                                                                                                                                                                       |
| 通知                     | 支払いの成功したマーチャントパネルユーザに通知する。                                                                                                                                                                             |

#### プロバイダー(利用者)側の機能

| 環境     | 責任範囲                       | タスク                                                                                                                                                                                    |
|----------|--------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| サーバ   | ユーザ管理                     | エンドユーザのデータを作成,安全に保存する。     <br>eWallet APIにユーザの作成要求をする(ユーザの残高とやりとりをするため)     <br>eWallet APIないでユーザを識別する不変なユーザIDを管理。 |
| サーバ   | モバイル認証                   | モバイルアプリユーザの認証を行う。     <br>eWallet APIから認証トークンリクエストし,クライアントアプリケーションに送る。                                                                   |
| サーバ   | トランザクション(読み書き可)   | eWalletに,貸方/借方の処理をする。     <br>eWallet APIで,すべてのデータの変更操作を行う。                                                                                                |
| モバイル | ユーザ管理                     | サーバアプリケーションでユーザの登録を行う。     <br>ユーザデータの更新をサーバアプリケーションに送信する。                                                                               |
| モバイル | ユーザ認証                     | サーバアプリケーションでユーザを認証する。     <br>サーバアプリケーションから、eWallet API認証トークンを取得、保存する。                                                                  |
| モバイル | トランザクション(読み取り専用) | eWallet APIでユーザの残高を取得する。     <br>サポートされているトークンを含め、設定のリストを取得。     <br>データ変更操作は、モバイルアプリケーションではできません。             |