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