開発者コンソール

DRMのメソッド、イベント、統合

DRMのメソッド、イベント、統合

本ドキュメントでは、Unity用プラグインで使用可能なDRMのメソッドとイベントの概要について説明します。また、開発作業を始める際に役立つ例も紹介します。

Unity用プラグインのDRMメソッド

リクエストを開始するには、メソッド呼び出しを使用します。イベントについては、この後のDRM関連データオブジェクトの表を参照してください。

戻り値の型 メソッド メソッドの概要 イベント
void VerifyLicense() ライセンス/使用権限を取得するリクエストを開始します。 なし
RequestOutput VerifyLicense() ライセンス/使用権限を取得するリクエストを開始します。 LicenseResponse

DRM関連データオブジェクト

イベントオブジェクトについて、次の表で説明します。

オブジェクト メンバー 説明
LicenseReponse string requestId VerifyLicenseから返されたリクエストID。
string status アプリのライセンスステータス。LICENSED、NOT_LICENSED、EXPIRED、ERROR_VERIFICATION、ERROR_INVALID_LICENSING_KEYS、UNKNOWN_ERRORのいずれかが使用されます。詳細については、ライセンスステータスを参照してください。

ライセンスステータス

この機能は、Unity用プラグインでのみ使用できます。VerifyLicense()を呼び出すと、次の表に定義されているいずれかのライセンスステータスがライセンスサービスから返されます。

ライセンスステータス 説明
LICENSED ユーザーは有効なライセンスを保有している。
NOT_LICENSED ユーザーは有効なライセンスを保有していない。このユーザーには、アプリを使用する権利がありません。
ERROR_VERIFICATION ライセンスの検証中にエラーが発生した。検証エラーの理由として、次の原因が考えられます。
  • アプリのメタデータ(チェックサム、署名、パッケージ名など)をAmazonが検証できなかった。
  • 受け取ったライセンスが転送中に改ざんされていた。
ERROR_INVALID_LICENSING_KEYS ユーザーはライセンスキーを保有しているが、有効ではない。ライセンスキーが無効である理由として、次の原因が考えられます。
  • アプリにパブリックキーを追加しなかったか、または追加先のフォルダが正しくない。
  • 追加されたパブリックキーが、Amazonが保有する対応するプライベートキーと一致しない。
EXPIRED

ユーザーのライセンスの有効期限が切れ、現在は無効になっている。ライセンスの有効期間は60日間です。30日後から、Amazonアプリストアは24時間ごとにライセンスの更新を試みます。

ユーザーのオフライン期間が60日を超えた場合は、有効期限が切れる前にAmazonアプリストアがライセンスを更新することはできません。ライセンスの有効期限が切れた場合、それ以降ユーザーはアプリを起動できなくなります。

ライセンスの有効期限が切れる理由としては、ほかにも次の原因が考えられます。

  • ユーザーが注文の取り消しをリクエストした。
  • Amazonアプリストアが楽観的に(支払いトランザクションが確定する前に)ユーザーの注文を履行したものの、その後請求に失敗したためにライセンスが取り消された。

UNKNOWN_ERROR このステータスは、Amazon側の内部エラーを示します。

DRM APIのサンプルコード

Unityにおけるメソッドの呼び出しとイベントの処理に慣れていない場合は、Unityでメソッド呼び出しを開始する方法Unityでイベントを処理する方法を参照してください。

VerifyLicense

VerifyLicenseは、ライセンスを検証するリクエストを開始します。これは非同期関数です。

using com.amazon.device.iap.cpt;

// プラグインとのやり取りに使用するオブジェクトを取得します
IAmazonIapV2 iapService = AmazonIapV2Impl.Instance;

// 入力なしで同期オペレーションを呼び出します
RequestOutput requestOutput = iapService.VerifyLicense();

LicenseReponse

新しいイベントハンドラーを追加し、LicenseResponseListenerに登録します。

using com.amazon.device.iap.cpt;

// プラグインとのやり取りに使用するオブジェクトを取得します
IAmazonIapV2 iapService = AmazonIapV2Impl.Instance;


// イベントハンドラーを定義します
void EventHandler(LicenseResponse response)
{
        string staus = response.getStatus();
        switch (status) {
        case LICENSED:
            Log.d(TAG, "LicenseResponseステータス: " + status);
            break;
        case NOT_LICENSED:
            Log.d(TAG, "LicenseResponseステータス: " + status);
        case EXPIRED:
            Log.d(TAG, "LicenseResponseステータス: " + status);
            break;
        case ERROR_VERIFICATION:
            Log.d(TAG, "LicenseResponseステータス: " + status);
        case ERROR_INVALID_LICENSING_KEYS:
            Log.d(TAG, "LicenseResponseステータス: " + status);
        case UNKNOWN_ERROR:
            Log.d(TAG, "LicenseResponseステータス: " + status);
 }

 // イベントハンドラーを登録します
 iapService.AddLicenseResponseListener(EventHandler);

LicenseResponseは、VerifyLicense呼び出しのレスポンスを返します。