Google Pay API ने जुलाई 2018 में,
PaymentDataRequest और
IsReadyToPayRequest ऑब्जेक्ट के लिए नए ऑब्जेक्ट स्ट्रक्चर पेश किए थे. इस गाइड में, Google Pay API के वर्शन 1 के लिए फ़ॉर्मैट किए गए ऑब्जेक्ट को वर्शन 2 के लिए फ़ॉर्मैट किए गए ऑब्जेक्ट में अपडेट करने का तरीका बताया गया है.
पेमेंट के तरीके
Google Pay API के वर्शन 2 में, हर अनुरोध ऑब्जेक्ट के साथ एपीआई वर्शन की जानकारी दी जाती है.
Google Pay API के पहले वर्शन में, सिर्फ़ कार्ड से पेमेंट करने की सुविधा उपलब्ध थी. CARD पेमेंट का तरीका, Google Pay API के वर्शन 2 में पेमेंट के कई तरीकों में से एक है. जिन साइटों ने पहले allowedPaymentMethods की वैल्यू CARD के तौर पर सेट की थी उन्हें अब allowedAuthMethods की वैल्यू PAN_ONLY के तौर पर सेट करनी होगी. जिन साइटों ने पहले allowedPaymentMethods की वैल्यू TOKENIZED_CARD के तौर पर सेट की थी उन्हें अब allowedAuthMethods की वैल्यू CRYPTOGRAM_3DS के तौर पर सेट करनी होगी.
कार्ड नेटवर्क के साथ-साथ, उन नेटवर्क पर मौजूद कार्ड के लिए पुष्टि करने के तरीकों के बारे में भी बताया गया है.
apiVersion 1
{ allowedPaymentMethods: [ 'CARD', 'TOKENIZED_CARD' ], cardRequirements: { allowedCardNetworks: [ 'AMEX', 'DISCOVER', 'JCB', 'MASTERCARD', 'VISA' ] } }
apiVersion 2
{ apiVersion: 2, apiVersionMinor: 0, allowedPaymentMethods: [{ type: 'CARD', parameters: { allowedAuthMethods: [ 'PAN_ONLY', 'CRYPTOGRAM_3DS' ], allowedCardNetworks: [ 'AMEX', 'DISCOVER', 'JCB', 'MASTERCARD', 'VISA' ] } }] }
अनुमति वाले कार्ड नेटवर्क और उनकी पुष्टि करने के तरीके, CARD
पेमेंट के तरीके के लिए
IsReadyToPayRequest में शामिल होते हैं.
कार्ड पेमेंट डेटा का टोकनाइज़ेशन
Google Pay API, एन्क्रिप्ट (सुरक्षित) किया गया कार्ड डेटा दिखाता है. इसे आपके चुने गए गेटवे से रेफ़र किया जाता है या आपके सर्वर पर डिक्रिप्ट (सुरक्षित) किया जाता है. Google Pay API के वर्शन 2 में, CARD पेमेंट के तरीके में पेमेंट के तरीके के टोकनाइज़ेशन को शामिल किया गया है.
apiVersion 1
{ paymentMethodTokenizationParameters: { tokenizationType: 'PAYMENT_GATEWAY', parameters: { 'gateway': 'example', 'gatewayMerchantId': 'exampleMerchantId' } } }
apiVersion 2
{ allowedPaymentMethods: [{ type: 'CARD', tokenizationSpecification: { type: 'PAYMENT_GATEWAY', parameters: { 'gateway': 'example', 'gatewayMerchantId': 'exampleMerchantId' } } }] }
Google का कारोबारी या कंपनी का आईडी
Google Pay API के वर्शन 1 में, Google Merchant ID सबसे ऊपर की प्रॉपर्टी थी. अब Google मर्चेंट आईडी को MerchantInfo ऑब्जेक्ट में रखा गया है. इसमें कारोबारी या कंपनी का नाम डालना ज़रूरी नहीं है.
apiVersion 1
{ merchantId: '12345678901234567890' }
apiVersion 2
{ merchantInfo: { merchantId: '12345678901234567890' } }
बिलिंग पता
CARD पेमेंट के तरीके से, बिलिंग का पता और बिलिंग का फ़ोन नंबर जोड़ा जा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है.
अगर कोई साइट बिलिंग पते का अनुरोध करती है, तो अनुमानित जवाब से जुड़ा कोई भी कॉन्फ़िगरेशन, BillingAddressParameters ऑब्जेक्ट में रखा जाता है.
apiVersion 1
{ cardRequirements: { billingAddressRequired: true, billingAddressFormat: 'FULL' }, phoneNumberRequired: true }
apiVersion 2
{ allowedPaymentMethods: [{ type: 'CARD', parameters: { billingAddressRequired: true, billingAddressParameters: { format: 'FULL', phoneNumberRequired: true } } }] }
शिपिंग पता
शिपिंग पते की जानकारी देने की ज़रूरी शर्त, PaymentDataRequest ऑब्जेक्ट के टॉप लेवल पर बनी रहती है.
shippingAddressRequirements प्रॉपर्टी का नाम बदलकर shippingAddressParameters कर दिया गया है.
पहले, Google Pay API से मिलने वाले जवाबों में, शिपिंग पते के साथ फ़ोन नंबर भी शामिल होता था. ऐसा तब होता था, जब फ़ोन नंबर का अनुरोध किया जाता था. शिपिंग के लिए फ़ोन नंबर की जानकारी देने की सुविधा, Google Pay API के किसी भी वर्शन में अब काम नहीं करती. शिपिंग के लिए फ़ोन नंबर की ज़रूरत वाले सभी रिस्पॉन्स हैंडलर को अपडेट करना होगा.
apiVersion 1
{ shippingAddressRequired: true, shippingAddressRequirements: { allowedCountryCodes: [ 'US', 'CA' ] } }
apiVersion 2
{ shippingAddressRequired: true, shippingAddressParameters: { allowedCountryCodes: [ 'US', 'CA' ] } }
PaymentData रिस्पॉन्स
PaymentData ऑब्जेक्ट रिस्पॉन्स
के लिए, उन साइटों के लिए apiVersion प्रॉपर्टी की वैल्यू 2 में सेट की गई है
PaymentDataRequest
को बदलकर रेफ़रंस कार्ड कर दिया गया है. ऐसा पेमेंट के डेटा के कई संभावित जवाबों में से एक के तौर पर किया गया है.
PaymentDataRequest ऑब्जेक्ट में शामिल apiVersion और apiVersionMinor प्रॉपर्टी, PaymentData रिस्पॉन्स में दिखती हैं. इससे, उम्मीद के मुताबिक फ़ॉर्मैट का पता चलता है.
apiVersion 1
{ // no version specified }
apiVersion 2
{ apiVersion: 2, apiVersionMinor: 0 }
चुने गए पेमेंट के तरीके और उसके टोकनाइज़ेशन के बारे में जानकारी, paymentMethodData प्रॉपर्टी में रखी जाती है.
कार्ड से पेमेंट करने के तरीके के cardInfo ऑब्जेक्ट से दो प्रॉपर्टी हटा दी गई हैं:
cardClass और cardImageUri.
apiVersion 1
{ cardInfo: { cardDescription: 'Visa •••• 1234', cardNetwork: 'VISA', cardDetails: 1234 }, paymentMethodToken: { tokenizationType: 'PAYMENT_GATEWAY', token: 'examplePaymentMethodToken' } }
apiVersion 2
{ paymentMethodData: { type: 'CARD', description: 'Visa •••• 1234', info: { cardNetwork: 'VISA', cardDetails: '1234' }, tokenizationData: { type: 'PAYMENT_GATEWAY', token: 'examplePaymentMethodToken' } } }
एन्क्रिप्ट (सुरक्षित) किए गए मैसेज का जवाब
जिन साइटों पर DIRECT के लिए पेमेंट के तरीके के टोकनाइज़ेशन का टाइप तय किया गया है और जो TOKENIZED_CARD के पेमेंट के तरीके के एपीआई वर्शन 1 को स्वीकार करती हैं उन्हें यह अपडेट करना होगा कि वे डिक्रिप्ट की गई encryptedMessage प्रॉपर्टी को कैसे मैनेज करती हैं. साइट को यह काम करना होगा, ताकि वह 3-D Secure क्रिप्टोग्राम और वैकल्पिक इलेक्ट्रॉनिक कॉमर्स इंडिकेटर (ईसीआई) से पुष्टि किए गए Android डिवाइस टोकन को आपके गेटवे या प्रोसेसर को फ़ॉरवर्ड कर सके. कार्ड, paymentMethod का CARD होता है. इसमें चुने गए कार्ड की पुष्टि करने के तरीके के बारे में ज़्यादा जानकारी paymentMethodDetails.authMethod में दी जाती है.
apiVersion 1
{ "paymentMethod": "TOKENIZED_CARD", "paymentMethodDetails": { "authMethod": "3DS", "dpan": "1111222233334444", "expirationMonth": 10, "expirationYear": 2020, "3dsCryptogram": "AAAAAA...", "3dsEciIndicator": "eci indicator" } }
apiVersion 2
{ "paymentMethod": "CARD", "paymentMethodDetails": { "authMethod": "CRYPTOGRAM_3DS", "pan": "1111222233334444", "expirationMonth": 10, "expirationYear": 2020, "cryptogram": "AAAAAA...", "eciIndicator": "eci indicator" } }