गेटवे टेम्पलेट
गेटवे टेम्पलेट आपको अपना स्वयं का POS-केवल भुगतान गेटवे बनाने के लिए एक प्रारंभिक बिंदु देता है। यह एक कार्यशील वर्डप्रेस प्लगइन उत्पन्न करता है जिसमें एकल PHP फ़ाइल होती है जिसे आप अपनी आवश्यकताओं के अनुसार स्थापित और अनुकूलित कर सकते हैं।
विशेषताएँ
न्यूनतम कोड
केवल आवश्यक वस्तुएं वाली एकल PHP फ़ाइल - पढ़ने और संशोधित करने में आसान
केवल POS
डिफ़ॉल्ट रूप से वेब चेकआउट पर अक्षम, WCPOS सेटिंग्स के माध्यम से सक्षम किया गया
स्वचालित सेटअप
एक शेल स्क्रिप्ट आपके लिए सभी प्लेसहोल्डर प्रतिस्थापन संभालती है
GitHub रिलीज़
एक संस्करण बढ़ाने को धकेलें और GitHub Actions एक डाउनलोड करने योग्य ZIP बनाएगा
शुरू करना
टेम्पलेट रिपॉजिटरी क्लोन करें
git clone https://github.com/wcpos/woocommerce-gateway-template.git
cd woocommerce-gateway-template
या अपनी स्वयं की कॉपी बनाने के लिए GitHub रिपॉजिटरी पर इस टेम्पलेट का उपयोग करें बटन पर क्लिक करें।
सेटअप स्क्रिप्ट चलाएँ
./create-gateway.sh
स्क्रिप्ट कुछ विवरण पूछती है - आपके गेटवे का नाम, एक संक्षिप्त विवरण, और आपका GitHub उपयोगकर्ता नाम - फिर आपके द्वारा चुने गए निर्देशिका में उपयोग के लिए तैयार प्लगइन उत्पन्न करती है।
प्लगइन स्थापित करें
आपके पास दो विकल्प हैं:
विकल्प A — फ़ोल्डर को सीधे कॉपी करें (यदि आपके पास सर्वर तक पहुंच है):
उत्पन्न गेटवे फ़ोल्डर को अपनी साइट के wp-content/plugins/ निर्देशिका में कॉपी करें।
विकल्प B — ज़िप और अपलोड करें (अधिकतर लोगों के लिए सबसे आसान):
- उत्पन्न फ़ोल्डर को
.zipफ़ाइल में संकुचित करें - वर्डप्रेस में, प्लगइन्स > नया जोड़ें > प्लगइन अपलोड करें पर जाएं
- ज़िप फ़ाइल चुनें और अब स्थापित करें पर क्लिक करें
WCPOS में सक्षम करें
- WP Admin > WCPOS > सेटिंग्स > चेकआउट पर जाएं
- सूची में अपना नया गेटवे खोजें और इसे सक्षम करें
डिफ़ॉल्ट रूप से गेटवे सामान्य वेब चेकआउट पर अक्षम होता है। WCPOS यह नियंत्रित करता है कि कौन से गेटवे अपनी सेटिंग्स के माध्यम से POS में दिखाई देते हैं।
मैनुअल सेटअप
यदि आप स्क्रिप्ट का उपयोग नहीं करना चाहते हैं, तो आप स्वयं प्लेसहोल्डर्स को प्रतिस्थापित कर सकते हैं। प्रत्येक फ़ाइल को टेक्स्ट संपादक में खोलें और निम्नलिखित को खोजें और बदलें:
| प्लेसहोल्डर | क्या दर्ज करें | उदाहरण |
|---|---|---|
{{GATEWAY_NAME}} | आपके गेटवे का प्रदर्शन नाम | नकद भुगतान |
{{GATEWAY_SLUG}} | एक URL-सुरक्षित पहचानकर्ता (लघु अक्षर, हाइफ़न) | नकद-भुगतान |
{{GATEWAY_DESCRIPTION}} | गेटवे का संक्षिप्त विवरण | WCPOS में नकद भुगतान स्वीकार करें |
{{GATEWAY_DEFAULT_DESCRIPTION}} | चेकआउट पर कैशियर को दिखाया जाने वाला पाठ | बिक्री बिंदु पर नकद से भुगतान करें |
{{GITHUB_USERNAME}} | आपका GitHub उपयोगकर्ता नाम | kilbot |
{{REPO_NAME}} | आपका रिपॉजिटरी नाम | cash-payment-gateway |
{{AUTHOR_NAME}} | आपका नाम | kilbot |
{{GATEWAY_ID}} | हाइफ़न के बजाय अंडरस्कोर के साथ स्लग | cash_payment |
{{GATEWAY_CLASS_NAME}} | प्रत्येक शब्द को बड़े अक्षरों में, अंडरस्कोर से जोड़ा गया | Cash_Payment |
{{GATEWAY_FUNCTION_PREFIX}} | गेटवे आईडी के समान | cash_payment |
फिर wcpos-{{GATEWAY_SLUG}}.php का नाम बदलें ताकि यह आपके स्लग से मेल खाता हो (जैसे, wcpos-cash-payment.php)।
सेटअप स्क्रिप्ट स्वचालित रूप से GATEWAY_ID, GATEWAY_CLASS_NAME, और GATEWAY_FUNCTION_PREFIX को नाम और स्लग से निकालती है, इसलिए आपको केवल मैनुअल सेटअप करते समय इनके बारे में सोचना है।
यह कैसे काम करता है
उत्पन्न प्लगइन एक WooCommerce भुगतान गेटवे वर्ग को पंजीकृत करता है। यहाँ कुछ महत्वपूर्ण बातें हैं:
$this->enabled = 'no'— गेटवे वेब चेकआउट से छिपा हुआ है। WCPOS इसे आपकी POS सेटिंग्स के आधार पर POS में सक्षम करता है।process_payment()—$order->payment_complete()को कॉल करता है, जो आदेश को भुगतान के रूप में चिह्नित करता है और स्वचालित रूप से स्टॉक में कमी करता है।init_form_fields()— WooCommerce सेटिंग्स में प्रदर्शित होने वाले शीर्षक और विवरण फ़ील्ड को परिभाषित करता है।
अपने गेटवे को अनुकूलित करना
भुगतान फ़ील्ड जोड़ना
यदि आपके गेटवे को कैशियर से इनपुट की आवश्यकता है (उदाहरण के लिए, एक संदर्भ संख्या), तो payment_fields() तरीकों को ओवरराइड करें:
public function payment_fields() {
if ( $this->description ) {
echo wpautop( wptexturize( $this->description ) );
}
woocommerce_form_field( 'my_gateway_reference', array(
'type' => 'text',
'label' => __( 'Reference Number', 'your-text-domain' ),
'required' => true,
) );
}
आप फिर process_payment() में $_POST['my_gateway_reference'] के माध्यम से सबमिट किए गए मान को पढ़ सकते हैं। किसी भी इनपुट को sanitize_text_field() के साथ साफ करना याद रखें।
भुगतान व्यवहार बदलना
डिफ़ॉल्ट टेम्पलेट तुरंत आदेशों को भुगतान करता है। यदि आपकी कार्यप्रणाली में बाद में भुगतान की आवश्यकता है (जैसे कि एक चालान), तो payment_complete() के बजाय एक स्थिति अपडेट का प्रतिस्थापन करें:
public function process_payment( $order_id ) {
$order = wc_get_order( $order_id );
// Set to pending — the customer will pay later.
$order->update_status( 'pending', __( 'Awaiting payment', 'your-text-domain' ) );
// Stock must be reduced manually when not using payment_complete().
wc_reduce_stock_levels( $order_id );
return array(
'result' => 'success',
'redirect' => $this->get_return_url( $order ),
);
}
परिवर्तनों और अपडेट करने के लिए
अपने गेटवे को स्थापित करने के बाद, आप भुगतान लॉजिक को समायोजित करने के लिए प्लगइन फ़ाइल को संपादित करना जारी रख सकते हैं। एक अद्यतन संस्करण स्थापित करने के लिए:
- उत्पन्न फ़ोल्डर में
wcpos-your-slug.phpसंपादित करें - प्लगइन शीर्षलेख में
संस्करण:संख्या अपडेट करें (जैसे,0.1.0से0.2.0) - फ़ोल्डर को ज़िप करें और फिर से प्लगइन्स > नया जोड़ें > प्लगइन अपलोड करें के माध्यम से अपलोड करें, या
wp-content/plugins/में सीधे फ़ोल्डर को प्रतिस्थापित करें।
जब आप एक ही प्लगइन नाम के साथ एक ज़िप अपलोड करते हैं तो वर्डप्रेस पूछेगा कि क्या आप मौजूदा प्लगइन को प्रतिस्थापित करना चाहते हैं — अद्यतन के लिए अपलोड किए गए के साथ वर्तमान को प्रतिस्थापित करें पर क्लिक करें।
GitHub के साथ स्वचालित रिलीज़
यदि आप अपने गेटवे को GitHub रिपॉजिटरी पर धकेलते हैं, तो टेम्पलेट में एक GitHub Actions वर्कफ़्लो शामिल है जो स्वचालित रूप से रिलीज़ बनाता है:
- प्लगइन शीर्षलेख में
संस्करण:संख्या अपडेट करें mainशाखा में कमिट और धक्का दें- GitHub Actions संस्करण परिवर्तन का पता लगाता है और एक डाउनलोड करने योग्य ZIP के साथ एक नई रिलीज़ बनाता है
अन्य उपयोगकर्ता फिर आपकी रिपॉजिटरी के रिलीज़ पृष्ठ से ZIP डाउनलोड कर सकते हैं और इसे किसी भी वर्डप्रेस प्लगइन की तरह स्थापित कर सकते हैं।
समस्या निवारण
गेटवे POS में नहीं दिखाई देता
- जांचें कि प्लगइन सक्रिय है WP Admin > Plugins में
- जाएं WP Admin > WCPOS > Settings > Checkout और सुनिश्चित करें कि गेटवे सक्रिय है
- सत्यापित करें कि WooCommerce स्थापित और सक्रिय है
गेटवे वेब चेकआउट पर दिखाई देता है
- सुनिश्चित करें कि
$this->enabled = 'no';गेटवे कंस्ट्रक्टर में सेट है - WCPOS POS अनुरोधों के लिए इस सेटिंग को ओवरराइड करता है, इसलिए गेटवे केवल POS में दिखाई देना चाहिए
'प्रसंस्करण' में ऑर्डर 'पूर्ण' के बजाय रहते हैं
- WooCommerce उत्पाद प्रकारों के आधार पर आदेश स्थिति सेट करता है। भौतिक उत्पादों को शामिल करने वाले आदेश "प्रसंस्करण" में रहते हैं - यह सामान्य WooCommerce व्यवहार है। केवल उन आदेशों को जो पूरी तरह से आभासी या डाउनलोड योग्य उत्पादों के साथ होते हैं "पूर्ण" के रूप में स्वचालित रूप से चिह्नित किया जाता है।
संसाधन
- GitHub: woocommerce-gateway-template
- WooCommerce भुगतान गेटवे API: WC_Payment_Gateway docs
उदाहरण गेटवे
ये मौजूदा गेटवे उसी दृष्टिकोण का अनुसरण करके बनाए गए थे और अच्छे संदर्भ हैं:
- ईमेल चालान — एक चालान ईमेल भेजता है ताकि ग्राहक बाद में भुगतान कर सके
- वेब चेकआउट — भुगतान के लिए वेब स्टोर पर पुनर्निर्देशित करता है