Nội dung cập nhật đối với hành vi của sự kiện CanMakePayment của API Trình xử lý thanh toán

API Trình xử lý thanh toán cho phép các nhà cung cấp dịch vụ thanh toán cung cấp trải nghiệm thanh toán tuỳ chỉnh của họ cho người bán, cùng với API Yêu cầu thanh toán. Khi API Yêu cầu thanh toán được khởi tạo thông qua hàm khởi tạo new PaymentRequest(), API này sẽ tự kích hoạt một sự kiện canmakepayment có nguồn gốc của người bán và dữ liệu tuỳ ý cho một trình chạy dịch vụ đã đăng ký API Trình xử lý thanh toán. Hoạt động giao tiếp nhiều nguồn gốc này không yêu cầu cử chỉ của người dùng và không hiển thị bất kỳ giao diện người dùng nào.

Chrome sẽ xoá các trường nhận dạng khỏi sự kiện canmakepayment và bắt đầu chạy bản dùng thử theo nguyên gốc từ Chrome 108.

Thông tin trên trang này chỉ áp dụng cho các nhà cung cấp ứng dụng thanh toán có sử dụng API Trình xử lý thanh toán. Nếu không sử dụng, bạn có thể bỏ qua các hướng dẫn này.

Điều gì sẽ thay đổi?

Khi người bán gọi new PaymentRequest(), một trình chạy dịch vụ đã đăng ký sẽ nhận được sự kiện canmakepayment (CanMakePaymentEvent) chứa các thông tin sau:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

Chúng sẽ bị xoá và trình chạy dịch vụ sẽ chỉ nhận được sự kiện canmakepayment mà không có thêm thông tin nào khác.

Phát hiện tính năng

Để phát hiện xem sự kiện canmakepayment có bị thay đổi trong mã trình chạy dịch vụ hay không, hãy kiểm tra các thuộc tính tương ứng như sau:

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

Thử thay đổi cục bộ

Cách áp dụng thay đổi cục bộ cho mục đích phát triển:

  1. Sử dụng Chrome 108, 109 hoặc 110.
  2. Nhập chrome://flags/#clear-identity-in-can-make-payment vào thanh URL.
  3. Bật cờ.
  4. Chạy lại Chrome.

Khi bạn bật cờ này, các trường nhận dạng trong sự kiện canmakepayment sẽ bị làm trống (và Ý định IS_READY_TO_PAY của Android).

Cho phép thay đổi trong phiên bản chính thức

Bạn cũng có thể bật thay đổi trong phiên bản chính thức cho mục đích kiểm thử trước khi thực sự chuyển đến Chrome. Cơ chế này được gọi là bản dùng thử theo nguyên gốc.

Bản dùng thử theo nguyên gốc cho phép bạn dùng thử các tính năng mới và đưa ra ý kiến phản hồi về khả năng hữu dụng, tính thực tiễn và tính hiệu quả của các tính năng đó cho cộng đồng tiêu chuẩn web. Để biết thêm thông tin, hãy xem Hướng dẫn về bản dùng thử theo nguyên gốc dành cho nhà phát triển web. Để đăng ký dùng thử theo nguyên gốc này hoặc một bản dùng thử theo nguyên gốc khác, hãy truy cập vào trang đăng ký.

Cách đăng ký bản dùng thử theo nguyên gốc:

  1. Yêu cầu mã thông báo cho nguồn gốc của bạn.
  2. Thêm mã thông báo vào tệp JavaScript của trình chạy dịch vụ bằng cách sử dụng tiêu đề HTTP Origin-Trial. Việc đặt tiêu đề HTTP yêu cầu quyền truy cập để định cấu hình máy chủ của bạn. Tiêu đề phản hồi nhận được sẽ có dạng như sau:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

Để xem mã dùng thử theo nguồn gốc trên tệp trình chạy dịch vụ, hãy sử dụng Công cụ cho nhà phát triển hoặc lệnh curl như sau:

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

Bật lại các trường nhận dạng trên thiết bị sau Chrome 111

Nếu bạn đang sử dụng Chrome 111 trở lên, thì các trường nhận dạng trong sự kiện canmakepayment sẽ bị để trống. Để bật lại các trường đó một cách cục bộ, bạn có thể làm như sau:

  1. Sử dụng Chrome 111 trở lên.
  2. Nhập chrome://flags/#add-identity-in-can-make-payment vào thanh URL.
  3. Bật cờ.
  4. Chạy lại Chrome.

Các bước tiếp theo

Thay đổi này dự kiến sẽ được bật theo mặc định trên Chrome 111. Bạn có thể bắt đầu kiểm thử ngay hôm nay để chuẩn bị cho sự thay đổi kịp thời ra mắt.