जब किसी फ़ॉर्म को किसी एक नेटवर्क के कार्ड से जाँचा जाता है, तो पता नहीं चलता कि वह बाकी को कैसे संभालता है। हर कार्ड नेटवर्क अपनी अंक-योजना रखता है — कौन से शुरुआती अंक उसके हैं, कितने अंकों के नंबर वह जारी करता है, और सुरक्षा कोड कितने अंकों का होता है — और यही तीन अंतर ऐसे दोष पैदा करते हैं जो एक ही ब्रांड के साथ कभी दिखते ही नहीं।
यह लेख हर प्रमुख नेटवर्क की प्रकाशित श्रेणियाँ एक जगह रखता है, बताता है कि फ़िक्स्चर के लिए प्रीफ़िक्स कैसे चुनें, और एक ऐसा परीक्षण मैट्रिक्स सुझाता है जो कुछ ही पंक्तियों में वह कवर कर देता है जो अन्यथा दर्जनों अलग-अलग परीक्षणों में बिखर जाता है।
हर नेटवर्क की अपनी अंक-योजना होती है
कार्ड नंबर का पहला हिस्सा जारीकर्ता की नहीं बल्कि नेटवर्क की संपत्ति है। नेटवर्क इन प्रीफ़िक्सों को तय करता है, समय के साथ उनका विस्तार करता है, और यह भी तय करता है कि उसके नंबर कुल कितने अंकों के होंगे। इसलिए कोई एक भी मान्य लंबाई नहीं है — तेरह अंकों से लेकर उन्नीस अंकों तक के नंबर प्रचलन में हैं, और किसी मान को ठुकराने से पहले यह जानना ज़रूरी है कि वह किस नेटवर्क का माना गया।
प्रीफ़िक्स पहचान का वह हिस्सा है जो उपयोगकर्ता को दिखाया जा सकता है। जिस क्षण कोई फ़ॉर्म कार्ड के शुरुआती अंकों से ब्रांड पहचान लेता है, वह चेकसम से पहले ही यह तय कर चुका होता है कि कौन सी लंबाइयाँ और कौन सा सुरक्षा कोड स्वीकार्य हैं। यह सुविधा अच्छी है जब तक पहचान गलत न हो, क्योंकि गलत पहचान का अर्थ है गलत नियमों का समूह, और फिर सही कार्ड भी ठुकरा दिया जाता है।
परीक्षण मामले के लिए आप प्रीफ़िक्स कैसे चुनें?
चुनाव का नियम सरल है: जिस नेटवर्क का व्यवहार आप जाँचना चाहते हैं उसकी प्रकाशित श्रेणी से प्रीफ़िक्स लें, और उस नेटवर्क की लंबाइयों में से कोई एक चुनें।
किसी परीक्षण श्रृंखला को हाथ से जोड़ना और उसका आखिरी अंक चेकसम के अनुसार ठीक कर लेना काम तो करता है, पर उसमें दो जोखिम हैं। पहला, ऐसी छोटी गिनती की गलती जो किसी और नेटवर्क की श्रेणी में पहुँचा दे — एक अंक का अंतर ब्रांड बदल देता है। दूसरा, जो श्रृंखला किसी असली जारीकर्ता के ब्लॉक में पड़ जाए, जो परीक्षण डेटा के लिए अनावश्यक है और कई संगठनों में नीति के विरुद्ध भी।\n\nजिस संगठन को सैकड़ों मान चाहिए, उसके लिए दोहराया जाने वाला तरीका यह है कि नेटवर्क के अनुसार नंबर बनाए जाएँ और हर मान का चेकसम जनरेटर से ही ठीक कराया जाए। इससे पहचान और लंबाई दोनों वही रहती हैं जो नेटवर्क की विशेषता है, और हाथ से सुधारने का चरण हट जाता है।
एक नज़र में प्रकाशित श्रेणियाँ
नीचे दी गई तालिका वे प्रीफ़िक्स और लंबाइयाँ दिखाती है जो नेटवर्क अपने दस्तावेज़ों में बताते हैं। इन्हें परीक्षण के आरंभ बिंदु की तरह इस्तेमाल करें, न कि ऐसी सूची की तरह जो कभी नहीं बदलती।
| नेटवर्क | शुरुआती अंक | सामान्य लंबाई | सुरक्षा कोड |
|---|---|---|---|
| Visa | 4 | 13, 16, 19 | 3 अंक |
| Mastercard | 51 से 55, और 2221 से 2720 | 16 | 3 अंक |
| American Express | 34 और 37 | 15 | 4 अंक |
| Discover | 6011, 65, 644 से 649, 622126 से 622925 | 16 से 19 | 3 अंक |
| JCB | 3528 से 3589 | 16 से 19 | 3 अंक |
| Diners Club | 300 से 305, 36, 38 और 39 | 14 से 19 | 3 अंक |
| UnionPay | 62 | 16 से 19 | 3 अंक |
| Maestro | 50, 56 से 69 | 12 से 19 | 3 अंक |
तालिका में एक पंक्ति मात्र कार्डों की पुरानी छवि तोड़ देती है। जहाँ मानक उपन्यास कार्ड अक्सर सोलह अंकों और तीन अंकों वाले कोड के रूप में दिखाए जाते हैं, वहीं असल दुनिया में पंद्रह अंकों के नंबर, चार अंकों के सुरक्षा कोड, और बारह से उन्नीस तक फैली लंबाइयाँ सामान्य हैं।
सुरक्षा कोड की लंबाई भी अलग क्यों होती है?
सुरक्षा कोड कार्ड नेटवर्क की नहीं, प्लास्टिक पर छपाई की बाध्यता का परिणाम है। जो कार्ड अपने नंबर चार-चार अंकों के समूहों में नहीं छापते, उनके लिए तीन अंक काफी जगह में नहीं बैठते, इसलिए उनमें चार अंक छपते हैं।
व्यावहारिक अर्थ यह है कि सुरक्षा कोड के फ़ील्ड को नेटवर्क के साथ बदलना चाहिए। जो फ़ॉर्म हमेशा तीन अंक माँगता है, वह सबसे पहचाने जाने वाले कार्डों में से एक की सभी प्रविष्टियाँ ठुकरा देगा। जो फ़ॉर्म प्रारूप नियम कठोर रखता है पर पहचान नहीं करता, वह कुछ उपयोगकर्ताओं को उन अंकों को काटने पर विवश कर देगा जो असल में चाहिए थे।\n\nविस्तृत व्यवहारों के लिए अलग लेख है, पर संक्षेप में: कोड की भूमिका कार्ड की भौतिक उपस्थिति जाँचना है, इसलिए वह कभी संग्रहित नहीं होता, और उसका मान किसी लंबाई जाँच से आगे कभी सत्यापित नहीं किया जाता।
क्या मेल खाता प्रीफ़िक्स कार्ड असली होने का प्रमाण है?
बिलकुल नहीं। प्रीफ़िक्स केवल यह बताता है कि मान किस नेटवर्क की ओर इशारा करता है, इस बात का कोई संकेत नहीं कि उसके पीछे कोई खाता मौजूद है। कोई श्रृंखला कार्ड नियमों के हिसाब से पूरी तरह मान्य हो सकती है, वह नेटवर्क की श्रेणी में बैठती है, उसका अंतिम अंक चेकसम के अनुसार सही है, और फिर भी वह कभी जारी नहीं हुई।
असल स्थिति केवल जारीकर्ता जानता है, और वह भी तब बताता है जब कोई भुगतान अधिकरण के लिए भेजा जाए। कहीं भी लिखा यह वाक्य ही वह सबसे आम भ्रम है जो परीक्षण डेटा की चर्चा में सामने आता है, और यही कारण है कि स्थानीय सत्यापन को कभी भी किसी कार्ड के असली होने का दावा नहीं करना चाहिए।
डेवलपर के लिए: एक नेटवर्क परीक्षण मैट्रिक्स बनाना
छह से आठ पंक्तियों वाला मैट्रिक्स इस काम का अधिकांश हिस्सा कवर कर देता है, और उसे समीक्षा में पढ़ा भी जा सकता है, जो किसी दर्जन टेस्ट फ़ाइलों के साथ संभव नहीं होता।
एक पंक्ति में नेटवर्क का नाम, उसका प्रीफ़िक्स, उसकी लंबाई, सुरक्षा कोड की अपेक्षित लंबाई, और वह परिणाम होना चाहिए जो फ़ॉर्म दिखाना चाहिए। किनारे के मामलों के लिए एक-दो अतिरिक्त पंक्तियाँ काफी हैं: बहुत छोटा मान, ऐसा मान जिसका चेकसम विफल हो, और वह मान जो मान्य प्रारूप में हो पर अस्थायी रूप से सर्वर से ठुकराया गया हो।
ऐसे परीक्षण जोड़ें जो वह पुष्ट करते हों जिसकी आप वाकई परवाह करते हैं, न कि वह जो पहचान की गई लंबाई देखकर संतुष्ट हो जाते हों। पहचान का व्यवहार दो दिशाओं में जाँचें। पहला, हर नेटवर्क का एक कार्ड पहचाना जाना चाहिए, और उसके बाद सुरक्षा कोड का फ़ील्ड उसकी अंक-संख्या माँगना चाहिए। दूसरा, वे प्रीफ़िक्स जो कुछ वर्षों पहले मौजूद ही नहीं थे, उन्हें भी अब उसी तरह पहचाना जाना चाहिए, क्योंकि जिन संग्रहों में केवल पुरानी श्रेणियाँ हैं वे नए कार्डों को बिना पहचान के छोड़ देते हैं।
सीमा पर लिखे परीक्षण अंत में डालें। हर नेटवर्क की सबसे छोटी और सबसे लंबी स्वीकार्य लंबाई के साथ फ़ॉर्म चलाएँ, और एक-एक अंक कम-ज्यादा करके देखें कि व्यवहार कहाँ बदलता है। ऐसे परीक्षण सबसे उपयोगी साबित होते हैं, क्योंकि सीमाएँ प्रीफ़िक्स तालिकाओं की तुलना में कहीं अधिक बार बदलती हैं।
एक-एक कार्ड बनाने से लेकर पूरे परीक्षण सूट तक
जिस काम के लिए एक दर्जन कार्ड चाहिए, वहाँ आदत बना लेना बेहतर है कि प्रीफ़िक्स नेटवर्क निर्दिष्ट करके बनाए जाएँ, ताकि मैट्रिक्स की हर पंक्ति के पास अपना डेटा हो और उसे बदलना एक पंक्ति का काम रहे।
इस साइट का कार्ड नंबर जनरेटर यही करता है: आप नेटवर्क चुनते हैं, नंबर उस नेटवर्क की लंबाइयों और प्रीफ़िक्स में बनते हैं, चेकसम स्वयं ही सही हो जाता है, और साथ में समाप्ति तिथि तथा प्लेसहोल्डर सुरक्षा कोड आते हैं। बनी संरचनाएँ कभी जारी नहीं हुईं, जो सबसे बड़ी सुविधा है: कोई परीक्षण कभी किसी असली खाते को छू ही नहीं सकता।
कार्ड नंबर प्रारूप में वही सामग्री लंबाई और समूहन के दृष्टिकोण से पढ़ें, PCI DSS परीक्षण डेटा देखें कि किस मान का संग्रह करना उचित है, और प्रदाता के परीक्षण कार्ड तब इस्तेमाल करें जब किसी गेटवे का तय किया हुआ उत्तर चाहिए, न कि केवल प्रारूप की जाँच।
आगे क्या करें
अपने फ़ॉर्म के सामने हर नेटवर्क की एक पंक्ति लिखें, हर पंक्ति के लिए एक कार्ड बनाएं, और पुष्टि करें कि सुरक्षा कोड का फ़ील्ड तालिका के अनुसार अपनी अंक-संख्या बदलता है। जिस नेटवर्क के लिए कोई व्यवहार तय न हुआ हो, उसे अनदेखा करने के बजाय स्पष्ट रूप से अस्वीकार करने का फैसला दर्ज करें।