เมนู

หมายเลขบัตรเครดิตสำหรับทดสอบ ต่างจากบัตรจริงตรงไหน

หมายเลขบัตรเครดิตสำหรับทดสอบผ่านการตรวจรูปแบบและหลักตรวจสอบครบถ้วน แต่ไม่ผูกกับบัญชีใด บทความนี้อธิบายที่มา วิธีใช้ และขอบเขตที่ห้ามข้าม

เผยแพร่เมื่อ

  • ข้อมูลทดสอบ
  • การชำระเงิน
  • ความปลอดภัย

หมายเลขบัตรเครดิตสำหรับทดสอบคือชุดตัวเลขที่หน้าตาเหมือนบัตรจริงในทุกมิติของรูปแบบ ไม่ว่าจะเป็นความยาว คำนำหน้าที่สอดคล้องกับเครือข่ายบัตร หรือหลักสุดท้ายที่ทำให้ผลรวมตรวจสอบลงตัว แต่ไม่มีบัญชีธนาคารใดรองรับอยู่ข้างหลัง หมายเลขเหล่านี้จึงผ่านการตรวจของฟอร์มได้ตามปกติ แต่ไม่สามารถทำรายการชำระเงินให้สำเร็จได้ บทความนี้อธิบายว่าตัวเลขกลุ่มนี้เกิดขึ้นมาได้อย่างไร นำไปใช้กับงานแบบไหนจึงเกิดประโยชน์ และเส้นแบ่งใดที่ผู้ทำงานสายพัฒนาซอฟต์แวร์ไม่ควรข้าม

หมายเลขบัตรเครดิตสำหรับทดสอบต่างจากบัตรจริงตรงไหน?

ความต่างที่คนมักมองข้ามไม่ใช่รูปร่างของตัวเลข แต่คือสิ่งที่อยู่เบื้องหลัง หมายเลขบัตรจริงผูกกับบัญชีที่ธนาคารออกแบบไว้ มีวงเงิน มีวันหมดอายุที่ใช้ได้จริง และเมื่อส่งไปยังเครือข่ายบัตรจะได้คำตอบกลับมาว่าอนุมัติหรือปฏิเสธ ส่วนหมายเลขทดสอบนั้นเมื่อส่งไปยังระบบจริงจะไม่ได้คำตอบเชิงธุรกิจใด ๆ เพราะไม่มีบัญชีให้ตรวจสอบตั้งแต่แรก

ความต่างข้อที่สองคือที่มา บัตรจริงถูกออกโดยสถาบันการเงินภายใต้กติกาของเครือข่ายบัตร ส่วนหมายเลขทดสอบเกิดจากความต้องการของทีมพัฒนาที่ต้องมีข้อมูลหน้าตาปกติไว้ใช้ซ้ำได้ไม่จำกัด โดยไม่ต้องแตะข้อมูลลูกค้าจริงแม้แต่รายการเดียว

ความต่างข้อที่สามคืออายุการใช้งาน หมายเลขบัตรจริงมีรอบอายุหลายปีและหมดอายุได้ ส่วนหมายเลขทดสอบไม่มีวันหมดอายุในเชิงความหมาย คุณจะเก็บไว้ในไฟล์ทดสอบนานเท่าไรก็ได้ ตราบใดที่ยังตรงกับความยาวและช่วงคำนำหน้าที่ระบบของคุณยอมรับ

ทำไมทีมพัฒนาจึงต้องมีชุดตัวเลขทดสอบ?

ฟอร์มชำระเงินต้องทำงานสองอย่างที่ดึงไปคนละทาง อย่างแรกคือต้องปฏิเสธข้อมูลที่พิมพ์ผิดหรือถูกกุขึ้นมา อย่างที่สองคือต้องยอมรับบัตรที่ลูกค้าถืออยู่จริงทุกใบ การทดสอบอย่างแรกต้องใช้ข้อมูลที่ตั้งใจให้พัง การทดสอบอย่างที่สองต้องใช้ข้อมูลที่ดูปกติที่สุด ทีมพัฒนาจึงต้องการทั้งสองแบบในปริมาณมากและเรียกใช้ซ้ำได้

หากใช้ข้อมูลบัตรจริงในงานทดสอบ ปัญหาจะตามมาทันที ข้อมูลนั้นคือข้อมูลอ่อนไหวทางด้านการชำระเงิน การคัดลอกลงเครื่องนักพัฒนา ไฟล์ตัวอย่าง หรือฐานข้อมูลทดสอบ เท่ากับย้ายข้อมูลที่มีข้อบังคับกำกับไปอยู่ในที่ที่การควบคุมหลวมกว่า และถ้าเผลอส่งคำขอไปยังปลายทางจริง นั่นก็คือธุรกรรมจริงที่เกิดขึ้นแล้วโดยไม่มีใครตั้งใจ

ชุดตัวเลขทดสอบช่วยตัดความเสี่ยงสองข้อนั้นออกไปพร้อมกัน คุณจะทำสำเนาแจกจ่ายได้ เทียบผลลัพธ์ข้ามเครื่องได้ และลบไฟล์ทิ้งได้โดยไม่ต้องมีขั้นตอนคุ้มครองข้อมูลใด ๆ

ตัวเลขทดสอบถูกสร้างขึ้นมาอย่างไร

หมายเลขบัตรที่ผ่านการตรวจไม่ได้เกิดจากการสุ่มสิบหกหลักแล้วโยนลงฟอร์ม แต่ประกอบขึ้นจากสามส่วนเรียงต่อกัน ส่วนแรกคือคำนำหน้าที่ระบุเครือข่ายบัตร ส่วนที่สองคือกลุ่มหลักบัญชีซึ่งในกรณีของข้อมูลทดสอบเป็นเพียงตัวเลขที่ทำให้แต่ละใบไม่ซ้ำกัน และส่วนที่สามคือหลักตรวจสอบที่คำนวณย้อนกลับมาจากหลักทั้งหมดข้างหน้า

หลักการคำนวณหลักสุดท้ายเป็นเลขคณิตที่เปิดเผยต่อสาธารณะและรู้จักกันในชื่อขั้นตอนวิธี Luhn ดังนั้นเครื่องมือสร้างข้อมูลจึงเติมหลักสุดท้ายให้เองโดยอัตโนมัติ ทุกครั้งที่คุณกดสร้าง ตัวเลขที่ได้จะ “ถูกต้องตามโครงสร้าง” ซึ่งหมายความว่าผ่านกติกาความยาวและผ่านผลรวมตรวจสอบ แต่ไม่เคยถูกออกให้กับบัญชีใดเลย

ประเด็นสุดท้ายนี้สำคัญมากพอที่จะเขียนไว้ตรง ๆ ว่า หมายเลขที่สร้างจากเครื่องมือบนเว็บไซต์นี้เป็นข้อมูลสมมติที่ไม่มีตัวตนอยู่จริง จึงไม่ควรนำไปใช้กับระบบรับชำระเงินหรือเกตเวย์จริงไม่ว่ากรณีใด

นำไปใช้กับงานแบบไหนได้บ้าง

งานที่เหมาะกับชุดตัวเลขทดสอบมีหลายกลุ่ม และเกือบทั้งหมดเป็นงานที่ไม่ต้องการการอนุมัติจากเครือข่ายบัตร

  • ทดสอบฟอร์มชำระเงินในโหมดทดสอบของเกตเวย์ เพื่อดูว่าช่องกรอกโต้ตอบถูกต้อง
  • เติมข้อมูลตัวอย่างให้หน้าจอสาธิตหรือเอกสารประกอบการขาย
  • ตรวจสอบว่าฟังก์ชันตรวจความยาวและตรวจคำนำหน้าแยกแยะเครือข่ายบัตรได้ถูกต้อง
  • เติมฐานข้อมูลทดสอบเพื่อดูว่าหน้ารายการคำสั่งซื้อแสดงผลครบถ้วน
  • ทดสอบการนำเข้าข้อมูลและการส่งออกไฟล์ว่าตัวคั่นและช่องว่างไม่ทำให้ค่าผิดเพี้ยน
  • ทำชุดทดสอบอัตโนมัติที่ต้องรันซ้ำทุกครั้งก่อนปล่อยเวอร์ชันใหม่

จะเห็นได้ว่างานทั้งหมดนี้อยู่ภายในระบบของทีมเองทั้งสิ้น ไม่มีข้อใดต้องออกไปแตะเส้นทางชำระเงินจริง

ใช้หมายเลขทดสอบยืนยันการชำระเงินได้ไหม?

คำตอบคือไม่ได้ และความเข้าใจผิดตรงจุดนี้เองที่ทำให้เกิดความเสียหายบ่อยที่สุด การที่หมายเลขผ่านการตรวจของฟอร์มบอกได้เพียงว่าตัวเลขนั้นพิมพ์ครบและผลรวมลงตัว ไม่ได้บอกว่าบัญชีมีอยู่จริง มีวงเงินเหลือ หรือเปิดใช้งานอยู่

การยืนยันว่าจ่ายได้จริงต้องอาศัยการส่งคำขออนุมัติไปยังผู้ออกบัตร ซึ่งเป็นขั้นตอนที่ต้องมีคีย์จริงและสภาพแวดล้อมจริงเท่านั้น เมื่อมีคนนำหมายเลขทดสอบไปใช้ในสภาพแวดล้อมที่เชื่อมกับเส้นทางชำระเงินจริง ระบบอาจตอบกลับด้วยข้อความปฏิเสธจากผู้ออกบัตร ซึ่งทำให้หลายคนเข้าใจผิดว่าปลอดภัย ทั้งที่จริง ๆ แล้วคำขอธุรกรรมถูกส่งออกไปเรียบร้อยแล้ว

วิธีปฏิบัติที่ปลอดภัยคือใช้หมายเลขทดสอบเฉพาะในโหมดทดสอบ ตรวจสอบให้แน่ใจว่าคีย์ที่ใช้เป็นคีย์ทดสอบ และไม่ผูกโหมดทดสอบกับเส้นทางที่ไปถึงเครือข่ายบัตรจริง เรื่องนี้อยู่ในความรับผิดชอบร่วมกันของทีมพัฒนาและทีมปฏิบัติการ

สร้างชุดข้อมูลทดสอบในเครื่องมือบนเว็บไซต์นี้

เมื่อคุณต้องการตัวเลขสำหรับเติมฟอร์มหรือไฟล์ทดสอบจำนวนมาก เครื่องมือสร้างหมายเลขบัตรบนเว็บไซต์นี้ช่วยให้กำหนดเครือข่ายบัตรและจำนวนที่ต้องการได้ในครั้งเดียว จากนั้นจึงคัดลอกผลลัพธ์ทั้งหมดไปวางในที่ที่ต้องการ ไม่ต้องสมัครสมาชิกและไม่ต้องผูกกับบัญชีใด

ข้อดีของการสร้างเป็นชุดคือคุณจะได้ข้อมูลที่หน้าตาสอดคล้องกันทั้งชุด แทนที่จะได้ตัวเลขปนกันจากหลายแหล่ง ซึ่งเป็นสาเหตุที่ทำให้ผลการทดสอบไม่คงที่ หากต้องเปรียบเทียบพฤติกรรมของเครือข่ายบัตรหลายยี่ห้อพร้อมกัน ควรอ่านแนวทางในบัตรทดสอบแยกตามเครือข่ายประกอบด้วย

สำหรับนักพัฒนา: เลือกหมายเลขตั้งต้นให้ทำซ้ำได้

เมื่อไหร่ที่ชุดทดสอบของคุณสร้างหมายเลขใหม่ทุกครั้งที่รัน ความล้มเหลวที่เกิดขึ้นตอนเช้าจะสืบย้อนได้ยากมากในตอนบ่าย แนวปฏิบัติที่แก้ปัญหานี้ได้คือการตรึงหมายเลขตั้งต้นไว้เป็นค่าคงที่ในชุดทดสอบ แล้วปล่อยให้ส่วนอื่นของข้อมูลเปลี่ยนได้ตามต้องการ

ลำดับที่แนะนำในการคัดเลือกหมายเลขตั้งต้นมีดังนี้

  1. เลือกหมายเลขที่ผ่านการตรวจแล้วและตรงกับความยาวของเครือข่ายบัตรที่ต้องการทดสอบ
  2. เก็บหมายเลขนั้นไว้คู่กับชุดทดสอบที่ใช้มัน พร้อมระบุว่าใช้เพื่อทดสอบกรณีใด
  3. แยกหมายเลขสำหรับกรณีสำเร็จออกจากหมายเลขสำหรับกรณีล้มเหลวอย่างชัดเจน อย่าใช้ตัวเดียวกันสลับบทบาท
  4. เก็บหมายเลขที่จงใจทำให้ผิดไว้อย่างน้อยหนึ่งตัว เพื่อทดสอบว่าฟอร์มปฏิเสธได้จริง
  5. ตรวจทานชุดข้อมูลเมื่อกติกาความยาวหรือช่วงคำนำหน้าของระบบคุณเปลี่ยนแปลง

อย่าลืมว่าการตรวจทั้งหมดนี้เป็นเพียงประตูด่านแรกก่อนออกแบบส่วนที่เหลือ หากงานของคุณแตะข้อมูลที่อาจไปถึงลูกค้าจริง ควรอ่านข้อมูลทดสอบกับ PCI DSSเพื่อดูว่าการใช้ข้อมูลจริงในสภาพแวดล้อมทดสอบถูกจำกัดไว้อย่างไร

ก้าวต่อไป

สองสิ่งที่ทำได้ทันทีในวันนี้คือ เปลี่ยนข้อมูลบัตรจริงในชุดทดสอบของคุณให้เป็นหมายเลขสมมติทั้งหมด และจัดเก็บหมายเลขตั้งต้นไว้ให้คงที่เพื่อให้ผลการทดสอบทำซ้ำได้ ส่วนผู้ที่ต้องการมองภาพใหญ่ของการเตรียมข้อมูลทดสอบแบบครบวงจร อ่านต่อได้ที่วิธีสร้างข้อมูลทดสอบซึ่งอธิบายว่าข้อมูลแบบใดควรอยู่ในสภาพแวดล้อมทดสอบ และวิธีทำให้ข้อมูลอ้างอิงของคุณเชื่อถือได้ในระยะยาว

อ่านต่อ

บทความเกี่ยวกับ เครื่องมือสร้างหมายเลขบัตรเครดิตปลอม

บทความเกี่ยวกับ เครื่องมือสร้างหมายเลขบัตรเครดิตปลอม

รายการนี้แสดงเฉพาะบทความในหัวข้อของหน้านี้