Google Wallet API memungkinkan pengguna Anda menambahkan objek ke Google Wallet dari web. Pengguna dapat menambahkan kartu mereka langsung dari situs Anda.
Referensi ini memberikan detail tentang elemen HTML g:savetoandroidpay
yang merender tombol Google Wallet API serta Token Web JSON yang mendeskripsikan layanan web Anda kepada Google.
JavaScript API Google Wallet
Untuk secara otomatis mengurai tag HTML g:savetoandroidpay
saat dimuat, sertakan JavaScript standar
<script src="https://apis.google.com/js/platform.js" type="text/javascript"></script>
Untuk aplikasi AJAX dan rendering eksplisit tombol Google Wallet API, sertakan parameter "parsetags": "explicit"
.
<script src="https://apis.google.com/js/platform.js" type="text/javascript"> {"parsetags": "explicit"} </script>
g:savetoandroidpay
tag HTML
Tag namespace g:savetoandroidpay
menentukan
penempatan dan berbagai atribut tombol Tambahkan ke
Google Wallet. Gunakan tag ini jika Anda merender HTML dan JWT
sisi server.
<g:savetoandroidpay jwt="JWT" onsuccess="successHandler" onfailure="failureHandler" />
Kolom | Jenis | Wajib | Deskripsi |
---|---|---|---|
height |
String | N | Tinggi tombol yang akan ditampilkan. Nilai yang mungkin adalah: small (tinggi 30 piksel) dan
standard (tinggi 38 piksel). Secara default, height ditetapkan ke small .
Lihat tombol Google Wallet API
untuk melihat contoh tombol dengan setelan height yang berbeda. |
jwt |
String | Y | JWT Google Wallet API. |
onsuccess |
String | N | Nama string fungsi pengendali callback yang berhasil menyimpan. |
onfailure |
String | N | Nama string fungsi pengendali callback kegagalan penyimpanan. Fungsi ini menerima objek error yang berisi errorCode dan errorMessage. |
onprovidejwt |
String | N | Nama string dari fungsi pengendali JWT yang disediakan. Tujuan dari fungsi ini adalah untuk mencegat dan berpotensi memanipulasi data JWT sebelum objek ditambahkan ke Google Wallet.
Fungsi ini tidak menggunakan parameter dan harus menampilkan JWT sebagai String.
Saat menerapkan pengendali peristiwa, data JWT asli dapat diambil
pada kolom this.getOpenParams().renderData.userParams.jwt . |
size |
String | N | Lebar tombol untuk ditampilkan. Anda dapat menetapkan size ke matchparent
agar lebarnya cocok dengan lebar elemen induk. Atau, biarkan size
tidak ditentukan agar lebar direntangkan agar sesuai dengan lebar setelan text .
Lihat tombol Google Wallet API
untuk melihat contoh tombol dengan setelan size yang berbeda. |
text |
String | N | Tidak digunakan lagi |
textsize |
String | N | Jika textsize=large ditentukan, akan menampilkan
ukuran teks dan ukuran tombol yang meningkat
drastis, untuk kasus dengan persyaratan UI khusus. |
theme |
String | N | Tema tombol yang akan ditampilkan. Nilai yang mungkin adalah: dark dan
light . Tema default-nya adalah dark . Lihat
tombol Google Wallet API
untuk melihat contoh tombol dengan setelan theme yang berbeda. |
JWT Google Wallet API
JWT Google Wallet API mendefinisikan objek dan class yang akan disimpan.
Representasi JSON
{ "iss": "example_service_account@developer.gserviceaccount.com", "aud": "google", "typ": "savetowallet", "iat": 1368029586, "payload": { "eventTicketClasses": [{ ... //Event ticket Class JSON }], "eventTicketObjects": [{ // Event ticket Object JSON }], "flightClasses": [{ // Flight Class JSON }], "flightObjects": [{ // Flight Object JSON }], "giftCardClasses": [{ // Gift card Class JSON }], "giftCardObjects": [{ // Gift card Object JSON }], "loyaltyClasses": [{ // Loyalty Class JSON }], "loyaltyObjects": [{ // Loyalty Object JSON }], "offerClasses": [{ // Offer Class JSON }], "offerObjects": [{ // Offer Object JSON }], "transitClasses": [{ // Transit Class JSON }], "transitObjects": [{ // Transit Object JSON }] }, "origins": ["http://baconrista.com", "https://baconrista.com"] }
Kolom
Kolom | Jenis | Wajib | Deskripsi |
---|---|---|---|
iss |
String | Y | Alamat email yang dibuat oleh akun layanan Google Cloud Anda. |
aud |
String | Y | Audiens. Audiens untuk Objek Google Wallet API akan selalu berupa
google . |
typ |
String | Y | Jenis JWT. Audiens untuk Objek Google Wallet API akan selalu berupa
savetowallet . |
iat |
Bilangan Bulat | Y | Diterbitkan pada waktu dalam hitungan detik sejak epoch. |
payload |
Objek | Y | Payload. |
payload.eventTicketClasses |
Array | N | Kelas Tiket Acara untuk disimpan. |
payload.eventTicketObjects |
Array | N | Objek Tiket Acara untuk disimpan. |
payload.flightClasses |
Array | N | untuk disimpan di Kelas Penerbangan. |
payload.flightObjects |
Array | N | Objek Penerbangan untuk disimpan. |
payload.giftCardClasses |
Array | N | Kelas Kartu Voucher untuk disimpan. |
payload.giftCardObjects |
Array | N | Objek Kartu Voucher untuk disimpan. |
payload.loyaltyClasses |
Array | N | Kelas Loyalitas untuk disimpan. |
payload.loyaltyObjects |
Array | N | Objek Loyalitas untuk disimpan. |
payload.offerObjects |
Array | N | Objek Penawaran untuk disimpan. |
payload.offerClasses |
Array | N | Tawarkan Kelas agar lebih hemat. |
payload.transitObjects |
Array | N | Objek Transportasi Umum untuk disimpan. |
payload.transitClasses |
Array | N | Class Transit untuk disimpan. |
origins |
Array | Y | Array domain yang akan disetujui untuk fungsi penyimpanan JWT. Tombol Google Wallet API
tidak akan dirender jika kolom origins tidak ditentukan. Anda berpotensi mendapatkan pesan "Load denied by X-Frame-Options" atau "Ditolak untuk menampilkan" di
konsol browser jika kolom asal tidak ditentukan. |
JWT yang dienkode akan terlihat seperti contoh berikut:
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJnb29nbGUiLCJvcmlnaW5zIjpbImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsImh0dHA6Ly93d3cuZ29vZ2xlLmNvbSJdLCJpc3MiOiJzMmFwLXRvb2wuZ29vZ2xlLmNvbUBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20iLCJpYXQiOjE1NTE5ODcxNTEsInR5cCI6InNhdmV0b3dhbGxldCIsInBheWxvYWQiOnsib2ZmZXJPYmplY3RzIjpbeyJpZCI6IjMyMDI0MTMyNDE4NDM2OTk0MDEuMDFfT2ZmZXJPYmplY3RJZCJ9XX19.maHX40WWT29TC_kEb90EKQBH9AiTYAZR3153K8UI7fznVnfjVdlwsH_GKTECV3PGXdNnKCcmatUbKsONC0bxrnAHYG02kuvA1D3hSctz_amU66ntsvGIDe13mpxTzhI8fPvt9KMP1iaO7uOJuLQIHwipu4uRFAjyFaHGVaSFaP9c53qQyb_Zgyyk50M-MhH2n4kDpstNCqUJKWaadQkOWjrtMjwGzQ_ME04lbR4wb_mfK1A7Rc1UieWkxM9aMl5TOPubBKxKRRk_CqillN8XoTl9MI5RRGPuElVO28zGpYlFS6BarzDaaUfmbRZGvfF8ZiKrHZKxVrJjfZIJ2TCcDw
Fungsi gapi.savetoandroidpay.render
Fungsi ini memungkinkan Anda merender tombol Google Wallet API secara eksplisit.
gapi.savetoandroidpay.render("dom-container",{ "jwt": "JWT", "onsuccess": "successHandler", "onfailure": "failureHandler" });
Kolom | Jenis | Wajib | Deskripsi |
---|---|---|---|
dom-container |
String | Y | ID penampung untuk menempatkan tombol Google Wallet API. |
jwt |
String | Y | JWT menentukan konten yang akan disimpan. |
onsuccess |
String | N | Nama string fungsi pengendali callback yang berhasil menyimpan. |
onfailure |
String | N | Nama string fungsi pengendali callback kegagalan penyimpanan. Fungsi ini menerima objek error yang berisi errorCode dan errorMessage. |
onprovidejwt |
String | N | Nama string dari fungsi pengendali JWT yang disediakan. Tujuan dari fungsi ini adalah untuk mencegat dan berpotensi memanipulasi data JWT sebelum objek ditambahkan ke Google Wallet.
Fungsi ini tidak menggunakan parameter dan harus menampilkan JWT sebagai String.
Saat menerapkan pengendali peristiwa, data JWT asli dapat diambil
pada kolom this.getOpenParams().renderData.userParams.jwt . |
Pesan dan kode error Google Wallet API
Tabel berikut mencantumkan kode error dan pesan error default yang diteruskan dalam objek error ke fungsi callback kegagalan, saat sebuah objek tidak berhasil disimpan menggunakan tombol JavaScript.
{ "errorCode": "errorCode", "errorMessage": "errorMessage" }
errorCode |
errorMessage |
---|---|
SERVICE_FAILURE |
Terjadi kesalahan pada server Google Wallet. |
CLASS_NOT_FOUND |
Class yang direferensikan dalam objek tidak ditemukan. |
CLASS_MISMATCH |
Objek harus ada, dengan jenis yang sama, dan harus mereferensikan class tertutup. |
ORIGIN_MISMATCH |
Asal tombol tidak cocok dengan yang ditentukan dalam daftar origin. |
INVALID_NUM_TYPES |
Hanya satu jenis objek yang dapat ditentukan. |
INVALID_SIGNATURE |
Tanda tangan tidak dapat diverifikasi. |
INVALID_DUPLICATE_IDS |
Objek atau class duplikat tidak diperbolehkan. |
INVALID_JWT |
JWT tidak valid. |
INVALID_EXP_IAT |
JWT sudah tidak berlaku atau diterbitkan pada masa mendatang. |
INVALID_AUD |
Nilai untuk kolom AUD tidak valid. |
INVALID_TYP |
Nilai untuk bidang TYP tidak valid. |
INVALID_NUM_OBJECTS |
Hanya satu objek dan maksimal satu kelas dapat ditentukan untuk kartu loyalitas, kartu voucher, dan penawaran. |
MALFORMED_ORIGIN_URL |
Format URL asal salah. URL harus berisi protokol dan domain. |
MISSING_ORIGIN |
Asal harus ditentukan. |
MISSING_FIELDS |
Objek atau class tertutup tidak memiliki kolom wajib diisi. |
Pelokalan
Bahasa di tombol JavaScript berubah berdasarkan kriteria berikut:
- Jika pengguna login ke Google, tombol akan dirender dalam bahasa pilihan yang ditetapkan dalam profil Akun Google pengguna. Pengguna dapat membaca Ubah bahasa untuk mempelajari cara mengubah bahasa pilihan Akun Google.
- Jika pengguna tidak login ke Google, tombol akan menggunakan nilai
ACCEPT-LANGUAGE
di header HTTP.
Jika Anda melihat tombol tidak dirender dalam bahasa yang benar berdasarkan logika di atas, atau jika kata-katanya tidak wajar, hubungi tim dukungan kami.