वापस

VibeFox Flutterwave for OpenCart — सहायता

आवश्यकताएँ

OpenCart: 3.0.x (3.0.5.0 पर परीक्षित) या 4.0.2 और बाद का संस्करण (4.1.0.3 पर परीक्षित)।

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

Flutterwave खाता: आपको अपने Flutterwave खाते की सीक्रेट कुंजियाँ चाहिए, जो Flutterwave डैशबोर्ड में Settings, API keys के अंतर्गत मिलती हैं: परीक्षण मोड के लिए FLWSECK_TEST-… और लाइव मोड के लिए FLWSECK-…। केवल सीक्रेट कुंजियाँ उपयोग होती हैं। पब्लिक और एन्क्रिप्शन कुंजियों की आवश्यकता नहीं है। आप एक अपनी पसंद का सीक्रेट hash देकर एक webhook भी सेट अप करते हैं (देखें कॉन्फ़िगरेशन)।

मुद्राएँ: ऑर्डर हमेशा ऑर्डर की मुद्रा में चार्ज होता है। एक्सटेंशन स्वयं देशों या मुद्राओं को सीमित नहीं करता; यदि आपका खाता मुद्रा को सपोर्ट नहीं करता, तो Flutterwave एक त्रुटि दिखाता है। Geo Zone और Total से आप सीमित कर सकते हैं कि Flutterwave कहाँ दिया जाए।

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

इंस्टॉलेशन

डाउनलोड एक zip फ़ाइल है जिसमें दोनों OpenCart संस्करणों के पैकेज हैं। इसे अपने कंप्यूटर पर अनज़िप करें। इसमें README.txt, OpenCart 3 का पैकेज wcp_flutterwave_payment-oc3-(version).ocmod.zip और OpenCart 4 का पैकेज wcp_flutterwave_payment.ocmod.zip हैं। केवल अपने OpenCart संस्करण का पैकेज इंस्टॉल करें। लाइसेंस कुंजी दोनों संस्करणों के लिए एक ही है।

OpenCart 3

1. एडमिन में Extensions > Installer पर जाएँ, Upload पर क्लिक करें और wcp_flutterwave_payment-oc3-(version).ocmod.zip फ़ाइल चुनें। इस एक्सटेंशन में कोई OCMOD संशोधन नहीं है, इसलिए Extensions > Modifications को रिफ़्रेश करने की ज़रूरत नहीं है। इंस्टॉलर के बजाय आप इस पैकेज के upload फ़ोल्डर की सामग्री को स्टोर के रूट फ़ोल्डर में भी कॉपी कर सकते हैं।

2. Extensions > Extensions पर जाएँ और प्रकार Payments चुनें। VibeFox Flutterwave Payment खोजें और Install (हरा + बटन) पर क्लिक करें। आपके एडमिन यूज़र को भुगतान एक्सटेंशन की सूची बदलने का अधिकार होना चाहिए।

3. सेटिंग्स पेज खोलने के लिए Edit (पेंसिल बटन) पर क्लिक करें। पेज के शीर्ष पर लाइसेंस ब्लॉक में License key में अपनी VibeFox लाइसेंस कुंजी चिपकाएँ और Activate पर क्लिक करें (देखें लाइसेंस कुंजी)।

4. अपनी सीक्रेट कुंजियाँ दर्ज करें, Flutterwave डैशबोर्ड में webhook सेट अप करें और एक्सटेंशन में वही सीक्रेट hash दर्ज करें (देखें कॉन्फ़िगरेशन)।

5. Enable/Disable चालू करें और Save पर क्लिक करें। परीक्षण मोड में एक भुगतान आज़माएँ, फिर Live mode चालू करें।

OpenCart 4

1. एडमिन में Extensions > Installer पर जाएँ, Upload पर क्लिक करें और wcp_flutterwave_payment.ocmod.zip फ़ाइल चुनें। फ़ाइल का नाम न बदलें: OpenCart 4 फ़ाइल के नाम से एक्सटेंशन कोड लेता है, और नाम बदला हुआ पैकेज काम नहीं करता।

2. पैकेज उसी पेज पर इंस्टॉल किए गए एक्सटेंशन की सूची में दिखता है। उसके बगल में Install (हरा + बटन) पर क्लिक करें।

3. Extensions > Extensions पर जाएँ और प्रकार Payments चुनें। VibeFox Flutterwave Payment खोजें, Install (हरा + बटन) पर क्लिक करें, फिर Edit (पेंसिल बटन) पर।

4. लाइसेंस कुंजी, सीक्रेट कुंजियाँ और webhook उसी तरह दर्ज करें जैसे OpenCart 3 के चरण 3 से 5 में। सेटिंग्स पेज और उसके फ़ील्ड दोनों संस्करणों में एक जैसे हैं। केवल webhook URL अलग है (देखें Webhook)।

नया इंस्टॉल भुगतान विधि बंद और परीक्षण मोड में शुरू होता है।

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

सभी सेटिंग्स एक्सटेंशन पेज पर हैं: Extensions > Extensions > Payments > VibeFox Flutterwave Payment > Edit। सेक्शन बाईं ओर सूचीबद्ध हैं; सूची के नीचे का Save बटन पूरा पेज सेव करता है। सेटिंग्स के ऊपर पेज Live mode: real payments are accepted. या Test mode: no real money is charged. दिखाता है। यह चेतावनी देता है जब वर्तमान मोड की सीक्रेट कुंजी खाली हो, लाइव मोड में लाइव कुंजी फ़ील्ड में टेस्ट कुंजी (FLWSECK_TEST-…) हो, या टेस्ट मोड में टेस्ट कुंजी फ़ील्ड में लाइव कुंजी (FLWSECK-…) हो; तब तक चेकआउट पर भुगतान विधि छिपी रहती है। यह तब भी चेतावनी देता है जब कोई webhook सीक्रेट hash सेट न हो: तब webhooks अस्वीकार होते हैं और भुगतान केवल तभी पुष्ट होते हैं जब ग्राहक आपके स्टोर पर लौटता है। एक्सटेंशन बदलने का अधिकार न होने पर पेज सेटिंग्स दिखाता है, पर उन्हें सेव नहीं कर सकता।

सेव करते समय Title में 1 से 128 अक्षर होने चाहिए, Sort Order खाली या पूर्ण संख्या होनी चाहिए, Total खाली या 0 या उससे अधिक संख्या होनी चाहिए, और चुने गए geo zone तथा ऑर्डर स्टेटस मौजूद होने चाहिए। अन्यथा कुछ भी सेव नहीं होता और पेज बताता है कि क्या सुधारना है। कुंजियों की समस्याएँ सेव होने को नहीं रोकतीं।

Flutterwave

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

Title: वह भुगतान विधि शीर्षक जो ग्राहक चेकआउट पर देखते हैं। ऑर्डर में सेव होने वाला भुगतान विधि नाम भी यही है। डिफ़ॉल्ट: Flutterwave। आवश्यक, 128 अक्षरों तक।

Description: Confirm Order चरण पर पुष्टि बटन के ऊपर दिखाया जाने वाला भुगतान विधि विवरण। डिफ़ॉल्ट: Pay securely via Card, Bank Transfer, USSD, Mobile Money via Flutterwave.

Sort Order: चेकआउट पर भुगतान विधियों के बीच Flutterwave की स्थिति। खाली छोड़ें या पूर्ण संख्या दर्ज करें।

Geo Zone: Flutterwave केवल चुने गए geo zone के भुगतान पते के लिए दिखाएँ। डिफ़ॉल्ट: All zones। Geo zone System > Localisation > Geo Zones में सेट किए जाते हैं।

Total: चेकआउट कुल राशि, स्टोर की डिफ़ॉल्ट मुद्रा में, जिस तक पहुँचने पर ही Flutterwave दिखाया जाए। किसी भी राशि पर Flutterwave देने के लिए खाली छोड़ें।

API कुंजियाँ

Flutterwave डैशबोर्ड में Settings, API keys के अंतर्गत से सीक्रेट कुंजियाँ कॉपी करें (इस सेक्शन में एक लिंक है)। टेस्ट मोड और लाइव मोड की कुंजियाँ अलग होती हैं।

Live mode: वास्तविक भुगतान स्वीकार करता है। टेस्ट मोड के लिए इसे बंद करें। टेस्ट मोड टेस्ट सीक्रेट कुंजी उपयोग करता है और कोई वास्तविक राशि नहीं ली जाती। लाइव मोड लाइव सीक्रेट कुंजी उपयोग करता है। डिफ़ॉल्ट: बंद (टेस्ट मोड)। जब तक टेस्ट मोड चालू है, ग्राहक Confirm Order चरण पर TEST MODE - no real payments will be processed. देखते हैं।

Test Secret Key: आपकी Flutterwave टेस्ट सीक्रेट कुंजी (FLWSECK_TEST-...)।

Live Secret Key: आपकी Flutterwave लाइव सीक्रेट कुंजी (FLWSECK-...)।

सेव की गई कुंजियाँ और सीक्रेट hash फिर कभी नहीं दिखाए जाते। फ़ील्ड खाली रहता है और Saved — leave empty to keep it. दिखाता है। केवल तभी नया मान दर्ज करें जब उसे बदलना हो। सेव किया गया मान हटाने के लिए फ़ील्ड के नीचे Clear the saved value पर टिक करें और Save पर क्लिक करें।

Webhook

Webhook भुगतानों की पुष्टि तब भी करता है जब ग्राहक आपके स्टोर पर वापस न आए। Flutterwave डैशबोर्ड में Settings, Webhooks के अंतर्गत इस सेक्शन के Webhook URL में दिखाया गया URL और अपनी पसंद का सीक्रेट hash दर्ज करें, टेस्ट मोड और लाइव मोड दोनों में। OpenCart 3 पर URL कुछ इस तरह दिखता है: https://your-store/index.php?route=extension/payment/wcp_flutterwave_payment/webhook, OpenCart 4 पर https://your-store/index.php?route=extension/wcp_flutterwave_payment/payment/wcp_flutterwave_payment.webhook जैसा, और यह आपके स्टोर के पते से बनता है। यह HTTPS के माध्यम से इंटरनेट से पहुँच योग्य होना चाहिए। URL को ठीक वैसे ही कॉपी करें जैसा सेटिंग्स दिखाती हैं। एक्सटेंशन इस इवेंट पर प्रतिक्रिया देता है:

charge.completed: एक चार्ज पूरा हुआ। एक्सटेंशन उस मोड की सीक्रेट कुंजी से, जिसमें भुगतान हुआ था, Flutterwave से लेन-देन फिर से पढ़ता है और परिणाम लागू करता है।

अन्य इवेंट अनदेखे किए जाते हैं।

Secret Hash: webhook का सीक्रेट hash। यह आपके Flutterwave डैशबोर्ड की webhook सेटिंग्स के मान से मेल खाना चाहिए। Flutterwave इसे हर webhook के साथ भेजता है, और टेस्ट तथा लाइव मोड के लिए एक ही मान उपयोग होता है। वैध सीक्रेट hash के बिना webhooks अस्वीकार किए जाते हैं। Webhook के बिना, भुगतान केवल तभी पुष्ट होता है जब ग्राहक आपके स्टोर पर लौटता है।

भुगतान

Payment Options: Flutterwave पेज पर दिखाने वाली भुगतान विधियाँ, कॉमा से अलग की हुई, उदाहरण के लिए card, banktransfer, ussd, mobilemoney। आपके खाते में सक्षम सभी विधियाँ दिखाने के लिए खाली छोड़ें। सेव करते समय सूची साफ़ की जाती है (छोटे अक्षर, कोई डुप्लिकेट नहीं)।

Autocomplete Orders: भुगतान किए गए ऑर्डर को Paid Order Status के बजाय Complete Order Status मिलता है। डिफ़ॉल्ट: बंद।

ऑर्डर

OpenCart Confirm Order चरण पर बिना स्थिति के ऑर्डर बनाता है (लापता ऑर्डर)। ऑर्डर को स्थिति तभी मिलती है जब Flutterwave API के माध्यम से भुगतान की पुष्टि कर दे। नीचे के हर फ़ील्ड में आपके OpenCart ऑर्डर स्टेटस सूचीबद्ध हैं।

Paid Order Status: पुष्ट भुगतान के बाद की स्थिति। डिफ़ॉल्ट: प्रोसेसिंग।

Complete Order Status: Autocomplete Orders चालू होने पर पुष्ट भुगतान के बाद की स्थिति। डिफ़ॉल्ट: पूर्ण।

Awaiting Payment Status: ग्राहक तब लौटा जब भुगतान अभी भी Flutterwave पर लंबित था (बैंक ट्रांसफ़र, USSD, मोबाइल मनी)। webhook के पुष्टि करने तक ऑर्डर यही स्थिति रखता है। डिफ़ॉल्ट: लंबित।

On Hold (Review) Status: ऐसे भुगतान जिनकी राशि या मुद्रा ऑर्डर से मेल नहीं खाती, या जो ऑर्डर रद्द होने के बाद पहुँचते हैं, इस स्थिति और कारण बताने वाले नोट के साथ आते हैं। डिफ़ॉल्ट: लंबित, क्योंकि OpenCart में On hold स्थिति नहीं है। आप System > Localisation > Order Statuses में अपनी स्थिति बना सकते हैं और यहाँ चुन सकते हैं।

Failed Status: प्रतीक्षारत ऑर्डर का लंबित भुगतान Flutterwave पर विफल हुआ। डिफ़ॉल्ट: विफल।

Refunded Status: ऑर्डर पेज से भुगतान पूरी तरह रिफ़ंड होने के बाद सेट होता है। डिफ़ॉल्ट: रिफ़ंड किया गया।

उन्नत

Debug log: डीबगिंग के लिए Flutterwave API इवेंट्स को OpenCart लॉग फ़ोल्डर (storage/logs) में flwv_debug.log.php में लिखता है। यह फ़ाइल वेब से नहीं खुल सकती, और 5 MB पर इसे flwv_debug.old.log.php में ले जाया जाता है। त्रुटियाँ और चेतावनियाँ हमेशा लॉग होती हैं। कुंजियाँ, सीक्रेट hash और ग्राहक का डेटा कभी लॉग नहीं होते। डिफ़ॉल्ट: बंद।

Log: लॉग का आकार और नवीनतम प्रविष्टियाँ दिखाता है। लॉग खाली करने के लिए Clear log पर क्लिक करें।

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

इम्पोर्ट / एक्सपोर्ट

Export: Download JSON सेटिंग्स को JSON फ़ाइल के रूप में सेव करता है। API Keys और Secret Keys एक्सपोर्ट नहीं होतीं।

Import: पहले एक्सपोर्ट किया गया JSON चिपकाएँ और सेटिंग्स बहाल करने के लिए Import पर क्लिक करें। सेव की गई कुंजियाँ और सीक्रेट hash बने रहते हैं।

चेकआउट

Payment Method चरण पर ग्राहक भुगतान विधि चुनता है (डिफ़ॉल्ट रूप से Flutterwave)। Confirm Order चरण पर ग्राहक को आपका विवरण और नोट You will be redirected to the Flutterwave checkout page. दिखता है। OpenCart इसी चरण पर बिना स्थिति के ऑर्डर बनाता है। OpenCart 4 पर ग्राहक भुगतान विधि ब्लॉक के Choose बटन से, Payment method options विंडो में भुगतान विधि चुनता है, और चेकआउट पेज के नीचे Confirm Order पर क्लिक करता है। जब ग्राहक Confirm Order पर क्लिक करता है, तो एक्सटेंशन ऑर्डर की मुद्रा में ऑर्डर कुल राशि के लिए एक Flutterwave भुगतान बनाता है, जिसमें ग्राहक का ईमेल, भुगतान पते का फ़ोन और नाम, आपके स्टोर का नाम और लोगो, तथा ऑर्डर नंबर के साथ Payment for order जाता है, और ग्राहक को Flutterwave चेकआउट पेज पर भेजता है। एक वैध ईमेल पता आवश्यक है। वहाँ ग्राहक आपके खाते में सक्षम किसी एक विधि (या Payment Options में सूचीबद्ध विधियों) से भुगतान करता है।

भुगतान के बाद ग्राहक आपके स्टोर पर लौटता है। ऑर्डर केवल तभी भुगतान किया हुआ चिह्नित होता है जब Flutterwave उसकी पुष्टि करे: webhook द्वारा, या ग्राहक के लौटने पर सर्वर-साइड जाँच द्वारा। फिर ऑर्डर को OpenCart के सामान्य तरीके से स्थिति मिलती है, सामान्य ऑर्डर ईमेल और स्टॉक अपडेट के साथ, और ग्राहक को OpenCart का ऑर्डर सफलता पेज दिखता है। यदि भुगतान अभी भी लंबित है, जैसे बैंक ट्रांसफ़र, USSD या मोबाइल मनी भुगतान, तो ऑर्डर को Awaiting Payment Status मिलता है और पेज पर Your payment is being confirmed by Flutterwave. You will receive an e-mail as soon as it is confirmed. भी दिखता है। जब Flutterwave भुगतान की पुष्टि करता है, तो ऑर्डर भुगतान किए गए स्टेटस पर चला जाता है और ग्राहक को ईमेल से सूचना मिलती है। यदि ऑर्डर समीक्षा के लिए होल्ड पर रखा गया, उदाहरण के लिए क्योंकि भुगतान की गई राशि ऑर्डर से मेल नहीं खाती, तो पेज Your payment was received and your order is being reviewed. We will contact you if anything is needed. दिखाता है। यदि कोई लंबित भुगतान बाद में विफल होता है और ग्राहक ऑर्डर पर लौटता है, तो पेज Your Flutterwave payment was not completed. Please contact us about this order. दिखाता है।

यदि ग्राहक के लौटने पर Flutterwave तक पहुँच नहीं हो पाती, तो एक Payment confirmation पेज कहता है: Your payment is being confirmed by Flutterwave. Your order will be confirmed as soon as Flutterwave confirms it — please do not pay again. साथ में Check again और Back to checkout बटन। webhook के आते ही वह ऑर्डर की स्थिति सेट करता है।

यदि भुगतान अस्वीकार हुआ, तो ग्राहक Your payment was declined. You can try again or choose another payment method. के साथ चेकआउट पर लौटता है। यदि ग्राहक Flutterwave पेज पर रद्द करता है, तो संदेश Payment was cancelled. You can try again or choose another payment method. होता है। यदि भुगतान पूरा नहीं हुआ, तो संदेश The payment was not completed. You can try again or choose another payment method. होता है। यदि भुगतान सत्यापित नहीं हो सका, तो संदेश Payment verification failed. Please contact support. होता है। ऑर्डर बिना स्थिति के रहता है और कार्ट सुरक्षित रहता है, ताकि ग्राहक फिर से भुगतान कर सके। OpenCart 4 पर ये संदेश चेकआउट पेज के ऊपर दिखाए जाते हैं।

OpenCart 3 हर बार Confirm Order चरण दिखने पर एक नया ऑर्डर बनाता है; OpenCart 4 चेकआउट के ऑर्डर को अपडेट करता है, इसलिए नया प्रयास वही ऑर्डर भुगतान करता है। हर प्रयास को अपना संदर्भ मिलता है। नया भुगतान करने से पहले, इस ऑर्डर और इसी कार्ट के अन्य ऑर्डरों के पिछले 24 घंटों के खुले और लंबित भुगतान Flutterwave से जाँचे जाते हैं। यदि उनमें से कोई भुगतान हो चुका है, तो वह अपने ऑर्डर की पुष्टि करता है और ग्राहक दोबारा भुगतान करने के बजाय सफलता पेज पर जाता है। यदि इसी कार्ट का कोई अन्य ऑर्डर पहले ही Flutterwave से भुगतान हो चुका है, तो नया भुगतान भी शुरू नहीं होता। बाद में भुगतान किया गया पुराना भुगतान लिंक अब भी स्वीकार किया जाता है। यदि वही कार्ट दो बार भुगतान होता है, उदाहरण के लिए दो ब्राउज़र टैब में, तो केवल पहला भुगतान अपने ऑर्डर को स्थिति देता है: दूसरा ऑर्डर बिना स्थिति के रहता है, और भुगतान किए गए ऑर्डर पर एक नोट लगता है कि आप दूसरा भुगतान Flutterwave डैशबोर्ड में रिफ़ंड करें।

OpenCart 4 में ऑर्डर तब तक चेकआउट में रहता है जब तक सफलता पेज नहीं दिखाया जाता। यदि इस बीच वह ऑर्डर बिना भुगतान के बंद हो गया (उदाहरण के लिए उसका लंबित भुगतान विफल हो गया या आपने उसे रद्द कर दिया), तो ग्राहक को अस्वीकृत भुगतान के संदेश के साथ चेकआउट पर वापस भेजा जाता है, और अगला Confirm Order कार्ट का एक नया ऑर्डर भुगतान करता है। यदि आपने ऑर्डर को भुगतान के बाद बंद किया, तो संदेश This order can no longer be paid (it was closed by the store). Please confirm your order again. होता है। यदि वह ऑर्डर पहले से भुगतान किया हुआ है, पर उसके बाद कार्ट बदल गया है, जिसमें नई मात्रा भी शामिल है, तो संदेश Your previous order is already paid. Please confirm the order again: the cart will be paid with a new order. होता है। भुगतान किया हुआ ऑर्डर किसी दूसरे कार्ट के लिए कभी भुगतान किया हुआ नहीं दिखाया जाता।

यदि Flutterwave भुगतान शुरू नहीं कर पाता, तो ग्राहक Confirm Order चरण पर एक छोटा संदेश देखता है, उदाहरण के लिए Flutterwave is temporarily unavailable. Please try again in a moment or choose another payment method. तकनीकी कारण लॉग में लिखा जाता है।

स्टोर मेंटेनेंस मोड में होने पर भी webhook और रिटर्न URL काम करते हैं, क्योंकि OpenCart 3 भुगतान एक्सटेंशन के अनुरोधों को आने देता है, और OpenCart 4 पर एक्सटेंशन इनके लिए एक startup action जोड़ता है।

यह एक्सटेंशन केवल एकल भुगतान लेता है। आपकी साइट पर कोई इनलाइन या मोडल चेकआउट नहीं है, और कोई सेव किए गए कार्ड, सब्सक्रिप्शन, विभाजित भुगतान या भुगतान योजनाएँ नहीं हैं। होस्ट किए गए भुगतान लिंक Flutterwave API के माध्यम से रद्द नहीं किए जा सकते, इसलिए कोई पुराना लिंक अब भी भुगतान किया जा सकता है।

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

ऑर्डर स्टेटस

कोई स्टेटस नहीं (missing order): ग्राहक को Flutterwave पर भेजा गया और उसने भुगतान नहीं किया, भुगतान अस्वीकार या रद्द हुआ, या Flutterwave ने अभी भुगतान की पुष्टि नहीं की है। Sales > Orders में ऐसे ऑर्डर केवल तभी दिखते हैं जब Order Status फ़िल्टर Missing Orders पर सेट हो।

Paid Order Status (डिफ़ॉल्ट प्रोसेसिंग) या Complete Order Status (डिफ़ॉल्ट पूर्ण): भुगतान की पुष्टि हो गई। Autocomplete Orders चालू होने पर Complete Order Status उपयोग होता है। एक नोट राशि, भुगतान विधि, Flutterwave संदर्भ, लेन-देन और मोड दिखाता है।

Awaiting Payment Status (डिफ़ॉल्ट लंबित): भुगतान Flutterwave पर अभी लंबित था जब ग्राहक लौटा। Flutterwave भुगतान की पुष्टि करने पर ऑर्डर भुगतान किए गए स्टेटस पर चला जाता है।

On Hold (Review) Status (डिफ़ॉल्ट लंबित): सत्यापित राशि या मुद्रा ऑर्डर से मेल नहीं खाती थी, या भुगतान ऐसे ऑर्डर पर पहुँचा जिसे बिना भुगतान के कोई स्टेटस (जैसे रद्द) दिया जा चुका था। वास्तव में भुगतान की गई राशि और मुद्रा दर्ज की जाती है, और नोट इसे समझाता है। ऑर्डर पूरा करें या भुगतान रिफ़ंड करें। यदि ऑर्डर पर पहले से कोई अन्य प्रोसेसिंग स्टेटस था, तो केवल एक नोट जोड़ा जाता है।

Failed Status (डिफ़ॉल्ट विफल): Flutterwave ने प्रतीक्षारत ऑर्डर के नवीनतम भुगतान प्रयास को विफल या रद्द बताया। नोट कारण दिखाता है। पिछले प्रयास और भुगतान किए गए ऑर्डर नहीं बदले जाते।

Refunded Status (डिफ़ॉल्ट रिफ़ंड किया गया): भुगतान एक्सटेंशन के माध्यम से पूरी तरह रिफ़ंड किया गया।

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

नोट ऑर्डर के History में वे प्रविष्टियाँ हैं जो ग्राहक को दिखाई नहीं देतीं।

VibeFox Flutterwave Payment टैब

Sales > Orders में Flutterwave से भुगतान किया गया ऑर्डर खोलें। ऑर्डर पेज के नीचे, History और Additional के बगल में, VibeFox Flutterwave Payment टैब Transaction reference, Mode (Test या Live), भुगतान की Status, Transaction ID, Flutterwave reference, Payment type, Paid / refunded राशियाँ, रिफ़ंड फ़ॉर्म, रिफ़ंड इतिहास और ऑर्डर के Flutterwave notes दिखाता है। यह टैब उन उपयोगकर्ताओं को दिखाई देता है जिनकी एक्सटेंशन तक पहुँच है।

रिफ़ंड

टैब में Amount दर्ज करें (जो राशि अभी रिफ़ंड नहीं हुई है, वह अपने-आप भर जाती है), वैकल्पिक रूप से Reason (optional), और Refund via Flutterwave पर क्लिक करें। Refund this amount through Flutterwave? This cannot be undone. प्रश्न की पुष्टि करें। पूर्ण और आंशिक रिफ़ंड समर्थित हैं। आपके पास एक्सटेंशन बदलने का अधिकार होना चाहिए (System > Users > User Groups में सेट किया जाता है)। रिफ़ंड उसी राशि और मुद्रा में होते हैं जो Flutterwave ने चार्ज की, इसलिए राशि या मुद्रा में अंतर होने पर आप ऑर्डर कुल के बजाय ग्राहक द्वारा वास्तव में चुकाई गई राशि तक ही रिफ़ंड कर सकते हैं। रिफ़ंड उस मोड (टेस्ट या लाइव) की सीक्रेट कुंजी से भेजा जाता है जिसमें भुगतान हुआ था, इसलिए वह कुंजी सेट होनी चाहिए। यदि Flutterwave रिफ़ंड अस्वीकार करता है, तो टैब त्रुटि दिखाता है और कोई रिफ़ंड दर्ज नहीं होता। सफल रिफ़ंड, रिफ़ंड ID और स्थिति (पूर्ण, या Flutterwave द्वारा बताई गई स्थिति के साथ आरंभ) के साथ रिफ़ंड इतिहास और नोट्स में जुड़ता है। पूर्ण रिफ़ंड ग्राहक को सूचित किए बिना और उत्पादों को स्टॉक में वापस किए बिना ऑर्डर को Refunded Status पर सेट करता है, जैसे मैन्युअल स्थिति परिवर्तन। आंशिक रिफ़ंड स्थिति नहीं बदलता। रिफ़ंड तब उपलब्ध होते हैं जब Flutterwave भुगतान की पुष्टि कर चुका हो।

Sales > Returns में उत्पाद वापसी Flutterwave के माध्यम से पैसा वापस नहीं भेजती। Flutterwave डैशबोर्ड में किए गए रिफ़ंड OpenCart में वापस सिंक नहीं होते। आवश्यक हो तो ऑर्डर की स्थिति मैन्युअल रूप से अपडेट करें।

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

यह एक्सटेंशन vibefox.net से मिली VibeFox लाइसेंस कुंजी के साथ काम करता है। License — VibeFox Flutterwave Payment लाइसेंस ब्लॉक, Extensions > Extensions > Payments > VibeFox Flutterwave Payment > Edit पर सेटिंग्स के ऊपर पहला ब्लॉक है। कुंजी License key में चिपकाएँ और Activate पर क्लिक करें। उसके बाद ब्लॉक कुंजी को मास्क करके, स्थिति (जैसे लाइसेंस की वैधता की तारीख और आपका डोमेन) और बटन दिखाता है: स्थिति फिर से जाँचने के लिए Check now, दूसरी कुंजी दर्ज करने के लिए Change key, और इस स्टोर से कुंजी हटाने के लिए Remove key। इनके नीचे Product: opencart-payment-flutterwave की पंक्ति और Manage licenses and domains in your account लिंक है, जो आपका vibefox.net खाता खोलता है। कुंजी केवल वे एडमिन उपयोगकर्ता बदल सकते हैं जिनके पास एक्सटेंशन के लिए Modify अनुमति है। ब्लॉक के पाठ एडमिन भाषा का पालन करते हैं (अंग्रेज़ी और रूसी शामिल हैं)।

यदि कुंजी स्वीकार नहीं होती, तो ब्लॉक कारण बताता है, जैसे Key not found, This key belongs to another product, Domain limit reached, या तारीख के साथ License expired on। स्टोर का पता बदलने के बाद, या अपने खाते में डोमेन स्लॉट खाली करने के बाद, Check now पर क्लिक करें। यदि लाइसेंस सर्वर तक नहीं पहुँचा जा सकता, तो एक्सटेंशन अंतिम ज्ञात स्थिति के साथ काम करता रहता है।

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

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

जब लाइसेंस की अवधि समाप्त होती है, तो एक्सटेंशन काम करता रहता है, लेकिन अपडेट और सहायता के लिए नवीनीकरण चाहिए। जब आप एडमिन Dashboard या Edit पेज खोलते हैं, तो स्थिति अपने-आप फिर से जाँची जाती है: कुंजी दर्ज होने के बाद पहले 14 दिनों तक रोज़ एक बार, फिर हफ़्ते में एक बार। किसी cron जॉब की ज़रूरत नहीं है। एक्सटेंशन अनइंस्टॉल करने पर लाइसेंस कुंजी और लाइसेंस स्थिति हमेशा हटा दी जाती हैं।

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

चेकआउट पर Flutterwave नहीं दिखता: जाँचें कि लाइसेंस सक्रिय है, Enable/Disable चालू है, और वर्तमान मोड की सीक्रेट कुंजी भरी हुई है और मोड से मेल खाती है: टेस्ट मोड में टेस्ट कुंजी (FLWSECK_TEST-…), लाइव मोड में लाइव कुंजी (FLWSECK-…)। अन्यथा सेटिंग्स पेज चेतावनी दिखाता है। यह भी जाँचें कि भुगतान का पता चुने गए Geo Zone में है, और ऑर्डर सेटिंग्स में तय Total तक पहुँचता है।

भुगतान हो गया, पर ऑर्डर बिना स्थिति के है: webhook काम नहीं कर रहा है। Flutterwave डैशबोर्ड में जाँचें कि webhook URL बिल्कुल वही है जो Webhook URL में दिखाया गया है, उस मोड में (टेस्ट या लाइव) जिसका आप उपयोग करते हैं, और उसका सीक्रेट hash एक्सटेंशन के Secret Hash के समान है। लंबित बैंक ट्रांसफ़र, USSD और मोबाइल मनी तब तक लंबित रहते हैं जब तक Flutterwave उन्हें पुष्ट न कर दे। ग्राहक के भुगतान के बाद स्टोर पर लौटने पर भी ऑर्डर को स्थिति मिलती है। Debug log चालू करें और एक्सटेंशन पेज पर Log फ़ील्ड देखें।

Webhook का उत्तर Invalid hash या Secret hash not configured: Flutterwave डैशबोर्ड का सीक्रेट hash एक्सटेंशन वाले से अलग है, या एक्सटेंशन में कोई है ही नहीं। दोनों जगह एक ही मान दर्ज करें।

Webhook का उत्तर Verification failed, Busy, retry later या Order could not be updated, retry later: भुगतान सत्यापित करने के लिए Flutterwave तक पहुँच नहीं हो सकी, लेन-देन अभी दिखाई नहीं दे रहा, ऑर्डर किसी अन्य अनुरोध द्वारा संसाधित हो रहा था, या उसकी स्थिति सेट नहीं हो सकी। Flutterwave webhook को दोबारा भेजता है। लॉग कारण दिखाता है।

Webhook URL ब्राउज़र में Empty body दिखाता है: यह सामान्य है। यह URL केवल Flutterwave से आने वाले webhooks स्वीकार करता है।

ग्राहक देखता है Payment gateway is not properly configured: वर्तमान मोड की सीक्रेट कुंजी गायब है या दूसरे मोड की है।

ग्राहक देखता है This payment method is not available: चेकआउट सत्र अब ऑर्डर से मेल नहीं खाता, या भुगतान विधि इस बीच बंद हो गई। ग्राहक चेकआउट पेज को फिर से लोड करता है।

ग्राहक देखता है We could not match this payment to an order: वापसी लिंक इस ऑर्डर के किसी भुगतान का नहीं है। यदि ग्राहक से शुल्क लिया गया है, तो Flutterwave डैशबोर्ड में भुगतान खोजें।

Flutterwave अपने पेज पर त्रुटि दिखाता है, या ग्राहक देखता है Flutterwave could not start the payment: आपका Flutterwave खाता शायद ऑर्डर की मुद्रा या चुने गए भुगतान विकल्पों को सपोर्ट नहीं करता।

भुगतान के बाद ऑर्डर होल्ड स्थिति में है: VibeFox Flutterwave Payment टैब के नोट पढ़ें (ऑर्डर स्टेटस देखें), फिर ऑर्डर पूरा करें या भुगतान रिफ़ंड करें।

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

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

रिफ़ंड का उत्तर Another operation on this payment is running: उसी ऑर्डर का कोई अन्य रिफ़ंड उसी समय भेजा जा रहा था। थोड़ी देर प्रतीक्षा करें, रिफ़ंड इतिहास देखें और ज़रूरत हो तो फिर प्रयास करें।

डेवलपर्स के लिए: एक्सटेंशन OpenCart इवेंट flwv_payment_request (Flutterwave को भेजा गया डेटा) और flwv_currency_decimals (मुद्रा की सटीकता) ट्रिगर करता है।

अनइंस्टॉल

Extensions > Extensions पर जाएँ, प्रकार Payments चुनें और VibeFox Flutterwave Payment के बगल में Uninstall (लाल − बटन) पर क्लिक करें। इस एक्सटेंशन की लाइसेंस कुंजी और लाइसेंस स्थिति हमेशा हटाई जाती है। OpenCart एक्सटेंशन की अपनी सेटिंग्स हमेशा हटाता है: Enable/Disable, Sort Order, Geo Zone, Total और Orders सेक्शन के ऑर्डर स्टेटस, जो दोबारा इंस्टॉल करने पर डिफ़ॉल्ट पर लौट आते हैं। एक्सटेंशन का OpenCart इवेंट भी हटा दिया जाता है (OpenCart 4 पर उसके इवेंट और उसका startup action भी, जो मेंटेनेंस मोड में webhook और रिटर्न URL को आने देता है)। यदि Delete data on uninstall चालू है, तो अन्य सेटिंग्स (शीर्षक, विवरण, मोड, कुंजियाँ, सीक्रेट hash, भुगतान विकल्प, ऑटोकम्प्लीट, डीबग लॉग स्विच) और लॉग हट जाते हैं। यदि यह बंद है, तो वे बाद में दोबारा इंस्टॉल करने के लिए रखे जाते हैं। Flutterwave भुगतान और रिफ़ंड के रिकॉर्ड हमेशा रखे जाते हैं, इसलिए पहले भुगतान किए गए ऑर्डर दोबारा इंस्टॉल करने के बाद भी रिफ़ंड किए जा सकते हैं। मौजूदा ऑर्डर अपने भुगतान नोट्स रखते हैं।

OpenCart 4 पर एक्सटेंशन की फ़ाइलें भी हटाने के लिए, अनइंस्टॉल के बाद Extensions > Installer पर जाएँ, इंस्टॉल किए गए एक्सटेंशन की सूची में VibeFox Flutterwave Payment के बगल में Uninstall (नारंगी − बटन) पर क्लिक करें, फिर अपलोड किया गया पैकेज हटाने के लिए Delete (लाल डस्टबिन बटन) पर क्लिक करें।

Flutterwave उसके संबंधित मालिक का ट्रेडमार्क है। यह एक्सटेंशन Flutterwave से संबद्ध नहीं है और Flutterwave द्वारा समर्थित नहीं है।