チャージは、次の 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
|
その他
フィールド | |
---|---|
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 は、最初に起動されるアクティビティがこれに従うことを強制します。
起動されるサブアクティビティもこのパターンに従う
パターンです。使用されていない場合、サードパーティ デベロッパーからの購入が動作しない可能性があります。