1. परिचय
यह कोडलैब, वेब के लिए Google Pay API 101: बुनियादी बातें कोडलैब का अगला चरण है. यह उस कोडलैब में लिखे गए कोड पर निर्भर करता है. इस कोडलैब को पूरा करने से पहले, पहले उस कोडलैब को पूरा करना न भूलें.
आपको क्या सीखने को मिलेगा
- Google Pay बटन को पसंद के मुताबिक बनाने का तरीका
- पेमेंट की प्रोसेस शुरू करने का तरीका
- पेमेंट की अनुमति की स्थिति की जानकारी पाने का तरीका
- शिपिंग पते में बदलाव करने का तरीका
- रिडीम कोड मैनेज करने का तरीका
आपको किन चीज़ों की ज़रूरत होगी
- एचटीएमएल और JavaScript फ़ाइलों में बदलाव करने के लिए, आपकी पसंद का टेक्स्ट एडिटर.
- Google Chrome वेब ब्राउज़र या स्थानीय वेबसाइट की जांच करने का कोई दूसरा तरीका.
- प्रोडक्शन के लिए, आपके पास Google Pay
merchantId
होना चाहिए. Google Pay और Wallet Console पर रजिस्टर करने में सिर्फ़ एक मिनट लगता है. इसलिए, इसे अभी ही कर लें.
Project IDX का इस्तेमाल करके, इस प्रोसेस को पूरा करना
2. बटन को पसंद के मुताबिक बनाना
यहां ButtonOptions
के बारे में खास जानकारी दी गई है. ज़्यादा जानकारी के लिए दस्तावेज़ देखें
विकल्प | ज़रूरी है | वैल्यू |
onClick | ज़रूरी है | JavaScript इवेंट हैंडलर का नाम |
allowedPaymentMethods | ज़रूरी नहीं | |
buttonColor | ज़रूरी नहीं | डिफ़ॉल्ट, काला, सफ़ेद |
buttonLocale | ज़रूरी नहीं | दो अक्षर वाला ISO 639-1 कोड. |
buttonRadius | ज़रूरी नहीं | 0 से 100 |
buttonRootNode | ज़रूरी नहीं | HTMLDocument या ShadowRoot |
buttonSizeMode | ज़रूरी नहीं | स्टैटिक, भरना |
buttonType | ज़रूरी नहीं | बुक, खरीदें, चेकआउट करें, दान करें, ऑर्डर करें, पेमेंट करें, सादा, सदस्यता लें |
अपनी main.js
फ़ाइल में renderGooglePayButton()
तरीका ढूंढें और उसे यहां दिए गए कोड से बदलें.
function renderGooglePayButton() {
const button = getGooglePaymentsClient().createButton({
buttonColor: 'default',
buttonType: 'buy',
buttonRadius: 4,
buttonLocale: 'en',
onClick: onGooglePaymentButtonClicked,
allowedPaymentMethods: baseGooglePayRequest.allowedPaymentMethods,
});
document.getElementById(GPAY_BUTTON_CONTAINER_ID).appendChild(button);
}
कोड के बारे में जानकारी
createButton()
लाइब्रेरी का तरीका,ButtonOptions
कॉन्फ़िगरेशन आर्ग्युमेंट लेता है. इससे यह तय किया जा सकता है कि बटन कैसा दिखे और कैसे काम करे.
3. पेमेंट डेटा के कॉलबैक
पेमेंट्स क्लाइंट, आपको कुछ इवेंट होने पर उन्हें मैनेज करने के लिए फ़ंक्शन रजिस्टर करने की सुविधा देता है. पहला, पेमेंट की अनुमति और दूसरा, पेमेंट डेटा में बदलाव.
main.js
में// todo: paymentDataCallbacks
टिप्पणी ढूंढें और उसे इस कोड से बदलें.paymentDataCallbacks: { onPaymentAuthorized: onPaymentAuthorized, onPaymentDataChanged: onPaymentDataChanged },
- इसके बाद,
main.js
काEvent Handlers
सेक्शन ढूंढें और सेक्शन के आखिर में यह कोड जोड़ें.function onPaymentAuthorized(paymentData) { // We'll fill this in later } function onPaymentDataChanged(intermediatePaymentData) { // We'll fill this in later }
- आखिर में,
main.js
में// todo: callbackIntents
टिप्पणी ढूंढें और टिप्पणी को इस कोड से बदलें. इस कोडलैब में, हम चारों इंटेंट लागू करने जा रहे हैं.callbackIntents: [ 'PAYMENT_AUTHORIZATION', 'SHIPPING_ADDRESS', 'SHIPPING_OPTION', 'OFFER', ], shippingAddressRequired: true, shippingOptionRequired: true, shippingOptionParameters: { defaultSelectedOptionId: 'shipping-001', shippingOptions: [ { id: 'shipping-001', label: '$0.00: Free shipping', description: 'Free Shipping delivered in 5 business days.' }, { id: 'shipping-002', label: '$1.99: Standard shipping', description: 'Standard shipping delivered in 3 business days.' }, { id: 'shipping-003', label: '$1000: Express shipping', description: 'Express shipping delivered in 1 business day.' }, ], },
कोड के बारे में जानकारी
PaymentDataCallbacks
प्रॉपर्टी में दो सब-प्रॉपर्टी होती हैं. एक, पेमेंट की अनुमति देने के लिए कॉलबैक के लिए और दूसरी, पेमेंट डेटा में बदलाव होने के लिए कॉलबैक के लिए.- कॉलबैक लागू करने के लिए,
onPaymentAuthorized
ज़रूरी है. यह कॉलबैक तब ट्रिगर होता है, जबcallbackIntents
सूची मेंPaymentDataRequest
मेंPAYMENT_AUTHORIZATION
शामिल होता है. onPaymentDataChanged
ज़रूरी नहीं है. यह कॉलबैक तब ट्रिगर होता है, जबcallbackIntents
सूची मेंPaymentDataRequest
मेंOFFER
,SHIPPING_ADDRESS
याSHIPPING_OPTION
शामिल होता है.- इस कोडलैब के लिए, दोनों कॉलबैक को ट्रिगर करने के लिए,
PaymentDataRequest
मेंcallbackIntents
सेट करें.
4. पेमेंट की अनुमति देना
Authorize Payments का इस्तेमाल, पेमेंट की प्रोसेस शुरू करने और पेमेंट की अनुमति की स्थिति की जानकारी देने के लिए किया जाता है.
main.js
में वह onPaymentAuthorized()
फ़ंक्शन ढूंढें जिसे आपने पिछले चरण में जोड़ा था. इसके बाद, उसे नीचे दिए गए कोड से बदलें.
function onPaymentAuthorized(paymentData) {
return new Promise(function(resolve, reject) {
// Write the data to console for debugging
console.log("onPaymentAuthorized", paymentData);
// Do something here to pass token to your gateway
// To simulate the payment processing, there is a 70% chance of success
const paymentAuthorizationResult = (Math.random() > 0.3)
? {transactionState: 'SUCCESS'}
: {
transactionState: 'ERROR',
error: {
intent: 'PAYMENT_AUTHORIZATION',
message: 'Insufficient funds',
reason: 'PAYMENT_DATA_INVALID'
}
};
resolve(paymentAuthorizationResult);
});
}
कोड के बारे में जानकारी
onPaymentAuthorized()
कॉलबैक फ़ंक्शन कोPaymentData
आर्ग्युमेंट के साथ लागू किया जाता है और इसे एक प्रॉमिस दिखाना चाहिए. इस उदाहरण में, फ़ंक्शन को रैंडम तौर पर यह चुनना है कि उसे सफलता या गड़बड़ी दिखानी है. अपने प्रोजेक्ट में, इस अवसर का इस्तेमाल करकेpaymentData.paymentMethodData.tokenizationData.token
परpaymentData
में मिले टोकन का इस्तेमाल करके, अपने गेटवे से लेन-देन को प्रोसेस किया जा सकता है.
5. पेमेंट का डेटा बदलना
कीमत में डाइनैमिक बदलाव करने की सुविधा की मदद से, व्यापारी/कंपनी/कारोबारी, शिपिंग के लिए चुने गए पते के आधार पर, शिपिंग के विकल्पों और लेन-देन की जानकारी को डाइनैमिक तरीके से अपडेट कर सकता है. इसके अलावा, शिपिंग के चुने गए विकल्प के आधार पर, लेन-देन की जानकारी को डाइनैमिक तौर पर अपडेट किया जा सकता है.
main.js
में वह onPaymentDataChanged()
फ़ंक्शन ढूंढें जिसे आपने पिछले चरण में जोड़ा था. इसके बाद, उसे नीचे दिए गए कोड से बदलें.
function onPaymentDataChanged(intermediatePaymentData) {
return new Promise(function(resolve, reject) {
let paymentDataRequestUpdate = {};
// Write the data to console for debugging
console.log("onPaymentDataChanged", intermediatePaymentData);
switch(intermediatePaymentData.callbackTrigger)
{
case "INITIALIZE":
// Handle initialize
break;
case "SHIPPING_ADDRESS":
// Read intermediatePaymentData.transactionInfo
// Read intermediatePaymentData.shippingAddress
// Update paymentDataRequestUpdate.newTransactionInfo
break;
case "SHIPPING_OPTION":
// Read intermediatePaymentData.transactionInfo
// Read intermediatePaymentData.shippingOptionData
// Update paymentDataRequestUpdate.newTransactionInfo
// Update paymentDataRequestUpdate.newShippingOptionParameters
break;
case "OFFER":
// Read intermediatePaymentData.offerData
// Read intermediatePaymentData.transactionInfo
// Update paymentDataRequestUpdate.newTransactionInfo
// Update paymentDataRequestUpdate.newOfferInfo
break;
default:
// Update paymentDataRequestUpdate.error
}
resolve(paymentDataRequestUpdate);
});
}
कोड के बारे में जानकारी
onPaymentDataChanged()
फ़ंक्शन मेंIntermediatePaymentData
को आर्ग्युमेंट के तौर पर इस्तेमाल किया जाता है. यह फ़ंक्शन तब ट्रिगर होता है, जब पेमेंट शीट में शिपिंग का पता या शिपिंग के विकल्प बदले जाते हैं.onPaymentDataChanged()
फ़ंक्शन को एक ऐसा प्रॉमिस दिखाना चाहिए जोPaymentDataRequestUpdate
ऑब्जेक्ट को हल करता हो. इस ऑब्जेक्ट में, पेमेंट शीट को अपडेट करने के लिए, लेन-देन की नई जानकारी, शिपिंग के विकल्प, और गड़बड़ी की जानकारी होती है.redemptionCodes
, पेमेंट शीट में डाले गए प्रोमो कोड का एक सेट है. इसमें वे कोड शामिल होते हैं जिन्हें पहले ही मंज़ूरी मिल चुकी है.
6. नतीजा
इस कोडलैब को पूरा करने पर बधाई! आपने ये काम करने का तरीका जाना है ...
प्रोजेक्ट चलाना
Google Chrome से टेस्ट करना
Google Chrome वेब ब्राउज़र का इस्तेमाल करके, index.html
खोलें. इसके लिए, Chrome के मुख्य मेन्यू में जाकर, फ़ाइल > फ़ाइल खोलें... का इस्तेमाल करें. इस तरह से प्रोजेक्ट खोलने पर, Chrome main.js
को लागू करेगा. हो सकता है कि दूसरे वेब ब्राउज़र, JavaScript को चलाने की अनुमति न दें.
– या –
किसी स्थानीय वेब सर्वर की मदद से जांच करना
अगर आपने Python इंस्टॉल किया है, तो रूट pay-web-101
फ़ोल्डर में टर्मिनल प्रॉम्प्ट से python3 -m http.server
चलाएं.
$ cd /your/path/to/pay-web-101
$ python3 -m http.server
Serving HTTP on :: port 8000 (http://[::]:8000/) ...
इसके बाद, http://localhost:8000
पर अपनी साइट पर जाएं.
यहां से कहां जाएं
अन्य संसाधन
- Discord पर #payments चैनल में बातचीत में शामिल हों
- X पर @GooglePayDevs को फ़ॉलो करें
- YouTube पर Google Pay से जुड़े वीडियो देखना