Penambahan saldo dapat terjadi di tiga lingkungan berbeda:
- Aplikasi Android integrator pembayaran
- Situs seluler integrator pembayaran
- Situs desktop integrator pembayaran
Terlepas dari alurnya, Google menyerahkan interaksi pengguna ke tim software integrator ini. Integrator pembayaran menerapkan UI yang familier kepada pengguna, tetapi alurnya harus didedikasikan khusus untuk menambah saldo pengguna, yang berarti pengguna harus diarahkan melalui proses penambahan saldo alih-alih dimasukkan ke UI tujuan umum di mana mereka diharapkan lebih lanjut ke alur penambahan saldo.
Semua alur menghasilkan integrator yang menghasilkan TopUpRedirectResponse. Respons ini ditandatangani dan dikirim kembali ke Google.
Situs seluler dan desktop harus mengikuti Spesifikasi Web Top Up API, sedangkan alur Aplikasi Android harus mengikuti Spesifikasi Android Top Up API.
Integrator harus menerapkan solusi APK Android untuk mengautentikasi pengguna lalu mengarahkan mereka melalui alur di mana mereka dapat menambah saldo. Ini adalah modalitas yang berbeda, tetapi tujuan yang sama dengan penambahan saldo tindakan Penambahan saldo di web.
Pengguna memasuki alur pada aplikasi integrator pembayaran melalui Aktivitas Android. Intent penambahan saldo bisa dipanggil langsung dari aplikasi Play tempat pengguna berniat untuk melakukan pembelian. Untuk mencegah Android menghentikan Play di latar belakang selama penambahan saldo, integrator perlu menyertakan hal-hal berikut dalam tema aktivitas.
<item name="android:windowIsTranslucent">true</item>
Definisi metode
Intent harus memiliki properti berikut:
Properti metode | |
---|---|
Tindakan |
com.google.android.payments.standard.TOPUP_V1 |
Kategori | android.intent.category.DEFAULT |
Permintaan
Kolom | |
---|---|
gspTopUpRequest
|
TopUpRedirectRequest
Permintaan penambahan saldo. |
gspAssociationId
|
string
Berisi ID yang digunakan integrator untuk mencari kredensial untuk akun yang sedang ditambah. Ini adalah ID asosiasi yang dikirim selama penautan akun di AssociateAccountRequest. |
Respons
Setelah pengguna menyelesaikan alur penambahan saldo, aplikasi Anda perlu mengirim intent kembali ke Google. Jika penambahan saldo berhasil, buat intent dan menambahkan gspTopUpResponse dan redirectRequestId yang dienkode dan dienkripsi sebagai tambahan. Berikutnya, tetapkan aktivitas ke kode hasil yang sesuai.
...
result.setExtra("gspTopUpResponse", gspTopUpResponse);
result.setExtra("redirectRequestId", redirectRequestId);
setResult(Activity.RESULT_OK, result);
...
finish();
Hasil
Kolom | |||||||
---|---|---|---|---|---|---|---|
hasil |
int
|
Konten bonus
Kolom | |
---|---|
gspTopUpResponse |
TopUpRedirectResponse
WAJIB: Respons penambahan saldo. Nilai yang dienkode ini tidak boleh lebih dari 1 KB. |
redirectRequestId |
string WAJIB: requestId yang dikirim dalam permintaan pembayaran pengalihan asli/memulai. Google akan memverifikasi bahwa ini cocok dengan requestId yang dikirim, dan alur Pengalihan Lengkap akan gagal jika tidak cocok.
|
Persyaratan aktivitas lainnya
Aktivitas yang mendukung tindakan TOPUP_V1
yang disebutkan di atas harus
periksa juga apakah pemanggil API hanya berasal dari aplikasi yang ditandatangani Google.
Ini akan membantu mencegah aplikasi lain mencoba memanggil aktivitas Anda dan
mengambil data pengguna. Hal ini dapat dilakukan dengan menggunakan
StandardPaymentUtils.verifyCallingActivityIsGoogleSigned
tepat setelahnya
super.onCreate
dalam
Aktivitas
terlepas dari implementasi layanan.
Berikut sebuah contoh:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);
....
}
Semua aktivitas yang dipanggil dalam alur penambahan saldo harus menyediakan aktivitas
tema yang memiliki windowIsTranslucent=true
. Hal ini harus dilakukan dengan
Atribut android:theme AndroidManifest dan tidak menggunakan Context.setTheme()
.
Secara terprogram, setelan tema tidak berfungsi dengan benar untuk jendela
dan transparan. Google akan menetapkan bahwa aktivitas pertama yang diluncurkan mengikuti ketentuan ini
tetapi setiap subaktivitas yang juga diluncurkan juga harus mengikuti
pola. Jika tidak, pembelian dari developer pihak ketiga mungkin tidak akan berhasil.