पेमेंट हैंडलर एपीआई के CanMakePayment इवेंट के व्यवहार में अपडेट

The Payment हैंडलर API पेमेंट की सेवा देने वाली कंपनियों को यह सुविधा देता है कि वे पेमेंट के अनुरोध वाले एपीआई के साथ-साथ, कारोबारियों या कंपनियों को अपनी पसंद के मुताबिक पैसे चुकाने का अनुभव दे सकें. जब new PaymentRequest() कंस्ट्रक्टर की मदद से पेमेंट का अनुरोध एपीआई शुरू किया जाता है, तो यह पेमेंट हैंडलर एपीआई के लिए रजिस्टर किए गए सर्विस वर्कर को कारोबारी के ऑरिजिन और आर्बिट्रेरी डेटा के साथ, canmakepayment इवेंट को बिना किसी सूचना के ट्रिगर करता है. इस क्रॉस-ऑरिजिन कम्यूनिकेशन के लिए, यूज़र जेस्चर की ज़रूरत नहीं होती और यह कोई यूज़र इंटरफ़ेस नहीं दिखाता.

Chrome, canmakepayment इवेंट से पहचान करने वाले फ़ील्ड हटाकर, Chrome 108 से ऑरिजिन ट्रायल शुरू करने जा रहा है.

इस पेज पर दी गई जानकारी सिर्फ़ पेमेंट ऐप्लिकेशन की सेवा देने वाली उन कंपनियों पर लागू होती है जो पेमेंट हैंडलर एपीआई का इस्तेमाल करती हैं. अगर आप इसका इस्तेमाल नहीं करते हैं, तो आप इन निर्देशों को छोड़ सकते हैं.

क्या बदलाव होने वाले हैं?

जब कोई व्यापारी/कंपनी/कारोबारी 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 डालें.
  3. फ़्लैग चालू करें.
  4. Chrome को फिर से लॉन्च करें.

फ़्लैग को चालू करने पर, canmakepayment इवेंट में पहचान वाले फ़ील्ड और Android IS_READY_TO_PAY इंटेंट को खाली कर दिया जाएगा.

प्रोडक्शन में बदलाव करने की सुविधा चालू करें

प्रोडक्शन में इस बदलाव को Chrome में लैंड होने से पहले ही, टेस्टिंग के लिए चालू भी किया जा सकता है. इस तरीके को ऑरिजिन ट्रायल कहा जाता है.

ऑरिजिन ट्रायल की मदद से, नई सुविधाएं आज़माई जा सकती हैं. साथ ही, वेब स्टैंडर्ड से जुड़ी कम्यूनिटी के लिए उनकी उपयोगिता, व्यावहारिकता, और असर के बारे में सुझाव, शिकायत या राय दी जा सकती है. ज़्यादा जानकारी के लिए, वेब डेवलपर के लिए ऑरिजिन ट्रायल गाइड देखें. इस या किसी दूसरे ऑरिजिन ट्रायल के लिए साइन अप करने के लिए, रजिस्ट्रेशन पेज पर जाएं.

ऑरिजिन ट्रायल को रजिस्टर करने के लिए:

  1. अपने ऑरिजिन के लिए टोकन का अनुरोध करें.
  2. Origin-Trial एचटीटीपी हेडर का इस्तेमाल करके, अपने सर्विस वर्कर JavaScript फ़ाइल में टोकन जोड़ें. एचटीटीपी हेडर सेट करने के लिए, आपके सर्वर को कॉन्फ़िगर करने का ऐक्सेस ज़रूरी है. मिलने वाला रिस्पॉन्स हेडर कुछ ऐसा दिखना चाहिए:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

सर्विस वर्कर फ़ाइल पर ऑरिजिन ट्रायल टोकन देखने के लिए, 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 डालें.
  3. फ़्लैग चालू करें.
  4. Chrome को फिर से लॉन्च करें.

अगले चरण

यह बदलाव Chrome 111 से डिफ़ॉल्ट रूप से चालू हो जाएगा. लॉन्च के समय में होने वाले बदलाव के लिए तैयार रहने के लिए, आज ही टेस्टिंग शुरू करें.