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

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

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 Intent भी खाली हो जाएगा.

प्रोडक्शन में बदलाव लागू करना

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 से डिफ़ॉल्ट रूप से चालू किया जाएगा. लॉन्च के समय में होने वाले बदलाव के लिए, आज से ही टेस्टिंग शुरू की जा सकती है.