Android APK チャージ API

チャージは、次の 3 つの異なる環境で行われます。

  • 決済インテグレータの Android アプリ
  • 決済事業者のモバイルサイト
  • 決済事業者の PC 用ウェブサイト

いずれのフローでも、Google はユーザーの操作を支払い処理チームに引き渡します。 統合しています決済インテグレータが使い慣れた UI を実装 プロビジョニングする必要がありますが、フローは お客様の残高。つまり、お客様にチャージ プロセスをご案内する必要があります 汎用の UI にドロップするよりも、 チャージフローに進みます

インテグレータはすべてのフローで TopUpRedirectResponse.この回答は署名され、送信されます Google に返します。

モバイルサイトとパソコン向けウェブサイトは、 Web Top Up API の仕様 Android アプリのフローは Android Top Up API の仕様に従う必要があります。

インテグレータは、ユーザーを認証するために Android APK ソリューションを実装する必要がある その後、残高をチャージできるフローをご案内してください。この チャージは別のモダリティですが、 ウェブチャージ

ユーザーが決済インテグレータ アプリのフローに Android のアクティビティ: チャージ インテントは、ユーザーが操作している Play アプリから直接呼び出すことができます。 選択します特定の Google Play の残高で Android が Play を終了 背景情報があるため、インテグレータは以下の情報を含める必要があります。 クリックします。

<item name="android:windowIsTranslucent">true</item>

メソッドの定義

インテントには次のプロパティが必要です。

メソッドのプロパティ
アクション com.google.android.payments.standard.TOPUP_V1
カテゴリ android.intent.category.DEFAULT

リクエスト

フィールド
gspTopUpRequest TopUpRedirectRequest

チャージ リクエスト。

gspAssociationId string

インテグレータが認証情報を検索するために使用する識別子が含まれています 。これは関連付け ID です。 AssociateAccountRequest のアカウントのリンク時に送信されます。

レスポンス

ユーザーがチャージ フローを完了したら、アプリケーションは Google に返されます。チャージが正常に完了したら、インテントを作成し、 暗号化されたエンコードされた gspTopUpResponse と redirectRequestId をエクストラとして追加する。次に、アクティビティを設定します。 返すことができます。

...
result.setExtra("gspTopUpResponse", gspTopUpResponse);
result.setExtra("redirectRequestId", redirectRequestId);
setResult(Activity.RESULT_OK, result);
...
finish();

結果

フィールド
件の結果 int

Activity.RESULT_OK
チャージが完了しました。
Activity.RESULT_CANCELED ユーザーが手動でフローをキャンセルしたので、フローを中止する必要があります。
Activity.RESULT_FIRST_USER 致命的な理由でチャージが失敗したため、フローを 中止されました。IE サーバーからログイン時に HTTP 500 応答が返されました。

その他

フィールド
gspTopUpResponse TopUpRedirectResponse

必須: チャージ応答。エンコードされた値は 1 KB を超えないようにする必要があります。
redirectRequestId string

必須: 元の(開始したリダイレクト)支払いリクエストで送信された requestId。Google は、これが送信された requestId と一致することを検証します。一致しない場合、完全なリダイレクト フローは失敗します。

その他のアクティビティ要件

上記の TOPUP_V1 アクションをサポートするアクティビティは、 また、API の呼び出し元が、Google によって署名されたアプリケーションからのみ発生することも確認します。 これにより、他のアプリがアクティビティを呼び出そうとしたり、 取得します。これを行うには、 直後の StandardPaymentUtils.verifyCallingActivityIsGoogleSigned 次の期間内: super.onCreate アクティビティ 説明します。

サンプルは以下のとおりです。


@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);

  ....
}

チャージ フロー内で呼び出されるすべてのアクティビティでアクティビティを供給する必要がある windowIsTranslucent=true を含むテーマ。その際は、 AndroidManifest android:theme 属性が使用され、Context.setTheme() が使用されていない。 プログラムによるテーマの設定がウィンドウで正しく機能しない できます。Google は、最初に起動されるアクティビティがこれに従うことを強制します。 起動されるサブアクティビティもこのパターンに従う パターンです。使用されていない場合、サードパーティ デベロッパーからの購入が動作しない可能性があります。