Menu

Generator nomor kartu kredit untuk pengujian pembayaran

Generator nomor kartu kredit menyusun data uji dengan awalan jaringan dan digit pemeriksa yang sah agar formulir pembayaran teruji tanpa kartu asli.

Diterbitkan

  • data uji
  • kartu kredit
  • pembayaran

Generator nomor kartu kredit dipakai untuk mengisi formulir pembayaran dengan nilai yang bentuknya benar tanpa menyentuh kartu siapa pun. Nilai seperti itu lolos dari pemeriksaan panjang dan pemeriksaan digit pemeriksa, sehingga logika formulir Anda benar-benar teruji, tetapi tidak pernah terkait dengan rekening atau pemegang kartu yang sungguh ada. Uraian berikut menjelaskan susunan nomor kartu, arti digit pemeriksa, mengapa masa berlaku dan kode keamanan harus diuji bersama-sama, serta batas yang tetap berlaku meski pengujian hanya berjalan di komputer Anda sendiri.

Beda nomor kartu uji dan nomor kartu sungguhan

Perbedaannya bukan pada panjang atau kerapian angka, melainkan pada asalnya. Nomor kartu sungguhan diterbitkan oleh penerbit kepada pemegang kartu tertentu, dan setiap nomor terikat pada satu rekening. Nomor uji disusun oleh program dengan aturan yang sama seperti nomor sungguhan, tetapi tidak pernah diterbitkan oleh siapa pun dan tidak menunjuk rekening apa pun.

Akibat perbedaan itu, keduanya membawa risiko yang sangat berbeda. Menyalin nomor kartu sungguhan ke lingkungan pengujian, meski hanya satu, dapat melanggar aturan industri pembayaran dan membawa kewajiban hukum bagi tim Anda. Nomor uji tidak membawa keduanya, dan justru karena itu ia menjadi satu-satunya bahan yang wajar dipakai untuk menguji formulir.

Satu hal yang perlu dipegang sejak awal: nomor uji bukan alat untuk membuka transaksi nyata. Tidak ada nomor yang dihasilkan alat ini yang dapat dipakai untuk membayar barang, mengaktifkan langganan, atau melewati pemeriksaan penerbit. Seluruh penggunaannya berhenti di batas sistem yang Anda sendiri sedang uji, dan itulah tujuan satu-satunya.

Awalan penerbit dan jaringan kartu

Beberapa digit pertama sebuah nomor kartu menunjuk penerbit dan jaringan pemrosesnya. Rangkaian itu ditetapkan oleh badan standar internasional dan dipakai oleh sistem pembayaran untuk mengarahkan transaksi ke jalur yang benar. Karena itu, sebuah nomor yang panjangnya benar tetapi awalannya tidak dikenal akan ditolak lebih awal, sebelum digit pemeriksanya sempat dinilai.

Bagi penguji, artinya adalah pengujian harus mencakup lebih dari satu jaringan. Setiap jaringan memiliki panjang yang berbeda, dan setiap penerbit memiliki rentang awalan sendiri. Menguji formulir hanya dengan satu jaringan membuat formulir tampak benar padahal ia mungkin menolak seluruh jaringan lain, dan masalah itu baru muncul ketika ada pengguna sungguhan dari jaringan tersebut.

Perlu diperhatikan pula bahwa awalan yang sah tidak menjamin nomor itu benar. Rangkaian awalan hanya memberi tahu siapa pemrosesnya, bukan apakah nomornya lengkap dan konsisten. Kedua pemeriksaan itu berbeda dan keduanya perlu diuji secara terpisah. Susunan lengkap bagian-bagian nomor kartu dibahas pada format nomor kartu.

Apa yang sebenarnya diperiksa oleh digit pemeriksa?

Digit terakhir sebuah nomor kartu berfungsi sebagai penjaga sebagian besar digit sebelumnya. Algoritmanya menjumlahkan digit-digit itu dengan pola pembobotan yang berganti-ganti, mereduksi hasil penjumlahannya, lalu memeriksa apakah sisa baginya memenuhi syarat tertentu. Bila satu digit saja salah ketik atau tertukar posisinya, hasil pemeriksaan itu hampir selalu berubah, sehingga kesalahan tersebut langsung terdeteksi.

Yang penting dipahami adalah apa yang tidak diperiksa oleh algoritma ini. Ia tidak memeriksa apakah nomornya pernah diterbitkan, apakah rekeningnya aktif, atau apakah ada saldo di dalamnya. Ia hanya memeriksa apakah susunan digitnya konsisten secara aritmetika. Karena itu, deretan angka yang diketik asal hampir selalu gagal, sedangkan angka yang disusun dengan sengaja akan lolos meski tidak menunjuk apa pun.

Bagi pengujian, sifat itu sangat berguna karena memisahkan dua jenis kesalahan. Kesalahan aritmetika, seperti salah ketik dan digit tertukar, tertangkap sebelum permintaan dikirim ke jaringan. Kesalahan yang lebih dalam, seperti nomor yang tidak dikenal penerbit, baru tertangkap ketika jaringan menolak permintaan. Penjelasan langkah demi langkah algoritmanya ada pada algoritma digit pemeriksa kartu, dan pemahaman itu menolong ketika Anda perlu memeriksa nilai pada lapisan kode Anda sendiri.

Mengapa masa berlaku dan kode keamanan harus cocok dengan nomornya?

Karena formulir yang baik memeriksa ketiganya bersama-sama, dan pengujian yang hanya mengisi salah satunya tidak akan menemukan masalah pada pemeriksaan gabungan. Masa berlaku ditulis dalam bentuk bulan dan tahun, dan banyak kesalahan terjadi pada penafsiran dua digit tahun, pada masa berlaku yang sudah lewat, serta pada masa berlaku yang terlalu jauh di masa depan.

Kode keamanan yang tercetak di kartu memiliki panjang yang berbeda menurut jaringannya, dan formulir yang mewajibkan panjang tertentu akan menolak sebagian jaringan yang sah. Menguji hal ini memerlukan data uji yang panjangnya bervariasi, bukan hanya satu nilai tetap. Uraian mengenai peran kode keamanan ada pada kode keamanan kartu, dan masa berlaku dibahas pada masa berlaku kartu.

Pengujian yang paling berguna adalah pengujian kombinasi. Pasangkan nomor yang sah dengan masa berlaku yang sudah lewat, lalu dengan masa berlaku yang tepat berada di batas bulan berjalan, lalu dengan kode keamanan yang panjangnya tidak wajar. Setiap kombinasi itu mewakili kesalahan nyata yang pernah terjadi pada pengguna sungguhan, dan pengujian kombinasi jauh lebih berharga daripada pengujian nilai satu per satu.

Kartu uji resmi dari penyedia gerbang pembayaran

Selain data uji yang Anda susun sendiri, hampir semua gerbang pembayaran menyediakan daftar kartu uji resmi untuk lingkungan sandbox mereka. Kartu-kartu itu punya perilaku yang sudah ditentukan, misalnya selalu berhasil, selalu ditolak, atau memicu pemeriksaan tambahan. Karena perilakunya ditentukan oleh gerbang itu sendiri, kartu tersebut berguna untuk menguji jalur respons, bukan hanya jalur masukan.

Perlu diingat bahwa kartu uji dari satu gerbang tidak dijamin berlaku di gerbang lain, dan tidak dijamin berlaku setelah gerbang itu memperbarui kebijakannya. Karena itu, simpan daftar kartu uji yang Anda pakai sebagai berkas acuan yang bercatatan tanggal, lalu perbarui secara berkala. Rangkuman praktik ini ada pada kartu uji per jaringan dan pada kartu uji gerbang populer.

Data uji yang Anda susun sendiri tetap berguna di samping daftar resmi. Daftar resmi menguji perilaku gerbang, sedangkan data susunan sendiri menguji logika formulir Anda, termasuk penanganan kesalahan yang jarang diuji gerbang. Keduanya saling melengkapi dan sebaiknya berada dalam satu rangkaian pengujian yang sama.

Batas keamanan data yang tetap berlaku

Bahkan di lingkungan pengujian, aturan industri pembayaran tetap berlaku begitu data kartu sungguhan tersentuh. Menyalin basis data produksi ke lingkungan staging, menyimpan nomor kartu sungguhan di berkas uji, atau mengirimkannya melalui obrolan tim semuanya melanggar prinsip yang sama. Lingkungan pengujian umumnya lebih longgar pengamanannya, dan justru karena itu data sungguhan di sana lebih berbahaya, bukan lebih aman.

Jalan keluarnya adalah memastikan tidak ada nomor kartu sungguhan yang pernah masuk ke lingkungan pengujian sama sekali. Pakai hanya data uji sintetis, dan bila Anda memerlukan perilaku tertentu dari gerbang, pakai kartu uji resmi yang memang disediakan untuk itu. Ringkasan batas ini ada pada data uji dan aturan keamanan data kartu. Standar yang menjadi acuan industri dapat dibaca di situs resmi dewan standar keamanan data industri kartu.

Perlu ditambahkan bahwa aturan itu bukan sekadar formalitas. Kebocoran data kartu menimbulkan kerugian langsung bagi pemegangnya, dan pemulihannya memakan waktu yang jauh lebih lama daripada waktu yang dihemat dengan memakai data sungguhan di lingkungan pengujian.

Daftar periksa pengujian formulir pembayaran

Uji panjang nomor untuk setiap jaringan yang Anda layani, uji awalan yang tidak dikenal, dan uji nomor dengan satu digit yang sengaja diubah. Uji masa berlaku yang sudah lewat, masa berlaku pada bulan berjalan, dan masa berlaku dengan dua digit tahun yang ambigu. Uji kode keamanan dengan panjang yang berbeda menurut jaringannya, serta kolom yang menerima spasi dan tanda hubung pada nomor kartu.

Uji pula perilaku formulir ketika masukan mengandung huruf, ketika nomornya terlalu pendek, dan ketika nomornya terlalu panjang. Periksa apakah pesan kesalahan menyebut bagian yang salah dengan jelas, dan apakah nilainya dimasking pada catatan log. Kegagalan mencatat atau memorak-porandakan nomor pada log adalah masalah yang jauh lebih serius daripada kesalahan tampilan, dan sering terlewat karena pengujian hanya berfokus pada layar.

Untuk mengisi kasus-kasus itu, generator nomor kartu kredit di situs ini menyusun data uji dengan awalan jaringan yang dikenali, panjang yang benar, dan digit pemeriksa yang konsisten. Daftar periksa yang lebih panjang tersedia pada daftar periksa pengujian formulir pembayaran.

Menyiapkan data uji yang dapat dipakai berulang

Pengujian pembayaran hampir selalu dijalankan berkali-kali, sehingga data ujinya perlu dapat dipakai ulang tanpa menimbulkan kebingungan. Simpan daftar nilai uji beserta catatan tentang perilaku yang diharapkan untuk masing-masingnya, misalnya nilai yang seharusnya diterima, nilai yang seharusnya ditolak, dan nilai yang seharusnya memicu pemeriksaan tambahan. Daftar itu menjadi acuan bersama antara pengembang, penguji, dan tim dukungan.

Kunci yang tetap menolong di sini sama seperti pada data uji lainnya. Bila nilai uji dibangun dari kunci dan jaringan yang dipilih, laporan kutu dapat menyebut kunci itu dan siapa pun dapat membangun kembali nilai yang sama persis. Tanpa itu, laporan hanya dapat menyalin nilainya, dan salinan nilai di dalam percakapan tim adalah kebiasaan yang sebaiknya dihindari karena mudah beredar ke tempat yang salah.

Perlu ditetapkan pula kapan daftar itu ditinjau ulang. Gerbang pembayaran mengubah perilaku lingkungan sandbox dari waktu ke waktu, dan daftar nilai uji yang tidak pernah ditinjau akan menimbulkan kegagalan yang disalahartikan sebagai kutu pada kode Anda. Tetapkan satu titik dalam siklus rilis untuk memeriksa daftar itu, dan catat tanggal pemeriksaannya pada berkas yang sama.

Terakhir, pastikan daftar itu tidak pernah memuat nilai dari kartu sungguhan. Sekali nilai sungguhan masuk, seluruh keuntungan pengujian dengan data sintetis hilang, dan kewajiban yang seharusnya dihindari langsung muncul kembali.

Langkah berikutnya

Mulailah dengan menetapkan jaringan mana yang perlu Anda dukung, lalu siapkan setidaknya satu data uji untuk setiap jaringan beserta satu kasus kesalahan untuk masing-masingnya. Sesudah itu, periksa apakah ada satu pun nomor kartu sungguhan yang tersimpan di lingkungan pengujian, dan hapus sebelum hal itu menjadi kebiasaan.

Akhirnya, ingat batasnya. Seluruh nomor yang dihasilkan situs ini adalah data uji sintetis untuk menguji perangkat lunak Anda sendiri: bentuknya benar dan digit pemeriksanya sah, tetapi tidak satu pun pernah diterbitkan, tidak terkait dengan rekening mana pun, dan tidak dapat dipakai untuk transaksi sungguhan atau untuk melewati pemeriksaan penerbit.

Lanjut membaca

Alat populer dan artikel cara pakai