Test Credit Card Generator: สร้างเลขบัตรทดสอบ Luhn-valid สำหรับ QA และ Sandbox Testing
สร้างเลขบัตรเครดิตทดสอบที่ผ่าน Luhn checksum สำหรับ Visa, Mastercard, Amex และอื่นๆ ฟรี ทำงาน client-side 100% สำหรับงาน QA และ sandbox testing
เครื่องมือออนไลน์ฟรี
เครื่องมือสร้างบัตรเครดิตทดสอบ
สร้างหมายเลขบัตรเครดิตทดสอบที่ผ่าน Luhn checksum สำหรับการทดสอบ QA และ sandbox
Table of Contents
ทุกครั้งที่ develop ระบบที่เกี่ยวข้องกับการชำระเงิน ไม่ว่าจะเป็น checkout form, การ integrate กับ payment gateway หรือ admin dashboard ที่ต้องแสดงข้อมูลบัตร สิ่งที่ขาดไม่ได้เลยก็คือ "เลขบัตรทดสอบ" ที่ผ่าน Luhn algorithm — เพราะถ้าพิมพ์เลขสุ่มๆ ขึ้นมาเอง validation ในแอปมักจะปฏิเสธทันที ทำให้ทดสอบขั้นตอนต่อไปไม่ได้เลย Test Credit Card Generator ของ Online Tools Forge ถูกสร้างขึ้นมาเพื่อแก้ปัญหานี้โดยเฉพาะ สร้างเลขบัตรที่ผ่าน checksum ได้ในคลิกเดียว พร้อมทั้ง expiry date และ CVV ที่สร้างให้ครบชุดในทุกใบ
เครื่องมือรองรับทั้งหมด 8 แบรนด์ — Visa, Mastercard, American Express, Discover, Diners Club, JCB, UnionPay และ Maestro — โดยเลขแต่ละใบจะถูกสร้างตามโครงสร้างที่ถูกต้องของแบรนด์นั้นๆ ทั้ง prefix, ความยาวของเลข และ check digit ที่คำนวณด้วย Luhn algorithm เสมอ ที่สำคัญคือทุกขั้นตอนทำงาน client-side 100% เลขที่คุณสร้างไม่ถูกส่งออกไปยัง server ใดๆ เลย จึงใช้งานได้อย่างปลอดภัยแม้ใน environment ที่จำกัดการเข้าถึง network
ในคู่มือนี้เราจะพาไปดูครบทุกมุมของเครื่องมือ ตั้งแต่เหตุผลที่นักพัฒนาควรมีไว้ใช้งาน ฟีเจอร์เด่นต่างๆ วิธีใช้งานทีละขั้นตอน ไปจนถึง deep dive เรื่องโครงสร้างเลขบัตรและ Luhn algorithm ทำงานอย่างไร พร้อม use case ในทางปฏิบัติและ best practices ที่ควรยึดตาม
Disclaimer สำคัญ: เลขบัตรที่สร้างจากเครื่องมือนี้ "ผ่าน Luhn checksum" แต่ไม่ใช่บัตรจริง — ไม่ผูกกับบัญชีธนาคารใดๆ ไม่มีเงิน และไม่สามารถทำธุรกรรมได้จริง ห้ามนำไปใช้กับระบบ production หรือพยายามทำธุรกรรมจริงเด็ดขาด เครื่องมือนี้มีไว้เพื่อการทดสอบและพัฒนาเท่านั้น
ทำไมต้องใช้ Test Credit Card Generator?
- ผ่าน Luhn validation จริงทุกใบ — เลขที่คิดสุ่มเองส่วนใหญ่จะตก Luhn check ทันที ทำให้ form validation ปฏิเสธก่อนที่คุณจะได้ทดสอบอย่างอื่นเลย ส่วนเลขที่ generate จากเครื่องมือนี้ผ่าน checksum เสมอ เพราะ check digit ถูกคำนวณให้พอดีตั้งแต่ต้น เหมาะกับการทดสอบทั้งฝั่ง form และ backend logic
- ไม่ต้องเสี่ยงใช้บัตรจริง — การพิมพ์เลขบัตรของตัวเองลงในระบบที่กำลังพัฒนาอยู่คือความเสี่ยงด้านความปลอดภัยที่ไม่จำเป็นเลย และอาจขัดกับหลัก PCI DSS เลขทดสอบช่วยให้คุณทดสอบได้ครบทุก flow โดยไม่ต้องแตะข้อมูลบัตรของคนจริงแม้แต่หลักเดียว
- ครบทุกแบรนด์ที่ต้องทดสอบ — รองรับ 8 แบรนด์ ครอบคลุมทั้งเลข 16 หลัก, 15 หลัก (Amex) และ 14 หลัก (Diners Club) รวมถึงรายละเอียดเฉพาะอย่าง Amex ที่ใช้ security code แบบ 4 หลัก (CID) ไม่ใช่ CVV 3 หลักแบบแบรนด์อื่น
- ประหยัดเวลาเตรียม test data — generate ได้เป็น batch ละ 1-100 ใบ พร้อม expiry date และ CVV ครบในตัว แถม download เป็นไฟล์ CSV เพื่อเอาไปใช้เป็น fixture หรือ seed data ใน automated test ได้ทันที ไม่ต้องนั่งสร้างเลขทีละใบด้วยมือ
- ทำงาน client-side 100% — ไม่มีการเรียก API ไม่มีการส่งเลขออกนอกเบราว์เซอร์ และใช้ cryptographically secure randomness (CSPRNG) ในการสุ่มทุกหลัก ไม่ใช่ Math.random() ธรรมดา จึงมั่นใจได้ว่าเลขที่ได้กระจายสม่ำเสมอและไม่มี pattern ซ้ำกัน
ฟีเจอร์เด่น
| ฟีเจอร์ | รายละเอียด |
|---|---|
| รองรับ 8 แบรนด์ | Visa, Mastercard, American Express, Discover, Diners Club, JCB, UnionPay และ Maestro |
| เลือกหลายแบรนด์พร้อมกัน | ติ๊กได้หลายแบรนด์ในรอบเดียว (default คือ Visa + Mastercard) |
| Batch generation | สร้างได้ 1-100 ใบต่อการกด generate หนึ่งครั้ง |
| Expiry date อัตโนมัติ | สร้างวันหมดอายุรูปแบบเดือน/ปี พร้อมทุกใบ |
| CVV / CID | สร้าง security code 3 หลัก หรือ 4 หลักในกรณีของ Amex (CID) |
| รูปแบบเลข | Toggle ระหว่างเว้นวรรคเป็นกลุ่ม กับเลขติดกันทั้งหมด |
| Copy หลากหลายรูปแบบ | ปุ่ม copy รายใบ และปุ่ม copy ทั้งหมดในคลิกเดียว |
| Download CSV | Export ผลลัพธ์ทั้งหมดเป็นไฟล์ CSV พร้อมคอลัมน์ครบชุด |
| Badge ยืนยัน Luhn-valid | ทุกผลลัพธ์แสดง badge ยืนยันว่าเลขผ่าน Luhn check |
| สุ่มแบบปลอดภัย | ใช้ cryptographically secure randomness และทำงาน client-side 100% ไม่มีการเรียก server |
สามจุดที่อยากเน้นเพิ่ม:
- ค่า default ที่เปิดมาคือ Visa + Mastercard เพราะเป็นสองแบรนด์ที่ถูกทดสอบบ่อยที่สุดในเว็บส่วนใหญ่ แต่คุณสามารถเพิ่มหรือลดแบรนด์ได้ทันทีก่อนกด generate โดยไม่ต้องรีเฟรชหน้า
- ทุกใบที่สร้างขึ้นจะมาพร้อม expiry date และ CVV ที่สอดคล้องกับรูปแบบของแบรนด์นั้นๆ เช่น American Express จะได้ CID แบบ 4 หลัก แทนที่จะเป็น CVV 3 หลักเหมือนแบรนด์อื่น เพื่อให้ test data สมจริงที่สุด
- ไฟล์ CSV ที่ download มาจะมีคอลัมน์ number, brand, expiry และ CVV ครบถ้วน นำไปใช้เป็น test dataset ใน unit test หรือ import เข้าระบบ staging ต่อได้เลยโดยไม่ต้องแก้อะไร
วิธีใช้งาน
- เปิดหน้า Test Credit Card Generator บนเบราว์เซอร์ของคุณ ไม่ต้องสมัครสมาชิกและไม่ต้องติดตั้งอะไรทั้งนั้น
- เลือกแบรนด์บัตรที่ต้องการ — ติ๊กได้หลายแบรนด์พร้อมกัน (ค่า default คือ Visa + Mastercard หากคุณไม่ได้เปลี่ยนอะไร)
- กำหนดจำนวนที่ต้องการตั้งแต่ 1 ถึง 100 ใบ แล้วเลือกรูปแบบเลขว่าต้องการเว้นวรรคเป็นกลุ่มหรือเป็นเลขติดกันทั้งหมด
- กดปุ่ม generate — ระบบจะสร้างเลขบัตรพร้อม expiry date และ CVV ขึ้นมาทันที โดยทุกใบจะมี badge ยืนยันว่าผ่าน Luhn validation
- คัดลอกผลลัพธ์ไปใช้งาน — เลือกกดปุ่ม copy ทีละใบ, กด copy ทั้งหมดในคลิกเดียว หรือกด download เป็นไฟล์ CSV ก็ได้ตามต้องการ
เข้าใจโครงสร้างเลขบัตรและ Luhn Algorithm
เลขบัตรเครดิตไม่ใช่ตัวเลขที่สุ่มมาอย่างไร้แบบแผน แต่ประกอบด้วยส่วนที่มีความหมายแตกต่างกันดังนี้
1. IIN / BIN (Issuer Identification Number / Bank Identification Number) — หลักแรกประมาณ 6-8 หลัก ทำหน้าที่ระบุว่าบัตรใบนี้ออกโดยเครือข่ายการเงินรายใด ตัวอย่างเช่น เลขที่ขึ้นต้นด้วย 4 คือ Visa, ขึ้นต้น 34 หรือ 37 คือ American Express เป็นต้น ส่วนนี้คือสิ่งที่ระบบต่างๆ ใช้ "ดูแบรนด์บัตร" จากเลขอัตโนมัติ
2. Account number — หลักถัดมาคือเลขประจำตัวบัญชีของผู้ถือบัตร ซึ่งในบัตรจริงจะผูกกับบัญชีที่ธนาคารออกบัตรให้ สำหรับเลขทดสอบ ส่วนนี้จะถูกสุ่มขึ้นมาโดยไม่ชี้ไปที่บัญชีใดๆ
3. Luhn check digit — หลักสุดท้ายหนึ่งหลัก คือผลลัพธ์จากการคำนวณ Luhn algorithm ซึ่งช่วยให้ระบบตรวจจับเลขที่พิมพ์ผิดหรือสุ่มมั่วได้ทันที
ตารางด้านล่างคือ prefix และความยาวเลขของแต่ละแบรนด์ที่เครื่องมือรองรับ:
| แบรนด์ | Prefix | ความยาว |
|---|---|---|
| Visa | 4 | 16 หลัก |
| Mastercard | 51-55, 2221, 2720 | 16 หลัก |
| American Express | 34, 37 | 15 หลัก |
| Discover | 6011, 65, 644-649 | 16 หลัก |
| Diners Club | 300-305, 36, 38 | 14 หลัก |
| JCB | 3528-3589 | 16 หลัก |
| UnionPay | 62 | 16 หลัก |
| Maestro | 5018, 5020, 5038, 6304, 6759, 6761, 6763 | 16 หลัก |
generator สร้างเลขแต่ละแบรนด์อย่างไร — ขั้นตอนภายในมี 3 ขั้นตอนง่ายๆ: ขั้นแรกคือสุ่ม prefix จากช่วงที่ valid ของแบรนด์นั้นๆ (เช่น Visa จะขึ้นต้นด้วย 4 เสมอ) ขั้นที่สองคือสุ่มเลขส่วนกลางจนครบความยาวมาตรฐานของแบรนด์ โดยเว้นหลักสุดท้ายไว้ และขั้นสุดท้ายคือคำนวณ Luhn check digit ใส่หลักสุดท้ายให้ผลรวมทั้งหมดหารด้วย 10 ลงตัวพอดี ทุกขั้นตอนใช้ cryptographically secure randomness และเกิดขึ้นในเบราว์เซอร์ของคุณทั้งหมด
Luhn algorithm ทำงานอย่างไร — Luhn algorithm (หรือที่รู้จักกันในชื่อ "mod 10 checksum") เป็นสูตรที่ Hans Peter Luhn พัฒนาขึ้นในปี 1954 ปัจจุบันกลายเป็นมาตรฐานสากลที่บัตรแทบทุกแบรนด์ใช้ หลักการมี 3 ขั้น คือ (1) นับจากขวาไปซ้าย คูณ 2 ทุกหลักที่สอง (ไม่รวมหลักสุดท้าย) (2) ถ้าผลคูณมีสองหลัก ให้รวมเลขทั้งสองหลักเข้าด้วยกัน เช่น 16 กลายเป็น 1+6 = 7 และ (3) รวมทุกหลักเข้าด้วยกัน ถ้าผลรวมหารด้วย 10 ลงตัว เลขนั้นถือว่าผ่าน Luhn validation
ลองดูตัวอย่างจริงกับเลข Visa ทดสอบ 4539 1488 0343 6467:
- เขียนเลขออกมา: 4 5 3 9 1 4 8 8 0 3 4 3 6 4 6 7
- คูณ 2 ทุกหลักที่สองนับจากขวา (ยกเว้น 7 หลักสุดท้าย): 4→8, 3→6, 1→2, 8→16→7, 0→0, 4→8, 6→12→3, 6→12→3
- รวมทุกหลักหลังแปลงแล้ว: 8+5+6+9+2+4+7+8+0+3+8+3+3+4+3+7 = 80
- 80 หาร 10 ลงตัว → เลขนี้ผ่าน Luhn validation
นี่คือเหตุผลที่เลขจาก generator จำเป็นจริงๆ — เลขที่สุ่มพิมพ์เองมีโอกาสผ่าน Luhn เพียงประมาณ 10% เท่านั้น ส่วนเลขที่สร้างจากเครื่องมือนี้ผ่าน 100% เพราะ check digit ถูกคำนวณย้อนกลับให้พอดีเสมอ อย่างไรก็ตาม การผ่าน Luhn แค่บอกว่า "เลขมีโครงสร้างถูกต้อง" เท่านั้น ไม่ได้แปลว่าบัตรนั้นมีอยู่จริงหรือใช้ทำธุรกรรมได้จริงแต่อย่างใด
use case ในทางปฏิบัติ
ทดสอบ validation ของ payment form ตอน develop
เวลาสร้าง checkout form คุณต้องทดสอบหลายกรณี: เลขถูก format, เลขผิด, แบรนด์ที่รองรับเทียบกับแบรนด์ที่ไม่รองรับ ตัวอย่างเช่น สร้าง Visa, Amex และ JCB อย่างละ 10 ใบ แล้วทดสอบว่า form แสดง brand icon ถูกต้อง, format เว้นวรรคตรงตามรูปแบบของแบรนด์ (Amex 15 หลักมักจัดกลุ่มแบบ 4-6-5 ต่างจาก Visa ที่เป็น 4-4-4-4) และ reject บัตรที่ระบบไม่รองรับ เช่น UnionPay ได้อย่างถูกต้อง นอกจากนี้ยังใช้ทดสอบ CVV input ว่ารับ 3 หลักสำหรับแบรนด์ทั่วไปและ 4 หลักสำหรับ Amex ได้จริง
Sandbox testing กับ Stripe, PayPal, Braintree
Provider ใหญ่ๆ อย่าง Stripe, PayPal หรือ Braintree ล้วนมี test mode ที่รับเฉพาะเลขบัตรที่กำหนดไว้ในเอกสารของเขา (เช่น 4242 4242 4242 4242 ของ Stripe) เลขจาก generator นี้เข้ามามีบทบาทในช่วงก่อนถึงมือ provider — ตอนที่คุณต้องทดสอบ validation และ business logic ของระบบตัวเองก่อนส่งคำขอไปที่ gateway เช่น ทดสอบว่าคุณแปลงเลขให้อยู่ในรูปแบบที่ provider ต้องการถูกไหม, เด้ง error message ถูกสถานการณ์ไหม หรือจัดเก็บข้อมูล order ถูกต้องไหม ส่วนถ้าต้องการทดสอบผลลัพธ์เฉพาะเจาะจง เช่น บัตรถูกปฏิเสธ (card declined) หรือวงเงินไม่พอ ควรใช้เลข sandbox ทางการจากเอกสารของ provider แต่โดยตรง เพราะเลขที่ generate เองจะได้เพียง response แบบ generic เท่านั้น
QA regression และ checkout flow แบบ end-to-end
ชุดเลขที่ download มาเป็น CSV ช่วยให้ QA สร้าง regression suite ที่เดินทั้ง checkout flow ได้ตั้งแต่เลือกสินค้า กรอกบัตร ยืนยัน ไปจนถึงหน้าผลลัพธ์ การมีเลขหลายร้อยใบจากหลายแบรนด์ทำให้ทีมทดสอบได้ครอบคลุมทั้ง happy path และ edge case เช่น บัตรใกล้หมดอายุ หรือเลขที่ยาวผิด format โดยไม่ต้องรอให้ dev สร้าง mock data ให้ทีละชุด และการสลับเลขใหม่ทุกรอบทดสอบยังช่วยกันปัญหา test ที่ผ่านเพราะจำคำตอบเดิม (false pass) จาก cache หรือ hardcode อีกด้วย
สอนและทำ demo payment UI
ถ้าคุณเป็นอาจารย์ วิทยากร หรือต้อง demo ระบบให้ลูกค้าดู การแสดงเลขบัตรจริงบนจอคือเรื่องที่ต้องห้ามอย่างยิ่ง เลขทดสอบที่ผ่าน Luhn ทำให้ demo ดูสมจริงทุกขั้นตอน ทั้งที่ไม่มีความเสี่ยงใดๆ เกิดขึ้นเลย นอกจากนี้ยังใช้ทำ mockup, screenshot ใน documentation, หรือตัวอย่างใน template ของ UI library ได้อย่างปลอดภัย เพราะเลขผ่านโครงสร้างจริงจึงดูเป็นธรรมชาติกว่าการเขียน "1111 1111 1111 1111" ซึ่งระบบจริงปฏิเสธทันที
Best Practices สำหรับการทดสอบด้วยเลขบัตรที่ generate มา
- ห้ามนำไปใช้กับธุรกรรมจริงเด็ดขาด — เลขเหล่านี้ผ่าน checksum แต่ไม่ได้ผูกกับบัญชี เงิน หรือผู้ถือบัตรจริงใดๆ การพยายามใช้กับระบบ production คือการทำ fraud ที่มีโทษทางกฎหมาย ไม่ใช่ "การทดสอบ" ไม่ว่ากรณีใดก็ตาม
- ใช้เลข sandbox ทางการของ provider เมื่อทดสอบ decline แบบเฉพาะเจาะจง — ถ้าต้องการทดสอบว่าระบบจัดการ error แบบ card_declined, insufficient_funds หรือ 3D Secure challenge ให้ใช้เลขทดสอบจากเอกสารทางการของ payment gateway โดยตรง เพราะเลขที่ generate เองจะได้เพียง response แบบ generic เท่านั้น
- ทดสอบทั้งกรณี valid และ invalid — อย่าทดสอบเฉพาะเลขที่ผ่าน Luhn อย่างเดียว ลองแก้เลขหลักเดียวให้ผิด checksum เพื่อตรวจว่า validation ของคุณจับ error ได้จริง จะเช็คยืนยันเลขก่อนใช้ก็ทำได้ง่ายๆ ด้วย Credit Card Validator
- แยก test data ออกจากข้อมูลจริงให้ชัดเจน — เก็บชุดเลขทดสอบไว้ในไฟล์หรือ environment แยกต่างหากจาก production เพื่อไม่ให้เกิดความสับสนภายหลังว่าอันไหนคือข้อมูลจริง ซึ่งอาจนำไปสู่ข้อผิดพลาดร้ายแรงในภาหลัง
- สลับชุดเลขใหม่เป็นระยะ — การใช้เลขชุดเดิมซ้ำๆ ทุก sprint ทำให้ test อาจผูกกับเลขเฉพาะมากเกินไปจนไม่รู้ตัวว่า logic รองรับเลขรูปแบบอื่นไม่ได้ การ generate ชุดใหม่เป็นระยะช่วยให้ logic ถูกทดสอบกับข้อมูลที่หลากหลายขึ้นเสมอ
- จำเสมอว่า Luhn-valid ไม่เท่ากับบัตรมีอยู่จริง — ผ่าน checksum แค่บอกว่าเลขนั้นสอดคล้องกับโครงสร้างของบัตรเท่านั้น ระบบของคุณไม่ควรสมมติว่าเลขที่ผ่าน Luhn คือบัตรที่ใช้งานได้จริงเสมอไป
เริ่มสร้างเลขบัตรทดสอบวันนี้
ไม่ว่าคุณจะเป็น frontend developer ที่กำลังปรับ checkout form, QA ที่ต้องเตรียมชุด test data ให้ทีม หรือวิทยากรที่ต้องการ demo ที่ดูสมจริงโดยไม่เสี่ยงอะไรเลย Test Credit Card Generator พร้อมให้ใช้งานทันที — ฟรี ไม่ต้องสมัครสมาชิก ไม่ต้องติดตั้ง และเลขที่คุณสร้างไม่เคยออกจากเบราว์เซอร์ของคุณแม้แต่หลักเดียว เปิดหน้าเครื่องมือ เลือกแบรนด์ที่ต้องการ กด generate แล้วก็อปปี้ไปใช้ได้เลย เท่านี้ก็มี test data ที่ผ่าน Luhn validation ครบทั้ง 8 แบรนด์พร้อมใช้ในงานของคุณแล้ว
เครื่องมือที่เกี่ยวข้อง
- Credit Card Validator — ตรวจสอบว่าเลขบัตรผ่าน Luhn algorithm หรือไม่ พร้อมระบุแบรนด์จาก prefix ใช้คู่กับ generator เพื่อตรวจเลขตัวอย่างก่อนใส่เข้าไปใน test case
- UUID Generator — สร้าง UUID สำหรับใช้เป็น mock user ID, order ID หรือ session token เพิ่มใน test dataset ชุดเดียวกันกับเลขบัตรทดสอบ
- JWT Generator — สร้าง JWT สำหรับทดสอบ auth flow ที่มักต้องมาคู่กับการทดสอบ API endpoint ด้านการชำระเงินที่ต้องแนบ token
ขอให้สนุกกับการทดสอบ!