मुख्य सामग्री के लिए छोड़ें
संस्करण: 1.x

गेटवे टेम्पलेट

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

विशेषताएँ

पूर्ण टेम्पलेट

सभी आवश्यक तरीकों के साथ तैयार-से-उपयोग गेटवे संरचना

POS एकीकरण

WooCommerce POS संगतता के लिए पूर्व-कॉन्फ़िगर किया गया

स्वचालित सेटअप

स्क्रिप्ट-आधारित टेम्पलेट अनुकूलन

विस्तार योग्य

विशिष्ट भुगतान प्रदाताओं के लिए संशोधित और विस्तारित करना आसान

शुरू करना

विकल्प 1: स्वचालित टेम्पलेट निर्माण

यह टेम्पलेट एक स्क्रिप्ट शामिल करता है जो आपके विशेष गेटवे के लिए टेम्पलेट को स्वचालित रूप से अनुकूलित करता है:

  1. रिपॉजिटरी को क्लोन करें:

    git clone https://github.com/wcpos/woocommerce-gateway-template.git
    cd woocommerce-gateway-template
  2. सेटअप स्क्रिप्ट चलाएँ:

    ./create-gateway.sh
  3. प्रांप्ट का पालन करें:

    • अपना गेटवे नाम दर्ज करें (जैसे, "मेरी भुगतान गेटवे")
    • एक गेटवे स्लग दर्ज करें (जैसे, "my-payment")
    • एक विवरण प्रदान करें
    • स्क्रिप्ट एक अनुकूलित प्लगइन उत्पन्न करेगी

विकल्प 2: मैनुअल टेम्पलेट उपयोग

यदि आप मैनुअल अनुकूलन पसंद करते हैं:

  1. टेम्पलेट डाउनलोड करें:

  2. टेम्पलेट को अनुकूलित करें:

    • {{GATEWAY_NAME}} को अपने गेटवे के डिस्प्ले नाम से बदलें
    • {{GATEWAY_SLUG}} को अपने गेटवे के अद्वितीय पहचानकर्ता से बदलें
    • {{GATEWAY_DESCRIPTION}} को अपने गेटवे के विवरण से बदलें
  3. फाइलों का नाम बदलें:

    • wcpos-{{GATEWAY_SLUG}}.php को अपने गेटवे स्लग के अनुसार नाम बदलें
    • फ़ाइल हेडर और प्लगइन जानकारी को अपडेट करें

टेम्पलेट संरचना

मुख्य प्लगइन फ़ाइल

मुख्य प्लगइन फ़ाइल (wcpos-{{GATEWAY_SLUG}}.php) में शामिल हैं:

  • प्लगइन हेडर: वर्डप्रेस प्लगइन जानकारी
  • गेटवे क्लास: मुख्य भुगतान गेटवे क्लास
  • प्रारंभिककरण: प्लगइन सेटअप और हुक
  • एकीकरण: WooCommerce POS संगतता

कुंजी घटक

गेटवे क्लास संरचना:

class WCPOS_Gateway_{{GATEWAY_CLASS}} extends WC_Payment_Gateway {
// Gateway configuration
public function __construct() { }

// Admin settings form
public function init_form_fields() { }

// Process payment (main logic goes here)
public function process_payment( $order_id ) { }

// POS-specific methods
public function payment_fields() { }
}

अनुकूलन गाइड

बुनियादी कॉन्फ़िगरेशन

  1. गेटवे जानकारी:

    $this->id = 'your_gateway_id';
    $this->title = 'Your Gateway Name';
    $this->description = 'Gateway description for customers';
    $this->method_title = 'Admin title';
    $this->method_description = 'Admin description';
  2. समर्थित विशेषताएँ:

    $this->supports = array(
    'products',
    'refunds',
    'subscriptions', // if applicable
    );

भुगतान प्रसंस्करण

मुख्य भुगतान लॉजिक process_payment() विधि में जाता है:

public function process_payment( $order_id ) {
$order = wc_get_order( $order_id );

// Your payment processing logic here
// Example: API calls, validation, etc.

if ( $payment_successful ) {
$order->payment_complete();
return array(
'result' => 'success',
'redirect' => $this->get_return_url( $order )
);
} else {
wc_add_notice( 'Payment failed', 'error' );
return array(
'result' => 'failure'
);
}
}

प्रशासन सेटिंग्स

init_form_fields() में प्रशासन सेटिंग्स कॉन्फ़िगर करें:

public function init_form_fields() {
$this->form_fields = array(
'enabled' => array(
'title' => 'Enable/Disable',
'type' => 'checkbox',
'label' => 'Enable Your Gateway',
'default' => 'yes'
),
'api_key' => array(
'title' => 'API Key',
'type' => 'text',
'description' => 'Enter your API key',
'default' => '',
'desc_tip' => true,
),
// Add more settings as needed
);
}

POS एकीकरण

POS-विशिष्ट कार्यक्षमता के लिए, कार्यान्वयन करें:

public function payment_fields() {
// Custom payment form for POS
if ( is_admin() && isset( $_GET['page'] ) && $_GET['page'] === 'wc-pos' ) {
// POS-specific payment fields
echo '<div class="pos-payment-fields">';
// Your custom POS interface
echo '</div>';
} else {
// Standard web checkout fields
parent::payment_fields();
}
}

विकास सर्वोत्तम प्रथाएँ

कोड मानक

  • वर्डप्रेस कोडिंग मानक: वर्डप्रेस PHP कोडिंग मानकों का पालन करें
  • WooCommerce दिशानिर्देश: WooCommerce विकास प्रथाओं का पालन करें
  • सुरक्षा: इनपुट को साफ करें, डेटा को सत्यापित करें, नॉनसेस का उपयोग करें
  • अंतर्राष्ट्रीयकरण: स्ट्रिंग्स को __() और _e() का उपयोग करके अनुवाद योग्य बनाएं

त्रुटि प्रबंधन

// Proper error handling
try {
$result = $this->process_api_call( $data );
if ( is_wp_error( $result ) ) {
throw new Exception( $result->get_error_message() );
}
} catch ( Exception $e ) {
$order->add_order_note( 'Payment failed: ' . $e->getMessage() );
wc_add_notice( 'Payment processing error', 'error' );
return array( 'result' => 'failure' );
}

लॉगिंग

// Add logging for debugging
if ( $this->debug ) {
$this->log( 'Payment processing started for order ' . $order_id );
}

private function log( $message ) {
if ( empty( $this->logger ) ) {
$this->logger = wc_get_logger();
}
$this->logger->info( $message, array( 'source' => $this->id ) );
}

अपने गेटवे का परीक्षण

विकास वातावरण

  1. परीक्षण मोड: हमेशा एक परीक्षण/सैंडबॉक्स मोड लागू करें
  2. डिबग लॉगिंग: समस्या निवारण के लिए विस्तृत लॉगिंग शामिल करें
  3. त्रुटि परिदृश्य: विभिन्न विफलता स्थितियों का परीक्षण करें
  4. POS परीक्षण: खासकर POS वातावरण में परीक्षण करें

परीक्षण मामले

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

वितरण

प्लगइन पैकेजिंग

  1. विकास फ़ाइलें हटा दें: परीक्षण फ़ाइलों और विकास उपकरणों को साफ करें
  2. संस्करण नियंत्रण: प्लगइन हेडर में संस्करण नंबर अपडेट करें
  3. प्रलेखन: इंस्टॉलेशन निर्देशों के साथ README शामिल करें
  4. ज़िप पैकेज: इंस्टॉले करने योग्य ज़िप फ़ाइल बनाएं

वितरण

  • GitHub रिलीज़: संस्करण प्रबंधन के लिए GitHub रिलीज़ का उपयोग करें
  • WordPress प्लगइन निर्देशिका: WordPress.org पर सबमिट करने पर विचार करें
  • निजी वितरण: यदि आवश्यक हो तो अपने सर्वर पर होस्ट करें

उन्नत सुविधाएँ

वेबहुक

वास्तविक समय में भुगतान अपडेट के लिए:

public function handle_webhook() {
$payload = file_get_contents( 'php://input' );
$data = json_decode( $payload, true );

// Verify webhook signature
if ( $this->verify_webhook_signature( $payload ) ) {
$this->process_webhook_data( $data );
}
}

सदस्यता समर्थन

दोहराने वाले भुगतानों के लिए:

// Add subscription support
$this->supports[] = 'subscriptions';
$this->supports[] = 'subscription_cancellation';
$this->supports[] = 'subscription_suspension';

बहु-मुद्रा

अंतर्राष्ट्रीय भुगतानों के लिए:

public function get_supported_currencies() {
return array( 'USD', 'EUR', 'GBP', 'CAD' );
}

संसाधन

प्रलेखन

टेम्पलेट रिपॉजिटरी

  • GitHub: woocommerce-gateway-template
  • समस्याएँ: टेम्पलेट समस्याओं की रिपोर्ट करें या सुविधाओं का अनुरोध करें
  • योगदान: पुल अनुरोध के माध्यम से सुधार सबमिट करें

सहायता प्राप्त करना

विकास समर्थन के लिए:

  • टेम्पलेट-विशेष मामलों के लिए GitHub रिपॉजिटरी पर जाएँ
  • API प्रश्नों के लिए WooCommerce डेवलपर प्रलेखन की जांच करें
  • सामान्य मार्गदर्शन के लिए WooCommerce डेवलपर समुदाय में शामिल हों

उदाहरण गेटवे

कार्यात्मक उदाहरणों के लिए इन मौजूदा कस्टम गेटवे का अध्ययन करें: