2011-03-09 11 views
16

क्या मेरे वेब एप्लिकेशन (जावास्क्रिप्ट) में कार्ड रीडर कनेक्ट करने का कोई तरीका है ताकि उपयोगकर्ता को क्रेडिट कार्ड की जानकारी मैन्युअल रूप से टाइप करने की आवश्यकता न हो?वेब एप्लिकेशन पर क्रेडिट कार्ड रीडर से कनेक्ट करें?

यह वेब ऐप स्टोर पर उत्पादों को खरीदने के लिए है। उपयोगकर्ता उस वस्तु पर क्लिक करता है जो वह खरीदना चाहता है और फिर वह पाठक में क्रेडिट कार्ड स्वाइप करता है और उसे रसीद मिल जाएगी।

+2

मैरीस किसेव्स का जवाब गलत है। कृपया सही उत्तर के रूप में @AngeloS प्रतिक्रिया को चिह्नित करें। –

उत्तर

-6

संक्षिप्त उत्तर है - नहीं, तथ्य यह है कि सरल यूएसबी कार्ड पाठक कुंजीपटल इनपुट डिवाइस के रूप में कार्य की वजह से How to link access card reader with PHP?

+9

डाउनवॉटेड। उत्तर नीचे देखें, यह पूरी तरह गलत है। – SobiborTreblinka

+0

यदि आप कोई फॉर्म फ़ील्ड चुनते हैं ताकि यह सक्रिय हो और फिर क्रेडिट कार्ड स्वाइप करें; उस क्षेत्र को कार्ड डेटा के साथ पॉप्युलेट किया जाएगा। जब फ़ील्ड टेक्स्ट बदलता है तो जावास्क्रिप्ट को फ़ॉर्म को स्वत: पॉप्युलेट करने के लिए ट्रिगर किया जा सकता है। –

30

वास्तव में, यह संभव है में कुछ और स्पष्टीकरण मिल सकता है। चूंकि यह एक कीबोर्ड इनपुट के रूप में कार्य करता है, एक बार जब इनपुटबॉक्स फोकस में होता है तो आप कार्ड को स्वाइप कर सकते हैं, इसे कुछ निफ्टी jQuery आदि का उपयोग करके छिपे हुए फ़ील्ड पर दबा सकते हैं और फिर इसे वहां से संसाधित कर सकते हैं।

Please see my answer on that question that Maris linked to.

संपादित करें: 2/2016

मैं एक बहुत ही सरल jQuery कार्यान्वयन के साथ एक GitHub Gist बनाया।

+0

छिपी हुई फ़ील्ड अभी भी उपयोगकर्ता को टाइप करने की अनुमति देती है, अगर वह चाहती है। वह इसे देख नहीं पाएगा। –

4

जैसा कि दूसरे उत्तर पर है, बार-कोड स्कैनर या कार्ड रीडर कीबोर्ड की तरह काम करता है। आप पूरे दस्तावेज़ में उदाहरण के लिए एक श्रोता संलग्न कर सकते हैं,:

document.onkeypress = function(e) { 
    e = e || window.event; 
    var charCode = (typeof e.which == "number") ? e.which : e.keyCode; 
    // store it , in this example, i use localstorage 
    if(localStorage.getItem("card") && localStorage.getItem("card") != 'null') { 
     // append on every keypress 
     localStorage.setItem("card", localStorage.getItem("card") + String.fromCharCode(charCode)); 
    } else { 
     // remove localstorage if it takes 300 ms (you can set it) 
     localStorage.setItem("card", String.fromCharCode(charCode)); 
     setTimeout(function() { 
      localStorage.removeItem("card"); 
     }, 300); 
    } 
    // when reach on certain length within 300 ms, it is not typed by a human being 
    if(localStorage.getItem("card").length == 8) { 
     // do some validation 
     if(passedonvalidation){ 
      // do some action 
     } 
    } 
} 

आप यदि आप चाहते हैं एक पाठ बॉक्स पर श्रोता संलग्न कर सकते हैं। सुनिश्चित करें कि कार्ड स्वाइप होने पर यह केंद्रित है।

+0

आपको यह जांचने की ज़रूरत है कि क्या उपयोगकर्ता इनपुट में कोड कॉपी/पेस्ट करता है, ऐसा करने के लिए बस जांचें कि क्या CTRL और SHIFT संशोधक चालू हैं, यदि ऐसा है तो फ़ील्ड को साफ़ करें। अन्यथा उपयोगकर्ता पेस्ट करके तत्काल "टाइप" करेंगे –

-2

इस तरह यह काम करता है मुझे लगता है। क्रेडिट कार्ड आपको सॉफ्टवेयर का एक टुकड़ा देगा जो आप अपनी मशीन पर स्थापित करते हैं। वह सॉफ्टवेयर स्थानीय बंदरगाह पर एक सेवा का खुलासा करता है।

आप वेब एप्लिकेशन उस स्थानीय सेवा के लिए अनुरोध पोस्ट करेंगे। आपके द्वारा किए गए अनुरोध में केवल उस राशि को शामिल किया जा सकता है, जिसे आप चार्ज करना चाहते हैं और सेवा के विरुद्ध प्रमाणित करने के लिए कुछ प्रमाणीकरण टोकन भी शामिल कर सकते हैं।

जिसके बाद क्रेडिट कार्ड टर्मिनल चार्जिंग को संसाधित करेगा और या तो सफलता पर संदर्भ संख्या या विफलता पर एक संदेश वापस कर देगा।

जैसा कि आप देख सकते हैं कि यह प्रक्रिया आपके वेब एप्लिकेशन पर क्रेडिट कार्ड की जानकारी का पर्दाफाश नहीं करती है। यह सिर्फ अधिसूचित हो जाता है कि लेनदेन को मंजूरी दे दी गई थी या नहीं, ताकि आप आदेश की प्रसंस्करण को आगे बढ़ा सकें या अस्वीकार कर सकें।

संबंधित मुद्दे