به‌روزرسانی رفتار رویداد CanMakePayment در Payment Handler API

Payment Handler API به ارائه‌دهندگان پرداخت اجازه می‌دهد تا تجربه پرداخت سفارشی خود را همراه با API درخواست پرداخت برای بازرگانان در دسترس قرار دهند. هنگامی که Payment Request API از طریق سازنده new PaymentRequest() مقداردهی اولیه می‌شود، بی‌صدا یک رویداد canmakepayment با مبدأ تاجر و داده‌های دلخواه را برای یک سرویس‌کار ثبت‌شده برای Payment Handler API اجرا می‌کند. این ارتباط متقاطع به ژست کاربر نیاز ندارد و هیچ رابط کاربری را نشان نمی دهد.

کروم قرار است فیلدهای شناسایی را از رویداد canmakepayment حذف کند و نسخه آزمایشی اصلی را از Chrome 108 آغاز کند.

اطلاعات موجود در این صفحه فقط برای ارائه دهندگان برنامه پرداخت که از Payment Handler API استفاده می کنند، اعمال می شود. اگر از آن استفاده نمی کنید، می توانید این دستورالعمل ها را نادیده بگیرید.

چه چیزی در حال تغییر است؟

هنگامی که یک تاجر new PaymentRequest() فراخوانی می کند، یک سرویس دهنده ثبت نام شده یک رویداد canmakepayment ( CanMakePaymentEvent ) را دریافت می کند که حاوی اطلاعات زیر است:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

اینها حذف خواهند شد و کارمند خدمات به سادگی رویداد canmakepayment را بدون هیچ گونه اطلاعات اضافی دریافت خواهد کرد.

تشخیص ویژگی

برای تشخیص اینکه آیا رویداد canmakepayment در کد سرویس کارگر تغییر کرده است یا خیر، ویژگی‌های مربوطه را مانند این بررسی کنید:

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

تغییر را به صورت محلی امتحان کنید

برای فعال کردن تغییر به صورت محلی برای اهداف توسعه:

  1. از Chrome 108، 109 یا 110 استفاده کنید.
  2. chrome://flags/#clear-identity-in-can-make-payment را در نوار URL وارد کنید.
  3. پرچم را فعال کنید
  4. Chrome را دوباره راه اندازی کنید.

با فعال کردن پرچم، فیلدهای هویت در رویداد canmakepayment خالی می‌شوند (و Android IS_READY_TO_PAY Intent ).

تغییر در تولید را فعال کنید

همچنین می‌توانید تغییر در تولید را برای اهداف آزمایشی قبل از اینکه واقعاً در Chrome فرود بیاید، فعال کنید. به این مکانیسم آزمایش مبدأ می گویند.

آزمایش‌های مبدأ به شما امکان می‌دهد ویژگی‌های جدید را امتحان کنید و در مورد قابلیت استفاده، کاربردی بودن و کارایی آن‌ها به جامعه استانداردهای وب بازخورد بدهید. برای اطلاعات بیشتر، به راهنمای آزمایشی مبدا برای توسعه دهندگان وب مراجعه کنید. برای ثبت نام در این یا دیگر آزمایش اولیه، از صفحه ثبت نام دیدن کنید.

برای ثبت آزمایش اولیه:

  1. برای مبدا خود یک نشانه درخواست کنید .
  2. توکن را با استفاده از سرآیند Origin-Trial HTTP به فایل جاوا اسکریپت Service Worker خود اضافه کنید. تنظیم هدرهای HTTP نیاز به دسترسی به پیکربندی سرور شما دارد. هدر پاسخ به دست آمده باید چیزی شبیه به این باشد:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

برای مشاهده نشانه آزمایشی اولیه در فایل Service Worker، از DevTools یا دستور curl مانند زیر استفاده کنید:

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

پس از Chrome 111، فیلدهای هویت را مجدداً به صورت محلی فعال کنید

اگر از Chrome 111 یا جدیدتر استفاده می‌کنید، فیلدهای هویت در رویداد canmakepayment خالی می‌مانند. برای فعال کردن مجدد فیلدها به صورت محلی، می توانید موارد زیر را انجام دهید:

  1. از Chrome 111 یا جدیدتر استفاده کنید.
  2. chrome://flags/#add-identity-in-can-make-payment را در نوار URL وارد کنید.
  3. پرچم را فعال کنید
  4. Chrome را دوباره راه اندازی کنید.

مراحل بعدی

این تغییر برنامه‌ریزی شده است که به‌طور پیش‌فرض از Chrome 111 فعال شود. می‌توانید آزمایش را از امروز شروع کنید تا برای تغییر در زمان راه‌اندازی آماده شوید.