Menu

Số thẻ tín dụng thử nghiệm là gì và lấy ở đâu

Số thẻ tín dụng thử nghiệm là dãy số đúng định dạng nhưng chưa từng được phát hành. Tìm hiểu chúng đến từ đâu, khác gì thẻ thật và dùng sao cho đúng.

Đăng ngày

  • dữ liệu thử
  • thanh toán
  • kiểm thử

Số thẻ tín dụng thử nghiệm là những dãy số được tạo ra để kiểm tra phần mềm, không phải để chi tiêu. Chúng có đúng độ dài, đúng tiền tố của mạng thẻ và đúng chữ số kiểm tra, nhưng không có tài khoản nào đứng sau. Đọc hết bài này, bạn sẽ biết chúng được sinh ra từ đâu, chúng khác thẻ thật ở điểm nào, và làm thế nào để đưa chúng vào một buổi kiểm thử mà không vô tình tạo ra một giao dịch thật.

Vì sao loại số này tồn tại

Hãy hình dung một biểu mẫu thanh toán đang chờ bạn điền. Nó phải làm hai việc ngược chiều nhau cùng lúc. Một mặt, nó phải chặn được những lần gõ nhầm và những dãy số do ai đó bịa ra. Mặt khác, nó phải chấp nhận mọi tấm thẻ mà một khách hàng thật đang cầm trong tay, dù thẻ đó do ngân hàng nào phát hành, thuộc mạng thẻ nào hay dài bao nhiêu chữ số.

Kiểm thử vế thứ nhất thì dễ, vì bạn chỉ cần dữ liệu cố tình sai. Kiểm thử vế thứ hai mới khó, vì bạn cần dữ liệu trông bình thường đến mức không có lý do gì để hệ thống từ chối. Và đây là chỗ thẻ thật không thể đóng vai trò đó. Mỗi lần bạn gõ số thẻ thật của mình vào một môi trường thử là một lần bạn sao chép một thông tin xác thực thanh toán sang một hệ thống thường không được bảo vệ và kiểm toán nghiêm ngặt như hệ thống thật. Chỉ cần một lần gửi nhầm, đó đã là một giao dịch có thật, có thể bị tính phí thật.

Vì vậy ngành thẻ dành riêng những dải số cho mục đích tài liệu và thử nghiệm, còn các nhà cung cấp dịch vụ thanh toán công bố một danh sách ngắn những số thử mà họ chấp nhận trong môi trường sandbox. Phần còn lại do bạn tự tạo, và đó chính là lý do tồn tại của những công cụ sinh số thẻ thử.

Số thẻ thử có dùng được với cổng thanh toán thật không?

Không. Một số thẻ thử có thể vượt qua bước kiểm tra định dạng ở phía giao diện, nhưng nó sẽ dừng lại ngay khi hệ thống thử xác thực với ngân hàng phát hành. Bạn nên coi việc này là điều đúng đắn chứ không phải điều đáng tiếc: nếu một dãy số bịa lại có thể trừ tiền, thì đó mới là lỗ hổng nghiêm trọng.

Cũng có một nhầm lẫn phổ biến cần gỡ. Có những số thử được phát hành như thẻ thật trong một dải dành riêng cho thử nghiệm, chúng chỉ hoạt động trong môi trường sandbox của một nhà cung cấp cụ thể, và chúng sẽ bị từ chối ở mọi nơi khác. Ngược lại, những số do công cụ sinh ra không gắn với bất kỳ nhà cung cấp nào; chúng chỉ đúng về mặt cấu trúc. Cả hai nhóm đều không phải phương tiện thanh toán.

Ba nhóm số thường gặp

Nhóm Nguồn gốc Hành vi
Số thử chính thức Nhà cung cấp thanh toán công bố trong tài liệu sandbox Kích hoạt đúng kịch bản mà nhà cung cấp muốn bạn thử
Số do công cụ sinh Thuật toán tạo theo cấu trúc và chữ số kiểm tra Đúng định dạng, không gắn với hệ thống nào
Số tự bịa Ai đó gõ tay Hầu như luôn sai chữ số kiểm tra, chỉ dùng để thử thông báo lỗi

Bảng trên cũng là thứ tự ưu tiên khi bạn cần dữ liệu. Nếu kịch bản kiểm thử của bạn phụ thuộc vào hành vi của một nhà cung cấp cụ thể, hãy dùng đúng số mà nhà cung cấp đó công bố. Nếu bạn chỉ cần một biểu mẫu có dữ liệu trông hợp lý, hoặc cần hàng trăm bản ghi cùng lúc, hãy dùng công cụ sinh số.

Bạn nên chọn số thử như thế nào?

Trước hết, hãy xác định rõ bạn đang kiểm thử điều gì. Ba mục tiêu sau đây đòi ba loại dữ liệu khác nhau:

  • Kiểm thử giao diện: bạn cần những số trông thật để xem bố cục, dấu cách nhóm và cách hiển thị thương hiệu mạng thẻ có đúng không.
  • Kiểm thử luồng thành công: bạn cần một số mà hệ thống chắc chắn chấp nhận, thường là số do chính nhà cung cấp dịch vụ cung cấp.
  • Kiểm thử luồng thất bại: bạn cần những số bị từ chối, và ở đây sai chữ số kiểm tra là cách rẻ nhất để tạo ra chúng.

Với mục tiêu thứ ba, hãy lấy một số hợp lệ rồi đổi đúng một chữ số. Cách này giữ cho mọi thứ khác không đổi, nên khi hệ thống báo lỗi, bạn biết chắc nguyên nhân nằm ở chữ số kiểm tra chứ không phải ở độ dài hay tiền tố.

Dữ liệu thử và quyền riêng tư

Có một lý do nữa khiến số thẻ thử trở nên quan trọng, và nó liên quan tới trách nhiệm chứ không chỉ kỹ thuật. Khi bạn dùng số thẻ thật trong môi trường thử, bạn đang tạo ra một bản sao dữ liệu thẻ nằm ngoài mọi biện pháp bảo vệ mà bạn đã dựng công phu cho hệ thống thật. Bản sao đó thường nằm trong cơ sở dữ liệu thử, trong ảnh chụp màn hình, trong tệp nhật ký, hay trong một tin nhắn gửi cho đồng nghiệp.

Dữ liệu tổng hợp loại bỏ toàn bộ chuỗi rủi ro đó ngay từ đầu. Không có chủ thẻ nào bị ảnh hưởng nếu cơ sở dữ liệu thử bị lộ, và không có giao dịch nào có thể phát sinh. Đây là lý do các tiêu chuẩn bảo mật trong ngành yêu cầu môi trường phát triển và kiểm thử phải dùng dữ liệu tổng hợp hoặc dữ liệu đã được thay thế bằng một tham chiếu, chứ không dùng dữ liệu thẻ thật.

Dùng công cụ sinh số trong thực tế

Trong trình tạo số thẻ tín dụng giả của trang này, bạn có thể tạo cùng lúc nhiều số thẻ thử, chọn cố định một mạng thẻ hoặc để chế độ ngẫu nhiên, và chọn số lượng bản ghi cần lấy. Nếu bạn đã có sẵn một phần số thẻ hay một tiền tố đã biết, hãy chuyển sang chế độ hoàn thiện số thẻ, dán phần đã biết và để các chỗ trống được điền nốt. Cách này hữu ích khi bạn phải tái hiện đúng một lỗi mà đồng nghiệp báo cáo, nhưng không muốn dùng chính số thẻ của họ.

Mọi số thẻ mà công cụ tạo ra đều là hư cấu. Chúng đúng về cấu trúc, hợp lệ theo phép kiểm tra chữ số, nhưng chưa từng được phát hành và không thể hoàn tất một giao dịch thanh toán nào.

Phần dành cho nhà phát triển

Khi đưa số thẻ thử vào bộ kiểm thử tự động, điều quan trọng nhất là tính tái lập. Một bộ dữ liệu cố định luôn cho cùng kết quả trên máy của bạn, trên máy đồng nghiệp và trên máy chủ tích hợp liên tục. Nếu mỗi lần chạy lại sinh số ngẫu nhiên, một lần thất bại sẽ rất khó tái hiện, và bạn sẽ mất nhiều thời gian hơn để tìm ra nguyên nhân thật.

Vài điểm cần lưu ý khi chọn số cho bộ dữ liệu cố định:

  • Chọn số theo mục đích, không theo cảm hứng. Mỗi số trong bộ dữ liệu nên gắn với một kịch bản cụ thể và có tên gợi nhớ trong mã kiểm thử.
  • Giữ một số hợp lệ làm chuẩn, rồi dẫn xuất các biến thể từ nó bằng cách đổi đúng một đặc điểm mỗi lần: sai một chữ số, thiếu một chữ số, thừa một chữ số, đổi tiền tố sang mạng thẻ khác.
  • Đừng để dữ liệu thử phụ thuộc vào thời gian chạy. Nếu kịch bản cần ngày hết hạn trong tương lai, hãy tính ngày đó từ thời điểm chạy thay vì ghi cứng một ngày sẽ trôi qua.
  • Ghi lại nguồn gốc của từng số. Sáu tháng sau, người đọc mã sẽ cần biết số đó đến từ tài liệu của nhà cung cấp hay do công cụ sinh ra, vì hai loại này có hành vi khác nhau.
  • Kiểm tra rằng số thử không lọt được vào môi trường thật. Một hàng rào chặn theo tiền tố dành riêng cho thử nghiệm là cách bảo vệ rẻ và hiệu quả.

Cuối cùng, đừng quên kiểm thử chính việc kiểm tra. Hãy viết vài ca khẳng định rằng hệ thống phải từ chối số sai chữ số kiểm tra, số quá ngắn và số chứa ký tự không phải chữ số. Một bộ kiểm tra chưa từng bị thử thách thì chưa thể tin được.

Tiếp theo

Nếu bạn muốn hiểu vì sao một dãy số bịa vẫn có thể “hợp lệ”, hãy đọc bài về thuật toán Luhn, nơi giải thích chữ số cuối cùng được tính ra như thế nào. Còn nếu bạn cần nắm cấu trúc đầy đủ của một số thẻ trước khi thiết kế biểu mẫu, bài định dạng số thẻ tín dụng sẽ là bước tiếp theo hợp lý.

Đọc tiếp

Bài viết về Trình tạo số thẻ tín dụng giả