FOP dengan token
Ringkasan
FOP (Metode Pembayaran) token adalah salah satu jenis integrasi pembayaran ke dalam Platform Pembayaran. Agar pengguna dapat melakukan pembayaran dengan FOP ini, Google dan integrator Pembayaran harus melakukan pertukaran kredensial identitas akun satu kali. Proses ini pada gilirannya akan melalui alur pembuatan token, yang mewakili bentuk pembayaran tersebut untuk pengguna tertentu. Token ini kemudian dapat digunakan untuk pembayaran berulang kali. Saat ini ada 2 versi untuk API ini. Versi 2 mendukung operator seluler dan penyedia nomor referensi. Semua penyedia FOP dengan token lainnya harus menerapkan versi 1. Bagian lainnya dalam dokumen ini difokuskan pada versi 1.
Google menggunakan dua alur untuk menetapkan identitas dan membuat token ini:
- Alur autentikasi: Mengidentifikasi dan memverifikasi (mengautentikasi) pengguna.
- Alur asosiasi: Menetapkan token untuk pengguna (baru atau yang sebelumnya telah diidentifikasi dan diautentikasi). Token ini mewakili metode pembayaran tertentu oleh pengguna tertentu. Token tersebut kemudian dapat digunakan dalam pembelian mendatang.
Setelah token dibuat, Google akan menggunakannya selama alur pembelian untuk pengalaman checkout yang cepat dan lancar bagi pengguna. Google menggunakan token ini untuk mewakili instance metode pembayaran oleh pelanggan. Hal ini juga disebut sebuah instrumen. Pelanggan Google mungkin memiliki lebih dari satu instrumen untuk membayar barang dan layanan.
Terakhir, semua pergerakan uang antara bank integrator dan bank Google dilakukan dalam alur pengiriman.
![]() |
![]() |
![]() |
![]() |
![]() |
Diagram ini mengilustrasikan gambaran umum alur:
Ringkasan FOP dengan token
Secara umum, menambahkan layanan Anda sebagai metode pembayaran ke produk Google melibatkan alur berikut:
Alur ini dijelaskan secara lebih mendetail di bagian di bawah, dan bahkan secara lebih mendetail di bagian panduan.
Konsep dan terminologi
Simbol & Konvensi
Kata kunci "HARUS", "TIDAK BOLEH", "WAJIB", "SHALL", "TIDAK BOLEH", "SEHARUSNYA," "TIDAK BOLEH", "DIREKOMENDASIKAN", "MEI", dan "OPSIONAL" dalam dokumen ini akan ditafsirkan sebagaimana dijelaskan dalam RFC 2119.
Stempel waktu
Semua stempel waktu direpresentasikan sebagai milidetik sejak Unix epoch (1 Januari 1970) dalam UTC.
Contoh:
- 23 April 2019 20.23.25 GMT = 1556051005000 milidetik
- 16 Agustus 2018 12.28.35 GMT = 1534422515000 milidetik
Jumlah
Nilai uang dalam API ini menggunakan format yang disebut "mikro", sebagai standar di Google. Mikro adalah format presisi tetap berbasis bilangan bulat. Untuk mewakili nilai uang dalam mikro, kalikan nilai mata uang standar dengan 1.000.000.
Contoh:
- USD$1,23 = 1230000 micro USD
- USD$0,01 = 10000 micro USD
Idempotensi
Semua panggilan metode dalam API ini harus memiliki perilaku idempoten. Google akan secara sporadis mencoba kembali permintaan untuk memastikan bahwa transaksi berada dalam status yang sama di kedua sisi. Integrator tidak boleh mencoba memproses ulang permintaan apa pun yang sudah berhasil diproses. Respons untuk pemrosesan yang berhasil harus dilaporkan. Semua metode memiliki RequestHeader
umum yang berisi requestId. requestId ini adalah kunci idempotency untuk semua panggilan.
Semua respons non-terminal (non-HTTP 200-sukses), tidak boleh diproses secara idempoten. Jadi, permintaan yang sebelumnya mendapatkan 400 (permintaan buruk/prakondisi gagal), saat dipanggil untuk kedua kalinya, tidak boleh mengembalikan 400 secara idempoten, permintaan tersebut harus dievaluasi ulang. Saat dievaluasi ulang, error tersebut dapat menampilkan nilai 400 atau berhasil diproses.
Untuk informasi selengkapnya tentang idempotency, lihat panduan detail ini.
Integrator
Perusahaan yang menggunakan Platform Pembayaran Google untuk bisnisnya. Organisasi ini bisa berupa bisnis internal (pihak pertama), seperti YouTube atau AdWords. Atau pihak ketiga (pihak ketiga) yang ingin mengintegrasikan layanan mereka agar dapat digunakan dengan ekosistem Google.
Metode pembayaran
Metode Pembayaran. Cara ini lebih umum dibandingkan instrumen. Visa, MasterCard, dan PayPal semuanya FOP.
Instrumen
Instance tertentu dari metode pembayaran oleh pelanggan tertentu. Misalnya, kartu kredit pengguna atau akun PayPal mereka. FOP dengan token untuk pelanggan tertentu juga merupakan instrumen, karena ini merupakan instance metode pembayaran untuk pelanggan tersebut, yang disimpan dengan aman di sistem kami.
Token
Representasi, di sistem Google, tentang metode pembayaran pengguna tertentu. Karena berisi semua informasi yang diperlukan untuk melakukan pembelian, token juga merupakan instrumen. Informasi ini dapat mencakup informasi seperti nomor rekening yang dimiliki pengguna dengan integratornya.
Alur utama
Alur Autentikasi
Autentikasi adalah alur pertama yang harus dilakukan. Tujuan alur autentikasi adalah mengidentifikasi dan mengautentikasi pengguna ke integrator. Otentikasi dapat dilakukan dengan beberapa cara. FOP dengan token mendukung dua cara untuk mengidentifikasi dan mengautentikasi pengguna:
- Autentikasi OTP SMS-MT (Seluler SMS Dihentikan, Sandi Sekali Pakai)
- Autentikasi Pengalihan
Saat melakukan orientasi, integrator akan bekerja sama dengan Google untuk memilih mekanisme autentikasi yang paling sesuai dengan produk mereka.
Alur autentikasi dapat digunakan dalam dua konteks: pertama, untuk mengidentifikasi pelanggan baru agar dapat melakukan pengaitan, dan kedua, menantang kredensial instrumen yang ada kepada pengguna. Hasil dari alur autentikasi dapat digunakan sebagai input untuk beberapa alur, seperti alur pengaitan, alur token refresh, alur pembelian yang diuji, dan sebagainya. Selain itu, alur autentikasi dapat digunakan dalam mode mandiri, tidak terikat ke alur berikutnya.
Autentikasi OTP SMS-MT
Dalam mekanisme autentikasi ini, pengguna memasukkan nomor telepon di UI Google. Google mengirimkan nomor telepon ini ke integrator (melalui metode sendOtp
). Integrator mengirim {i>password<i} sekali pakai kepada pengguna. Pengguna memasukkan sandi ke UI Google yang akan mengirimkannya ke integrator. Tindakan ini akan memicu respons berhasil dari Integrator Pembayaran.
Jika autentikasi OTP SMS-MT digunakan dalam mode mandiri, nilai OTP akan dikirim ke integrator menggunakan metode verifyOtp
. Metode ini memverifikasi OTP yang diberikan adalah yang dikirim.
Autentikasi Pengalihan
Autentikasi pengalihan terjadi dengan cara Google mengalihkan pengguna ke aplikasi milik integrator. Aplikasi tersebut dapat berupa aplikasi web atau Android.
Pengalihan Android dan Web berperilaku serupa. Google mengalihkan pengguna ke aplikasi integrator. Integrator mengidentifikasi dan mengautentikasi pengguna dalam bentuk apa pun yang paling alami bagi integrator tersebut. Setelah diautentikasi, integrator mengalihkan pengguna kembali ke UI Google untuk menyelesaikan pengaitan. Setelah pengalihan, Google akan menyediakan requestId
untuk mengidentifikasi sesi autentikasi ini. ID tersebut kemudian digunakan sebagai bukti autentikasi identitas selama Atribusi.
Integrator yang memilih alur ini harus memberikan URL autentikasi web karena ini merupakan denominator yang paling umum di semua platform (desktop atau seluler). Namun, autentikasi Android sangat direkomendasikan untuk memberikan pengalaman pengguna terbaik di perangkat seluler.
Bergantung pada konteks perangkat dan aplikasi yang diinstal, UI Google akan memilih pengalihan Aplikasi Android atau web.
Mekanisme otentikasi ini memberi integrator dengan lebih banyak kebebasan. Ada banyak cara untuk mengotentikasi dan mengidentifikasi pengguna. Nama pengguna + sandi, atau informasi biometrik dan pertanyaan keamanan, keduanya merupakan solusi yang tepat. Google tidak bermaksud mendikte cara integrator memverifikasi pengguna. Integrator menangani proses otentikasi pengguna. Dengan cara ini, Google akan memanfaatkan berbagai antarmuka pengguna integrator untuk mengautentikasi pengguna dan hanya memberikan bukti autentikasi kepada Google.
Untuk informasi selengkapnya tentang autentikasi, lihat panduan mendetail ini.
Alur Pengaitan
Setelah alur autentikasi melalui salah satu mekanisme yang disebutkan di atas, pengguna akan melalui alur pengaitan. Tujuan alur pengaitan adalah untuk membuat Token Pembayaran Google (GPT
) agar dapat membuat instrumen. Alur ini melakukan hal berikut:
- Menegosiasikan identitas yang disebut token untuk mewakili pengguna ini.
- Memberikan informasi akun untuk memberi tahu mesin risiko Google.
- Mengumpulkan informasi penyiapan pertama kali yang diperlukan untuk membuat dan membuat
GPT
.
Hasilnya adalah GPT
yang ditetapkan disetujui oleh Google dan integrator.
Hal ini memungkinkan dua pengguna Google untuk berbagi akun pengguna yang sama dengan integrator. Dalam hal ini, setiap pengguna akan memiliki instrumen yang berbeda. Untuk setiap instrumen ada alur pengaitan independen, sehingga GPT
unik.
Ilustrasi ini akan memandu Anda melalui FOP dengan token palsu yang disebut InvisiCash. Langkah ini menunjukkan langkah-langkah yang akan dilalui pengguna untuk alur autentikasi dan alur pengaitan.
Ringkasan alur pengaitan
- Seorang pengguna Google dengan alamat email sf@gmail.com ingin menambahkan akun InvisiCash-nya ke Google Play Store agar dapat menggunakannya untuk melakukan pembelian.
- Google Play Store akan membuka aplikasi InvisiCash untuk melakukan autentikasi.
Pengguna tersebut login ke akun InvisiCash-nya dengan alamat email sally@otheremail.com. Mungkin ia menggunakan alamat email Gmail untuk keduanya jika itu adalah login untuk akun InvisiCash-nya.
Aplikasi InvisiCash mengirimkan ID autentikasi kembali ke Google Play Store.
Google Play Store mengirimkan ID autentikasi ke Server Google.
Server Google mengirim pesan ke server InvisiCash untuk mengaitkan akun. Pengaitan ini mencakup ID Autentikasi,
GPT
(Token Pembayaran Google), dan ID pengaitan.Server InvisiCash menyimpan Token Pembayaran Google (
GPT
), dan ID pengaitan. Keduanya sekarang terkait dengan akun InvisiCash Sally.InvisiCash menyetujui pengaitan ini. Kemudian, Server Google membuat instrumen yang dapat digunakan untuk pembelian di masa mendatang.