पूर्ण पेपैल वेबसाइट भुगतान मानक भुगतान के लिए कस्टम ऑर्डर स्थिति सेट करें?


9

हम पेपल वेबसाइट पेमेंट्स स्टैंडर्ड पेमेंट मेथड के साथ Magento EE 1.13.0.2 का उपयोग कर रहे हैं । दुर्भाग्य से बैक-एंड में भुगतान किए गए पेपाल ऑर्डर के लिए ऑर्डर की स्थिति निर्धारित करना संभव नहीं है।

जब ऑर्डर सफलतापूर्वक भुगतान किया गया हो (और आंशिक नहीं) तो हमें कस्टम ऑर्डर की स्थिति निर्धारित करने की आवश्यकता है। पेपल ऑर्डर की स्थिति को संशोधित करने के लिए ट्यूटोरियल पुराने, गलत या बदसूरत हैक्स प्रतीत होते हैं।

जो मैंने इकट्ठा किया, उससे:

  • भुगतान अपडेट को पेपाल IPN द्वारा संभाला जाएगा।
  • Mage_Paypal_Model_Ipn::_registerPaymentCapture()"प्रक्रिया पूर्ण भुगतान (पूर्ण या आंशिक)" के लिए जिम्मेदार एक विधि है ।
  • में Mage_Paypal_Model_Ipn::_registerTransaction()पेपैल से अनुरोध विश्लेषण किया जाता है और भुगतान की स्थिति की तुलना में है Mage_Paypal_Model_Info::PAYMENTSTATUS_COMPLETED

सच कहूं तो मुझे यकीन नहीं है कि इस जानकारी का क्या करना है। मैं फिर से लिख सकता हूं Mage_Paypal_Model_Ipn::_registerTransaction()और बस अपना कोड जोड़ूंगा :

// paid
case Mage_Paypal_Model_Info::PAYMENTSTATUS_COMPLETED:
    $this->_registerPaymentCapture(true);
    // my code here
    break;

बेशक एक घटना पर्यवेक्षक (उदाहरण के लिए आदेश या राज्य घटनाओं में से एक के लिए) बहुत अच्छा होगा, लेकिन मुझे यकीन नहीं है कि जब उस भुगतान को पूरी तरह से भुगतान किया जाता है तो उस एक बार की घटना को पकड़ने के लिए 100% विश्वसनीय तरीका है ।

कोई विचार?

अपडेट करें

हमने अपने ऑर्डर की स्थिति के प्रवाह को संशोधित करने का विकल्प चुना और अब स्थिति को संशोधित करने की आवश्यकता नहीं है। मैं कुछ समय के लिए इस सवाल को खुला छोड़ दूंगा कि कोई इसका जवाब देना चाहता है।

जवाबों:


2

बड़ी समस्या यह है कि पूरे पेपाल कार्य प्रवाह में एक भी घटना नहीं है।

तो दो विकल्प हैं:

इनमें से किसी भी पेपैल मॉडल को फिर से लिखें

जैसा कि आपने कहा, बस मॉडल को फिर से लिखना, व्यवहार को बदलना और सब कुछ उम्मीद के मुताबिक काम करता है - उम्मीद है या ...

में हुक sales_order_save_before

फिर आप भुगतान प्रकार की जांच करते हैं, जो \Mage_Paypal_Model_Standard::$_codeनिम्न प्रकार से होना चाहिए :

protected $_code  = Mage_Paypal_Model_Config::METHOD_WPS;

\Mage_Paypal_Model_Config
-> const METHOD_WPS         = 'paypal_standard';

और फिर, जब आप नहीं चाहते हैं, तो स्थिति बदल जाती है, जिसे आप चाहते हैं उसे बदल दें।


धन्यवाद Fabian, मुझे लगता है कि हम Magento 1.x में एक बेहतर समाधान नहीं मिलेगा। :-)
मथायस ज़ीस

0

मैं एक और समाधान के साथ समाप्त हुआ। कुछ घंटों के लिए इस मुद्दे से जूझने के बाद, मुझे एहसास हुआ कि मेरे विशेष मामले में यह मायने नहीं रखता था कि केवल पेपाल ऑर्डर को एक विशेष दर्जा मिला है (यह ईआरपी कनेक्शन के लिए है, जो किसी विशेष स्थिति में ऑर्डर खोजता है)।

पेपैल आदेश की स्थिति निर्धारित नहीं करता है। यह सिर्फ भुगतान पकड़ता है। Magento ऑर्डर की स्थिति को प्रसंस्करण (देखें Mage_Sales_Model_Order_Payment::registerCaptureNotification()) में सेट करता है और उस स्थिति के भीतर डिफ़ॉल्ट स्थिति में स्थिति सेट करता है।

मुझे केवल इतना करना था कि मैं स्टेटस प्रोसेसिंग के भीतर डिफ़ॉल्ट स्थिति को बदलकर उस स्थिति में लाया जा सकता था जो मुझे व्यवस्थापक इंटरफ़ेस ( सिस्टम » ऑर्डर स्टेटस ) के माध्यम से चाहिए।

आशा है कि यह किसी की मदद करता है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.