API Top Up APK Android

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

Activity.RESULT_OK
Penambahan saldo berhasil.
Activity.RESULT_CANCELED Pengguna membatalkan alur secara manual dan alur harus dibatalkan.
Activity.RESULT_FIRST_USER Penambahan saldo gagal karena alasan fatal dan alurnya harus dibatalkan. Server IE mengembalikan respons HTTP 500 saat masuk.

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.