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

पेमेंट हैंडलर एपीआई की मदद से, पेमेंट की सेवा देने वाली कंपनियां, पेमेंट रिक्वेस्ट एपीआई की मदद से, पेमेंट की सेवा देने वाली कंपनियों को अपनी पसंद के मुताबिक पेमेंट करने की सुविधा देती हैं. जब Payment Request API को new PaymentRequest() कन्स्ट्रक्टर के ज़रिए शुरू किया जाता है, तो यह Payment Handler API के लिए रजिस्टर किए गए सेवा वर्कर को, कारोबारी या कंपनी के ऑरिजिन और मनमुताबिक डेटा के साथ 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 से डिफ़ॉल्ट रूप से चालू किया जाएगा. लॉन्च के समय में हुए बदलाव के लिए तैयार रहने के लिए, आज से ही टेस्टिंग शुरू की जा सकती है.