मैंने Magento2 CE 2.2.0-dev का उपयोग करते हुए निम्नलिखित के लिए एक ताज़ा स्थापना का उपयोग किया है, और डिफ़ॉल्ट "लूमा" थीम को भी छोड़ दिया है।
बाह्य भुगतान विधियों (गेटवे) जैसे कि MiGS , Braintree , PayPal और अन्य के बारे में, Magento इन गेटवे को बॉक्स से बाहर का समर्थन करता है, लेकिन उनके लिए NO APIs प्रदान करता है जिनका आप अन्य "Checkout" API के साथ उपयोग कर सकते हैं।
इसलिए, यदि आप Magento के API का उपयोग करके एक चेकआउट ऐप / पेज बनाने की योजना बना रहे हैं, तो आपको अपने एसडीके / एपीआई का उपयोग करके इन सेवाओं को मैन्युअल रूप से एकीकृत करने की आवश्यकता होगी, सौभाग्य से, आप यह जांच कर बहुत कुछ सीख सकते हैं कि Magento अंतर्निहित सेवाओं के साथ कैसे एकीकृत होता है। -इन एकीकरण।
इसे समझने के लिए, मुझे ब्रेंट्री को कॉन्फ़िगर करना पड़ा क्योंकि यह सबसे आसान है:
- Https://www.braintreepayments.com/sandbox पर सैंडबॉक्स खाता बनाएँ
- Magento के व्यवस्थापक क्षेत्र में पहुँचें।
- स्टोर> कॉन्फ़िगरेशन> बिक्री> भुगतान के तरीके> Braintree> कॉन्फ़िगर करें।
- सुनिश्चित करें कि "पर्यावरण" "सैंडबॉक्स" है, और "मर्चेंट आईडी", "सार्वजनिक कुंजी" और "निजी कुंजी" दर्ज करें।
- कॉन्फ़िगरेशन सहेजें।
- आपको कैश को फिर से लिखना और / या ताज़ा करना पड़ सकता है।
कार्ट में कोई उत्पाद जोड़ने और चेकआउट करने के लिए, अंतिम चरण में, ब्रेंट्री भुगतान विधि चुनें, फिर "प्लेस ऑर्डर" बटन पर क्लिक करने के बाद, आप निम्नलिखित AJAX अनुरोधों को देखेंगे:
- कार्ड को मान्य करने, लेन-देन करने और लेनदेन की स्थिति के साथ प्रतिक्रिया करने के लिए 2 ब्रेंट्री एपीआई के लिए अनुरोध।
guest-carts/cartId/payment-information
Magento के एपीआई प्रलेखन में बताया गया है कि सामान्य शरीर के साथ Magento के एपीआई के लिए एक अनुरोध ।
उसके बाद यह प्रक्रिया सफलता के पृष्ठ पर पुनर्निर्देशन की अपेक्षा के अनुसार जारी रहती है जब अंतिम अनुरोध JSON में आदेश के साथ प्रतिक्रिया करता है entity_id
यह पुष्टि करता है कि बाहरी सेवाओं को कॉल करता है-हमारे उदाहरण में -Brintree- मैगेंटो द्वारा आंतरिक रूप से चेकआउट पृष्ठ द्वारा नहीं किया जाता है, इसलिए हमें अपने चेकआउट पृष्ठ / ऐप को विकसित करने के लिए ऐसा ही करना होगा।
ऑर्डर की स्थिति को नियंत्रित करने के लिए, मैंने गहराई से खोदा और पाया कि भुगतान विधि का उपयोग कर रहा है जैसे कि MiGS, ब्रेनट्री या पेपल, processing
सामान्य के बजाय स्थिति के साथ एक आदेश दिया गया था pending
, मुझे संदेह था कि यह या तो भुगतान-विधि कॉन्फ़िगरेशन या ऑब्ज़र्वर है , लेकिन यह एक विन्यास प्रतीत हुआ, यहाँ अधिक विवरण हैं।
वर्ग: Magento \ Sales \ Model \ Order \ भुगतान
विधि: जगह ()
एक सशर्त है जो जांचता है कि क्या Initialization
विधि के लिए आवश्यक है if ($methodInstance->isInitializeNeeded())
, यदि यह मामला है, तो एक विधि initialize()
निष्पादित की जाती है जिसे आप परिभाषित करते हैं, और आपको दोनों को निर्दिष्ट करने की अनुमति देता है state
और status
।