API Autentikasi APK Android

Otentikasi 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 dapat memilih untuk menunjukkan kepada pengguna atau langsung kembali jika sudah memiliki data yang sesuai. Semua alur menghasilkan integrator yang menghasilkan AuthenticationResponse. Ini respons akan ditandatangani dan dikirim kembali ke Google.

Situs seluler dan desktop harus mengikuti WebRedirect Authentication API Spesifikasi, sedangkan alur Aplikasi Android harus mengikuti Android Spesifikasi Authentication API.

Integrator harus menerapkan solusi APK Android untuk mengautentikasi pengguna. Otentikasi ini adalah modalitas yang berbeda, tetapi tujuan yang sama dengan yang disediakan oleh server autentikasi.

Pengguna mengautentikasi dengan integrator pembayaran melalui perangkat Android Aktivitas. Intent autentikasi dipanggil selama pengaitan akun dan selama tantangan-pengguna. Untuk mencegah Android menghentikan Play di selama otentikasi, integrator perlu menyertakan berikut ini dalam tema aktivitas.

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

Definisi metode

Intent harus memiliki properti berikut:

Properti metode
Tindakan com.google.android.payments.standard.AUTHENTICATE_V1
Kategori android.intent.category.DEFAULT

Permintaan

Kolom
gspAuthenticationRequest AuthenticationRequest

Permintaan autentikasi.

gspAssociationId string

Jika ada, file ini berisi pengidentifikasi yang digunakan integrator untuk mencari kredensial yang lengkap bagi pengguna yang ditantang. Jika tidak ada, pengguna memiliki opsi untuk mengubah identifikasi akun.

Respons

Setelah pengguna menyelesaikan autentikasi, aplikasi Anda perlu mengirimkan hasil maksud kembali ke Google. Jika autentikasi berhasil, buat intent dan tambahkan {i>gspAuthenticationResponse <i}yang dienkode dan dienkripsi sebagai tambahan. Selanjutnya, tetapkan hasil aktivitas ke kode hasil yang sesuai.

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

Hasil

Kolom
hasil int

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

Konten bonus

Kolom
gspAuthenticationResponse AuthenticationResponse

Respons autentikasi. Nilai yang dienkode ini tidak boleh lebih dari 1 KB.

Persyaratan aktivitas lainnya

Aktivitas yang mendukung tindakan AUTHENTICATE_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 akan mengambil token identitas. Hal ini dapat dilakukan dengan menggunakan StandardPaymentUtils.verifyCallingActivityIsGoogleSigned tepat setelah 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 authenticate 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.