Pembaruan pada perilaku peristiwa CanMakePayment dari Payment Handler API

Payment Handler API memungkinkan penyedia pembayaran menyediakan pengalaman pembayaran kustom mereka untuk penjual, bersama dengan Payment Request API. Saat Payment Request API diinisialisasi melalui konstruktor new PaymentRequest(), API tersebut akan memicu peristiwa canmakepayment secara diam-diam dengan origin penjual dan data arbitrer ke service worker yang terdaftar untuk Payment Handler API. Komunikasi lintas origin ini tidak memerlukan gestur pengguna dan tidak menampilkan antarmuka pengguna.

Chrome akan menghapus kolom identifikasi dari peristiwa canmakepayment dan memulai uji coba origin dari Chrome 108.

Informasi di halaman ini hanya berlaku untuk penyedia aplikasi pembayaran yang menggunakan Payment Handler API. Jika tidak menggunakannya, Anda dapat melewati petunjuk ini.

Apa yang berubah?

Saat penjual memanggil new PaymentRequest(), service worker terdaftar menerima peristiwa canmakepayment (CanMakePaymentEvent) yang berisi informasi berikut:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

Header ini akan dihapus dan pekerja layanan hanya akan menerima peristiwa canmakepayment tanpa informasi tambahan.

Deteksi fitur

Untuk mendeteksi apakah peristiwa canmakepayment berubah dalam kode service worker, periksa properti masing-masing seperti berikut:

self.addEventListener(e => {
  if (e.paymentRequestOrigin) {...}
  if (e.topOrigin) {...}
  if (e.methodData && e.methodData.length > 0) {...}
  if (e.modifiers && e.modifiers.length > 0) {...}
  ...
});

Mencoba perubahan secara lokal

Untuk mengaktifkan perubahan secara lokal untuk tujuan pengembangan:

  1. Gunakan Chrome 108, 109, atau 110.
  2. Masukkan chrome://flags/#clear-identity-in-can-make-payment di kolom URL.
  3. Aktifkan tanda.
  4. Luncurkan kembali Chrome.

Dengan mengaktifkan tanda, kolom identitas dalam peristiwa canmakepayment akan dikosongkan (dan Intent IS_READY_TO_PAY Android).

Mengaktifkan perubahan dalam produksi

Anda juga dapat mengaktifkan perubahan dalam produksi untuk tujuan pengujian sebelum perubahan tersebut benar-benar diterapkan di Chrome. Mekanisme ini disebut uji coba origin.

Uji coba origin memungkinkan Anda mencoba fitur baru dan memberikan masukan tentang kegunaan, kepraktisan, dan efektivitasnya kepada komunitas standar web. Untuk informasi selengkapnya, lihat Panduan Uji Coba Origin untuk Developer Web. Untuk mendaftar ke uji coba origin ini atau uji coba origin lainnya, buka halaman pendaftaran.

Untuk mendaftarkan uji coba origin:

  1. Minta token untuk origin Anda.
  2. Tambahkan token ke file JavaScript pekerja layanan Anda menggunakan header HTTP Origin-Trial. Menyetel header HTTP memerlukan akses untuk mengonfigurasi server Anda. Header respons yang dihasilkan akan terlihat seperti:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

Untuk melihat token uji coba origin di file pekerja layanan, gunakan DevTools atau perintah curl seperti berikut:

$ curl --head <Service Worker JS file URL> | grep -i origin-trial
origin-trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

Mengaktifkan kembali kolom identitas secara lokal setelah Chrome 111

Jika Anda menggunakan Chrome 111 atau yang lebih baru, kolom identitas dalam peristiwa canmakepayment akan dibiarkan kosong. Untuk mengaktifkan kembali kolom secara lokal, Anda dapat melakukan hal berikut:

  1. Gunakan Chrome 111 atau yang lebih baru.
  2. Masukkan chrome://flags/#add-identity-in-can-make-payment di kolom URL.
  3. Aktifkan tanda.
  4. Luncurkan kembali Chrome.

Langkah berikutnya

Perubahan ini direncanakan untuk diaktifkan secara default mulai Chrome 111. Anda dapat mulai melakukan pengujian hari ini untuk bersiap menghadapi perubahan waktu peluncuran.