वापस

VibeFox OpenPay for WooCommerce — सहायता

आवश्यकताएँ

WordPress: 6.0 या बाद का संस्करण।

WooCommerce: 8.0 या बाद का संस्करण, इंस्टॉल और सक्रिय। इसके बिना प्लगइन सक्रिय नहीं होता।

PHP: 8.0 या बाद का संस्करण।

HTTPS: आपकी साइट HTTPS का उपयोग करनी चाहिए, क्योंकि कार्ड फ़ॉर्म आपके चेकआउट पेज पर है।

OpenPay खाता: मेक्सिको, कोलंबिया या पेरू का OpenPay खाता। आपको उसका Merchant ID, निजी कुंजी (sk_...) और सार्वजनिक कुंजी (pk_...) चाहिए। सैंडबॉक्स और लाइव डैशबोर्ड के Merchant ID और कुंजियाँ अलग-अलग होते हैं, और प्लगइन उन्हें अलग रखता है।

VibeFox लाइसेंस कुंजी: vibefox.net से खरीदी जाती है। एक कुंजी एक डोमेन पर काम करती है।

कार्ड आपके चेकआउट पेज पर टाइप किया जाता है, लेकिन उसे ब्राउज़र में openpay.js पढ़ती और टोकनाइज़ करती है। कार्ड फ़ील्ड्स का कोई नाम नहीं होता और वे कभी आपके सर्वर पर नहीं भेजे जाते। चूँकि कार्ड फ़ॉर्म आपके पेज पर है, आपका PCI DSS दायरा SAQ A-EP है; अपने acquirer से पुष्टि करें।

इंस्टॉलेशन

1. WordPress में Plugins > Add New > Upload Plugin पर जाएँ, प्लगइन की ZIP फ़ाइल चुनें और Install Now पर क्लिक करें। आप FTP से wcp_openpay_gateway फ़ोल्डर को /wp-content/plugins/ में भी अपलोड कर सकते हैं।

2. Activate पर क्लिक करें।

3. सेटिंग्स खोलें: WooCommerce > Settings > Payments > OpenPay > Manage, या Plugins पेज पर प्लगइन के नाम के नीचे Settings पर क्लिक करें।

4. पेज के शीर्ष पर लाइसेंस ब्लॉक में अपनी VibeFox लाइसेंस कुंजी डालें और Activate पर क्लिक करें।

5. Account country चुनें और सैंडबॉक्स तथा लाइव कुंजियाँ डालें (देखें कॉन्फ़िगरेशन)।

6. अनुशंसित: OpenPay डैशबोर्ड में वेबहुक URL जोड़ें (देखें कॉन्फ़िगरेशन)।

7. Enable / Disable चालू करें और सेव करें। OpenPay सैंडबॉक्स के टेस्ट कार्ड से भुगतान आज़माएँ, फिर वास्तविक भुगतान लेने के लिए Sandbox mode का निशान हटा दें।

कॉन्फ़िगरेशन

सभी सेटिंग्स एक ही पेज पर हैं: WooCommerce > Settings > Payments > OpenPay। फ़ील्ड्स के ऊपर पेज चेतावनी देता है जब वर्तमान मोड की कुंजियाँ अधूरी हों (तब चेकआउट पर भुगतान विधि छिपी रहती है), जब स्टोर की मुद्रा चुने गए खाते के देश में स्वीकार नहीं होती, और सैंडबॉक्स मोड चालू होने पर Sandbox mode is enabled — no real charges are made. दिखाता है। भुगतान विधियों की सूची में, जब तक वर्तमान मोड में तीनों कुंजियाँ नहीं होतीं, OpenPay को सेटअप की ज़रूरत वाला दिखाया जाता है; सैंडबॉक्स मोड चालू रहने पर टेस्ट मोड का बैज भी दिखता है।

सेव करते समय कुंजियों की जाँच होती है। Merchant ID में केवल अक्षर और अंक हो सकते हैं, निजी कुंजी sk_ से और सार्वजनिक कुंजी pk_ से शुरू होनी चाहिए। अमान्य मान सेव नहीं होता: पिछला मान रहता है और एक त्रुटि दिखाई जाती है, जैसे Sandbox: The private key must start with sk_. यदि भुगतान विधि चालू है लेकिन वर्तमान मोड की कुंजियाँ अधूरी हैं, तो आपको यह संदेश भी दिखता है कि चेकआउट पर गेटवे छिपा रहेगा।

सामान्य

Enable / Disable: Enable OpenPay card payments भुगतान विधि को चालू या बंद करता है। डिफ़ॉल्ट: बंद।

Title: चेकआउट पर ग्राहकों को दिखने वाला भुगतान विधि का नाम। डिफ़ॉल्ट: Credit or debit card (OpenPay)।

Description: चेकआउट पर कार्ड फ़ॉर्म के ऊपर दिखाया गया पाठ। डिफ़ॉल्ट: Pay securely with your credit or debit card. Your bank may ask you to confirm the payment (3D Secure)।

OpenPay खाता

Merchant ID, निजी कुंजी (sk_) और सार्वजनिक कुंजी (pk_) आपके OpenPay डैशबोर्ड में Settings (Configuración) के अंतर्गत हैं। इस सेक्शन में मेक्सिको, कोलंबिया और पेरू के सैंडबॉक्स और लाइव डैशबोर्ड के लिंक हैं।

Account country: आपके OpenPay खाते का देश। यह OpenPay API, उस देश की openpay.js लाइब्रेरी और स्वीकृत मुद्राएँ तय करता है। डिफ़ॉल्ट: Mexico।

Mexico: MXN और USD।
Colombia: COP और USD।
Peru: PEN और USD।

Sandbox mode: Use the OpenPay sandbox (test keys, no real charges) कुंजियों और API दोनों को सैंडबॉक्स पर ले जाता है। चालू रहने पर चेकआउट में SANDBOX MODE बैज दिखता है। डिफ़ॉल्ट: चालू। वास्तविक भुगतान लेने के लिए निशान हटाएँ।

Sandbox Merchant ID: सैंडबॉक्स डैशबोर्ड का Merchant ID, Settings (Configuración), API कुंजियाँ।

Sandbox Private Key: सैंडबॉक्स की निजी कुंजी। यह sk_ से शुरू होती है। इसका उपयोग केवल सर्वर पर होता है; इसे कभी साझा न करें।

Sandbox Public Key: सैंडबॉक्स की सार्वजनिक कुंजी। यह pk_ से शुरू होती है। openpay.js इसे कार्ड टोकनीकरण के लिए ब्राउज़र में उपयोग करती है।

Live Merchant ID: लाइव डैशबोर्ड का Merchant ID, Settings (Configuración), API कुंजियाँ।

Live Private Key: लाइव निजी कुंजी (sk_...)।

Live Public Key: लाइव सार्वजनिक कुंजी (pk_...)।

प्लगइन के संस्करण 1.0 की कुंजियाँ (कुंजियों का एक सेट और एक सैंडबॉक्स फ़्लैग) अपने-आप सैंडबॉक्स या लाइव फ़ील्ड्स में चली जाती हैं।

वेबहुक

वेबहुक आवश्यक नहीं है, लेकिन अनुशंसित है। यह भुगतान की पुष्टि तब करता है जब ग्राहक 3D Secure पेज से वापस नहीं आता, उदाहरण के लिए ब्राउज़र बंद करने पर। OpenPay डैशबोर्ड में Settings > Webhooks पर जाएँ और सेटिंग्स के इस भाग में दिखाया गया URL जोड़ें। यह कुछ ऐसा दिखता है: https://your-site/wc-api/webhook_wc_openpay/। इसे ठीक वैसे ही कॉपी करें जैसा सेटिंग्स दिखाती हैं। आप जिस हर मोड (सैंडबॉक्स और लाइव) का उपयोग करते हैं, उसके डैशबोर्ड में वेबहुक जोड़ें।

वेबहुक जोड़ने पर OpenPay इस URL पर एक सत्यापन कोड भेजता है। कोड उस तारीख के साथ इस सेक्शन में दिखता है जब वह आया था, ताकि आप OpenPay डैशबोर्ड में वेबहुक की पुष्टि कर सकें।

ये इवेंट चुनें:

charge.succeeded: कार्ड भुगतान पूरा हुआ।
charge.failed: भुगतान विफल हुआ।
charge.cancelled: भुगतान रद्द हुआ।
charge.refunded: भुगतान का रिफ़ंड हुआ, उदाहरण के लिए OpenPay डैशबोर्ड में।
transaction.expired: ग्राहक ने समय पर भुगतान पूरा नहीं किया।
chargeback.created, chargeback.accepted, chargeback.rejected: चार्जबैक खोला गया या उस पर निर्णय हुआ।

OpenPay वेबहुक पर हस्ताक्षर नहीं करता, इसलिए प्लगइन सूचना पर कभी भरोसा नहीं करता। वह उसका उपयोग केवल चार्ज ढूँढने के लिए करता है, फिर उसी मोड की निजी कुंजी से OpenPay API से चार्ज पढ़ता है जिसमें ऑर्डर का भुगतान हुआ था। जिस चार्ज को यह स्टोर नहीं बनाया, उसकी सूचना अनदेखी की जाती है।

उन्नत

Debug log: Log payment steps (errors are always logged) भुगतान के चरण WooCommerce > Status > Logs में, स्रोत wcp_openpay_gateway के साथ लिखता है। त्रुटियाँ और चेतावनियाँ इसके बंद होने पर भी लॉग होती हैं। कुंजियाँ, कार्ड डेटा और ग्राहक का विवरण कभी लॉग नहीं होते। डिफ़ॉल्ट: बंद।

Delete data on uninstall: Remove the gateway settings and logs when the plugin is deleted। डिफ़ॉल्ट: बंद।

चेकआउट

ग्राहक भुगतान विधि चुनता है (डिफ़ॉल्ट रूप से Credit or debit card (OpenPay)) और Cardholder name, Card number, Expiry (MM/YY) और Card code (CVV) भरता है। ऑर्डर सबमिट होने पर openpay.js ब्राउज़र में कार्ड को एक बार उपयोग होने वाले टोकन में बदल देता है, और OpenPay की धोखाधड़ी-रोधी लाइब्रेरी एक डिवाइस सेशन ID जोड़ती है। आपके स्टोर को केवल ये दो मान भेजे जाते हैं।

इसके बाद प्लगइन ऑर्डर के कुल योग के लिए ऑर्डर मुद्रा में 3D Secure के साथ चार्ज बनाता है और ग्राहक को उसके बैंक के 3D Secure पेज पर भेजता है, जिसे OpenPay प्रदान करता है। हर प्रयास को OpenPay में अपना ऑर्डर संदर्भ मिलता है (ऑर्डर नंबर और एक छोटा सफ़िक्स)। चार्ज का विवरण Order #, ऑर्डर नंबर और आपकी साइट का नाम होता है। ग्राहक का नाम, ईमेल और फ़ोन OpenPay को भेजे जाते हैं; OpenPay में कोई ग्राहक खाता नहीं बनता। जब तक ग्राहक 3D Secure पेज पर है, ऑर्डर भुगतान लंबित स्थिति में रहता है।

ग्राहक के लौटने पर प्लगइन OpenPay API से चार्ज पढ़ता है। ऑर्डर को तभी भुगतान किया हुआ चिह्नित किया जाता है जब OpenPay उसकी पुष्टि करे: चार्ज इसी ऑर्डर का होना चाहिए, पूरा हो चुका हो, और ऑर्डर के कुल योग व मुद्रा से बिल्कुल मेल खाए। यदि परिणाम अभी ज्ञात नहीं है, तो ऑर्डर प्राप्ति पेज पर We are confirming your card payment with OpenPay. The order will be updated automatically — please do not pay again. दिखता है। फिर वेबहुक ऑर्डर अपडेट करता है।

यदि कार्ड अस्वीकृत होता है या 3D Secure विफल होता है, तो ग्राहक Pay for order पेज पर लौटता है, जहाँ The card payment was not completed (declined or 3-D Secure failed). Please try again or use another card. संदेश होता है, और वह फिर से भुगतान कर सकता है। नए प्रयास से पहले प्लगइन ऑर्डर के पिछले चार्ज की जाँच करता है: यदि वह वास्तव में भुगतान हो चुका था, तो दूसरे चार्ज के बिना ऑर्डर भुगतान किया हुआ चिह्नित होता है; यदि वह अभी भी प्रोसेस हो रहा है, तो ग्राहक को दिखता है कि पिछला भुगतान अभी प्रोसेस हो रहा है और उसे दोबारा भुगतान नहीं करना चाहिए; यदि उसकी स्थिति जाँची नहीं जा सकती, तो कोई नया प्रयास नहीं होता और ग्राहक से कुछ मिनट बाद फिर से प्रयास करने को कहा जाता है।

अस्वीकृत कार्डों को स्पष्ट संदेश मिलता है, उदाहरण के लिए The card has insufficient funds. Please use another card., The card has expired. Please use another card. या The security code (CVV) is not valid. Please check it and try again. OpenPay की तकनीकी त्रुटियाँ ग्राहकों को कभी नहीं दिखाई जातीं; वे ऑर्डर नोट्स और लॉग में जाती हैं।

यह भुगतान विधि क्लासिक चेकआउट, Checkout ब्लॉक और Pay for order पेज पर काम करती है। यह WooCommerce High-Performance Order Storage (HPOS) के साथ संगत है। बंद होने पर, वर्तमान मोड की कुंजियाँ अधूरी होने पर, या ऑर्डर की मुद्रा खाते के देश में स्वीकार न होने पर यह चेकआउट पर छिपी रहती है।

प्लगइन केवल कार्ड भुगतान लेता है, जो तुरंत कैप्चर होता है। इसमें सेव किए गए कार्ड, सब्सक्रिप्शन, ब्याज-मुक्त किस्त (MSI) या किस्त भुगतान, कार्ड पॉइंट्स से भुगतान, नकद, SPEI, PSE या CoDi भुगतान नहीं हैं, और न ही अलग-अलग ऑथराइज़ेशन और कैप्चर है।

ऑर्डर और रिफ़ंड

ऑर्डर स्थितियाँ

भुगतान लंबित: ग्राहक 3D Secure पेज पर है या उसने भुगतान पूरा नहीं किया है। एक नोट चार्ज ID दिखाता है।

प्रोसेसिंग: भुगतान की पुष्टि हो गई है। यह भुगतान के बाद WooCommerce की सामान्य स्थिति है; केवल वर्चुअल, डाउनलोड योग्य उत्पादों वाले ऑर्डर पूर्ण हो जाते हैं। ऑर्डर नोट में चार्ज ID और मोड (लाइव या सैंडबॉक्स) दिखता है। ट्रांज़ैक्शन ID OpenPay चार्ज ID है।

होल्ड पर: चार्ज जारी है और अभी कैप्चर नहीं हुआ है; या OpenPay ने ऑर्डर से अलग राशि या मुद्रा वाला पूर्ण चार्ज बताया है (ऑर्डर को भुगतान किया हुआ नहीं माना जाता, नोट में अंतर दिखता है); या ऐसे ऑर्डर के लिए भुगतान आया है जो पहले ही रद्द हो चुका था। OpenPay डैशबोर्ड में ऑर्डर देखें और वहीं उसे पूरा करें या भुगतान रिफ़ंड करें।

विफल: चार्ज बनाते समय कार्ड अस्वीकृत हुआ, या आख़िरी प्रयास विफल हुआ, रद्द हुआ या समय-सीमा समाप्त हो गई। ग्राहक फिर से भुगतान कर सकता है।

यदि पहले से भुगतान किए गए ऑर्डर के लिए दूसरा पूर्ण चार्ज आता है, तो ऑर्डर नहीं बदलता। WARNING से शुरू होने वाला नोट आपसे OpenPay डैशबोर्ड में डुप्लिकेट चार्ज का रिफ़ंड करने को कहता है।

रिफ़ंड

मेक्सिको और पेरू के खातों के लिए: ऑर्डर खोलें, Refund पर क्लिक करें, राशि डालें और Refund via Credit or debit card (OpenPay) पर क्लिक करें (बटन पर आपकी भुगतान विधि का शीर्षक दिखता है)। पूर्ण और आंशिक रिफ़ंड समर्थित हैं। रिफ़ंड उसी मोड और खाता देश में भेजा जाता है जिसमें ऑर्डर का भुगतान हुआ था, इसलिए जब तक रिफ़ंड करने के लिए सैंडबॉक्स ऑर्डर बचे हों, सैंडबॉक्स कुंजियाँ भरी रखें। यदि OpenPay रिफ़ंड स्वीकार नहीं करता, तो WooCommerce त्रुटि दिखाता है, जैसे OpenPay refund failed: ..., और कोई रिफ़ंड दर्ज नहीं होता। सफल रिफ़ंड OpenPay रिफ़ंड ID के साथ ऑर्डर नोट्स में जोड़ा जाता है।

OpenPay Colombia API के माध्यम से कार्ड रिफ़ंड का समर्थन नहीं करता, जैसा कि आधिकारिक OpenPay प्लगइन्स में होता है। कोलंबिया के लिए रिफ़ंड बटन नहीं दिया जाता; OpenPay डैशबोर्ड में चार्ज रिफ़ंड करें।

OpenPay डैशबोर्ड में किए गए रिफ़ंड और चार्जबैक वेबहुक के ज़रिए आते हैं और ऑर्डर नोट्स में एक बार जोड़े जाते हैं। वे अपने-आप WooCommerce रिफ़ंड के रूप में दर्ज नहीं होते। ज़रूरत हो तो OpenPay बटन का उपयोग किए बिना WooCommerce में मैन्युअल रिफ़ंड बनाएँ।

लाइसेंस कुंजी

यह प्लगइन vibefox.net की VibeFox लाइसेंस कुंजी के साथ काम करता है। लाइसेंस ब्लॉक WooCommerce > Settings > Payments > OpenPay के शीर्ष पर है। कुंजी को License key में चिपकाएँ और Activate पर क्लिक करें। ब्लॉक स्थिति दिखाता है, जैसे लाइसेंस किस तारीख तक सक्रिय है और आपका डोमेन। स्थिति दोबारा जाँचने के लिए Check now, दूसरी कुंजी डालने के लिए Change key, और इस साइट से कुंजी हटाने के लिए Remove key का उपयोग करें। लिंक Manage licenses and domains in your account आपका vibefox.net खाता खोलता है।

एक कुंजी एक डोमेन पर काम करती है। किसी साइट से कुंजी हटाने से उसका डोमेन स्लॉट मुक्त नहीं होता। अपने vibefox.net खाते में स्लॉट मुक्त करें।

सक्रिय कुंजी के बिना, चेकआउट पर ग्राहकों को OpenPay नहीं दिखाया जाता। यदि फिर भी भुगतान शुरू किया जाता है, तो ग्राहक को This payment method is not available. Please choose another one. दिखता है। लॉग-इन किए स्टोर प्रबंधकों को भुगतान विधि अब भी (unlicensed — visible to admins only) चिह्न के साथ दिखती है, ताकि आप कुंजी खरीदने से पहले प्लगइन सेट अप और टेस्ट कर सकें। प्लगइन्स पेज और WooCommerce पेजों पर एक अनुस्मारक दिखता है। मौजूदा ऑर्डर प्रभावित नहीं होते: जो भुगतान पहले से शुरू हो चुके हैं उनकी पुष्टि होती रहती है, और रिफ़ंड भी काम करते हैं।

लाइसेंस की समय-सीमा समाप्त होने पर प्लगइन काम करता रहता है, लेकिन अपडेट और सहायता के लिए नवीनीकरण ज़रूरी है। स्थिति पृष्ठभूमि में अपने-आप दोबारा जाँची जाती है।

समस्या निवारण

चेकआउट पर OpenPay दिखाई नहीं देता: जाँचें कि लाइसेंस सक्रिय है, Enable / Disable चालू है और वर्तमान मोड में तीनों कुंजियाँ हैं: सैंडबॉक्स मोड में सैंडबॉक्स कुंजियाँ, लाइव मोड में लाइव कुंजियाँ। जाँचें कि स्टोर की मुद्रा Account country द्वारा स्वीकार्य है (मेक्सिको: MXN, USD; कोलंबिया: COP, USD; पेरू: PEN, USD)। सेटिंग्स पेज हर स्थिति में चेतावनी दिखाता है।

भुगतान हो गया, लेकिन ऑर्डर भुगतान लंबित पर रहता है: ग्राहक 3D Secure पेज से वापस नहीं आया और वेबहुक काम नहीं कर रहा। जाँचें कि जिस मोड का आप उपयोग करते हैं, उसके OpenPay डैशबोर्ड में वेबहुक URL सेटिंग्स में दिखाए गए के बिल्कुल अनुसार, ऊपर सूचीबद्ध इवेंट्स के साथ जोड़ा गया है। जाँचें कि जिस मोड में ऑर्डर का भुगतान हुआ था, उसकी कुंजियाँ भरी हैं: उनके बिना वेबहुक not configured जवाब देता है, और OpenPay बाद में फिर से प्रयास करता है।

वेबहुक ignored (unknown order) जवाब देता है: चार्ज इस स्टोर ने इस ऑर्डर के लिए नहीं बनाया, उदाहरण के लिए उसी OpenPay खाते पर किसी दूसरी दुकान का चार्ज। कुछ नहीं बदलता।

वेबहुक verification failed जवाब देता है: चार्ज पढ़ने के लिए OpenPay API तक पहुँच नहीं हो सकी। OpenPay वेबहुक फिर से भेजता है।

वेबहुक busy जवाब देता है: उसी समय ऑर्डर किसी दूसरे अनुरोध द्वारा अपडेट हो रहा था। OpenPay वेबहुक फिर से भेजता है।

ग्राहक को The secure card form could not be loaded दिखता है: openpay.js या OpenPay की धोखाधड़ी-रोधी लाइब्रेरी ब्राउज़र में लोड नहीं हुई, या डिवाइस सेशन ID नहीं बन सका। ग्राहक से पेज रीलोड करके फिर से प्रयास करने को कहें।

ग्राहक को The payment could not be processed right now दिखता है: OpenPay ने अनुरोध अस्वीकार किया या जवाब नहीं दिया। कारण ऑर्डर नोट्स और लॉग में है, स्रोत wcp_openpay_gateway। गलत Merchant ID या निजी कुंजी एक आम कारण है। यदि OpenPay ने जवाब नहीं दिया, तो ग्राहक के दोबारा भुगतान करने से पहले OpenPay डैशबोर्ड में चार्ज जाँचें।

「This test card cannot be used for real payments」: सैंडबॉक्स मोड बंद होने पर सैंडबॉक्स टेस्ट कार्ड का उपयोग किया गया।

भुगतान के बाद ऑर्डर होल्ड पर है: ऑर्डर नोट पढ़ें। चार्ज अभी भी जारी है, भुगतान की गई राशि या मुद्रा ऑर्डर से अलग है, या ऑर्डर रद्द होने के बाद भुगतान आया।

मोड से संबंधित संदेश के साथ रिफ़ंड विफल: ऑर्डर सैंडबॉक्स या लाइव मोड में भुगतान हुआ था, और उस मोड की कुंजियाँ सेट नहीं हैं। उन्हें डालें और फिर प्रयास करें।

लाइसेंस ब्लॉक में त्रुटि दिखती है: ब्लॉक के संदेश का पालन करें। उदाहरण के लिए, यदि कुंजी किसी दूसरे डोमेन पर पहले से उपयोग में है, तो अपने vibefox.net खाते में एक स्लॉट मुक्त करें और Check now पर क्लिक करें। यदि साइट का पता बदल गया है, तो नए डोमेन के लिए कुंजी सक्रिय करने हेतु Check now पर क्लिक करें। यदि लाइसेंस सर्वर तक पहुँचा नहीं जा सकता, तो प्लगइन अंतिम ज्ञात स्थिति के साथ काम करता रहता है।

अनइंस्टॉल

प्लगइन को निष्क्रिय करने पर सारा डेटा सुरक्षित रहता है। इसे हटाने के लिए, Plugins पेज पर इसे निष्क्रिय करके डिलीट करें। इस प्लगइन की लाइसेंस कुंजी और लाइसेंस स्थिति हमेशा हटा दी जाती है। गेटवे सेटिंग्स, संग्रहीत वेबहुक सत्यापन कोड और प्लगइन के लॉग तभी हटाए जाते हैं जब Delete data on uninstall चालू था। अन्यथा वे बाद में दोबारा इंस्टॉल करने के लिए रहते हैं। ऑर्डर डेटा हमेशा रखा जाता है: मौजूदा ऑर्डर अपने भुगतान नोट्स, ट्रांज़ैक्शन ID और दोबारा इंस्टॉल करने के बाद रिफ़ंड के लिए ज़रूरी चार्ज डेटा बनाए रखते हैं।

OpenPay उसके संबंधित स्वामी का ट्रेडमार्क है। यह प्लगइन OpenPay से संबद्ध नहीं है और OpenPay द्वारा समर्थित नहीं है।