payment-gateway - ExtJs जैसे जावास्क्रिप्ट चौखटे का उपयोग कर बनाया गया अनुप्रयोगों में भुगतान गेटवे को कैसे एकीकृत किया जाए?




javascript javascript-framework (2)

मुझे समस्या का सामना करना पड़ा और मैंने उसे मुख्य एप्लीकेशन में websocket / polling का उपयोग करते हुए कार्यान्वित किया, जबकि एक नई विंडो भुगतान के लिए चली गई।

भुगतान सफल होने के बाद मुख्य एप्लिकेशन को सूचित किया जाएगा।

इस तरह से प्रत्येक भुगतान मुख्य अनुप्रयोग से पूरी तरह से अनबाउंड होकर रखता है, जो रखरखाव काफी आसान बनाता है। ध्यान दें कि मौजूदा बैकएंड का इस्तेमाल करते हुए प्रत्येक भुगतान के लिए हमारा बैकेंड नया सत्र बनायेगा

मुझे लगता है कि भुगतान के लिए नई खिड़कियां खोलना असामान्य नहीं है इसलिए मैंने इसे जाने का फैसला किया।

हमारे आवेदन ExtJs का उपयोग कर बनाया गया एक-पृष्ठ एप्लिकेशन है किसी भी उपयोगकर्ता की कार्रवाई के लिए, ब्राउज़र टैब कभी भी पुनः लोड नहीं होता है और सभी क्रियाएं एजेक्स का उपयोग कर की जाती हैं। एक उपयोगकर्ता एक ही ब्राउज़र टैब के भीतर एकाधिक एक्स्टजेज़ विंडो / पैनल खोल सकता / बंद कर सकता है, और इस तरह सब कुछ उसी ब्राउज़र टैब तक ही सीमित रहता है।

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

मुद्दा यह है कि जब ब्राउज़र उपयोगकर्ता को रीडायरेक्ट करता है, तब पैनल और खिड़कियों के साथ सभी जावास्क्रिप्ट कोड को नष्ट कर दिया जाता है, और जब उपयोगकर्ता आवेदन पर वापस आ जाता है तो वह उसे एक से अलग होने के लिए पाती है

इसके समाधान के रूप में, हम निम्नलिखित दो ऐपराक्शेज़ का उपयोग करने की सोच रहे थे:

विकल्प 1. आवेदन की स्थिति को बनाए रखना - जब उपयोगकर्ता बैंक की वेबसाइट के लिए छोड़ देता है तो किसी भी तरह हम आवेदन की स्थिति को बनाए रखते हैं - जैसे कि कौन से डेटा खोले जाते हैं, जो कि कौन-से डेटा हैं, जो चर आदि हैं। और जब उपयोगकर्ता वापस लौटता है, तो हम जेनरेट करते हैं उसके लिए एक ही आवेदन स्थिति

विकल्प 2. भुगतान गेटवे के लिए एक ब्राउज़र पॉप-अप विंडो है - हम एक बटन प्रदान करने का इरादा रखते हैं जो लेनदेन के विवरण वाली एक छोटी पॉप-अप विंडो खुलेंगे, और इस पॉप-अप विंडो में संपूर्ण भुगतान गेटवे प्रक्रिया ले जाएगी पुनर्निर्देशन की देखभाल और सब कुछ

विकल्प 1 बहुत ही बोझिल और जटिल साबित हो रहा है क्योंकि सटीक स्थिति बनाए रखने के लिए संभव नहीं मिल रहा है।

विकल्प 2 के लिए, हमें यकीन नहीं है कि यह सुरक्षित और संभव है?

क्या किसी ने इस तरह के एक दृष्टिकोण को पहले लागू किया है? अन्यथा, अन्य विकल्प क्या हैं जिनके लिए हम जा सकते हैं?

किसी भी सहायता के लिए अग्रिम धन्यवाद।


आप या तो सीधे कॉलबैक में तर्क डाल सकते हैं, या सभी स्टोर्स को संभालने के लिए एक फ़ंक्शन सेट कर सकते हैं।

var store1 = Ext.create('Ext.data.Store', {
    ...
    autoLoad: {
        callback: initData 
    }
});

var store2 = Ext.create('Ext.data.Store', {
    ...
    autoLoad: {
        callback: initData 
    }
});

var myComboStores = ['store1', 'store2']

function initData() {
    var loaded = true;
    Ext.each(myComboStores, function(storeId) {
        var store = Ext.StoreManager.lookup(storeId);
        if (store.isLoading()) {
            loaded = false;
        }
    }
    if(loaded) {
        // do stuff with the data
    }
}

=====================

पढ़ने के लिए, आपके 'कॉम्बो' ऑब्जेक्ट पर मान कॉन्फ़िगर / प्रॉपर्टी को कुछ मान पर सेट किया जाना चाहिए ताकि कॉम्बो बॉक्स को प्रारंभिक मान मिल सके। आप पहले से ही यह कर चुके हैं। मूल्य 'सब' को आपके स्टोर में भी डिफ़ॉल्ट होने के पहले सेट करने की आवश्यकता है।

value: 'all'

साथ ही, ValueField कॉन्फ़िगरेशन के लिए मान सेट करना अच्छा अभ्यास है, जिसे आपने पहले ही किया है। यदि आप नहीं करते हैं, तो combo.getValue () को कॉल करते समय चयन श्रोता को सही मान नहीं मिलेगा।