Tombol web JavaScript

Google Wallet API memungkinkan pengguna Anda menambahkan objek ke Google Wallet dari web. Pengguna dapat menambahkan kartunya 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 ke Google.

JavaScript Google Wallet API

Untuk otomatis mengurai tag HTML g:savetoandroidpay saat dimuat, sertakan kolom standar JavaScript

<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>

Tag HTML g:savetoandroidpay

Tag namespace g:savetoandroidpay menentukan dan berbagai atribut tombol Tambahkan ke Tombol Google Wallet. Gunakan tag ini jika Anda merender HTML dan JWT di sisi server.

<g:savetoandroidpay jwt="JWT" onsuccess="successHandler" onfailure="failureHandler" />
Kolom Jenis Wajib diisi Deskripsi
height String T 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 T Nama string fungsi pengendali callback simpan yang berhasil.
onfailure String T Nama string fungsi pengendali callback kegagalan penyimpanan. Fungsi ini diberi objek error yang berisi errorCode dan errorMessage.
onprovidejwt String T Nama string dari fungsi pengendali menyediakan JWT. 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 T Lebar tombol yang akan ditampilkan. Anda dapat menetapkan size ke matchparent agar lebarnya sesuai dengan lebar elemen induk. Atau, keluar dari size tidak ditentukan sehingga lebarnya akan direntangkan agar sesuai dengan lebar setelan text. Lihat tombol Google Wallet API untuk melihat contoh tombol dengan setelan size yang berbeda.
text String T Tidak digunakan lagi
textsize String T Saat textsize=large ditentukan, akan ditampilkan secara dramatis meningkatkan ukuran teks dan ukuran tombol, untuk kasus dengan persyaratan UI khusus.
theme String T Tema tombol yang akan ditampilkan. Kemungkinan nilainya adalah: dark dan light. Tema default-nya adalah dark. Rujuk ke Tombol Google Wallet API untuk melihat contoh tombol dengan setelan theme yang berbeda.

JWT Google Wallet API

JWT Google Wallet API menentukan 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 diisi 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 google.
typ String Y Jenis JWT. Audiens untuk Objek Google Wallet API akan selalu savetowallet.
iat Bilangan Bulat Y Diterbitkan pada waktu dalam hitungan detik sejak epoch.
payload Objek Y Objek payload.
payload.eventTicketClasses Array T Kelas Tiket Acara untuk disimpan.
payload.eventTicketObjects Array T Objek Tiket Acara untuk disimpan.
payload.flightClasses Array T untuk disimpan Kelas Penerbangan.
payload.flightObjects Array T Objek Penerbangan untuk disimpan.
payload.giftCardClasses Array T Kelas Kartu Voucher untuk disimpan.
payload.giftCardObjects Array T Objek Kartu Voucher untuk disimpan.
payload.loyaltyClasses Array T untuk disimpan di Kelas Loyalitas.
payload.loyaltyObjects Array T Objek Loyalitas yang akan disimpan.
payload.offerObjects Array T Tawarkan Objek untuk disimpan.
payload.offerClasses Array T Tawarkan kelas untuk disimpan.
payload.transitObjects Array T Objek Transportasi Umum untuk disimpan.
payload.transitClasses Array T untuk disimpan Kelas Transportasi Umum.
origins Array Y Array domain yang akan disetujui untuk fungsi penyimpanan JWT. Google Wallet API tombol tidak akan dirender jika kolom origins tidak ditentukan. Anda dapat berpotensi mendapatkan pesan "Load denied by X-Frame-Options" atau "Ditolak untuk menampilkan" pesan dalam konsol browser saat kolom origin tidak ditentukan.

JWT Anda 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 diisi Deskripsi
dom-container String Y ID penampung untuk menempatkan tombol Google Wallet API.
jwt String Y JWT yang menentukan konten yang akan disimpan.
onsuccess String T Nama string fungsi pengendali callback simpan yang berhasil.
onfailure String T Nama string fungsi pengendali callback kegagalan penyimpanan. Fungsi ini diberi objek error yang berisi errorCode dan errorMessage.
onprovidejwt String T Nama string dari fungsi pengendali menyediakan JWT. 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.

Kode dan pesan error Google Wallet API

Tabel berikut mencantumkan kode error dan pesan error default yang diteruskan dalam error ke fungsi callback kegagalan, saat objek tidak berhasil disimpan menggunakan tombol JavaScript.

        {
          "errorCode": "errorCode",
          "errorMessage": "errorMessage"
        }
errorCode errorMessage
SERVICE_FAILURE Terjadi kesalahan di server Google Wallet.
CLASS_NOT_FOUND Class yang dirujuk dalam objek tidak ditemukan.
CLASS_MISMATCH Objek harus ada, dari jenis yang sama, dan harus mereferensikan class yang 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 diizinkan.
INVALID_JWT JWT tidak valid.
INVALID_EXP_IAT JWT berakhir atau diterbitkan pada masa mendatang.
INVALID_AUD Nilai untuk kolom AUD tidak valid.
INVALID_TYP Nilai untuk kolom TYP tidak valid.
INVALID_NUM_OBJECTS Hanya satu objek dan maksimal satu class yang 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 Class atau objek tertutup tidak memiliki kolom wajib diisi.

Pelokalan

Bahasa di tombol JavaScript berubah berdasarkan kriteria berikut:

  1. Jika pengguna masuk ke Google, tombol akan dirender dalam bahasa pilihan yang diberikan di profil Akun Google pengguna. Pengguna dapat membaca Mengubah bahasa untuk mempelajari cara mengubah bahasa pilihan Akun Google mereka.
  2. Jika pengguna tidak login ke Google, tombol akan menggunakan nilai ACCEPT-LANGUAGE pada header HTTP.

Jika Anda melihat tombol tidak merender dalam bahasa yang benar berdasarkan logika di atas, atau jika kata-katanya tidak alami, hubungi tim dukungan kami.