Mendapatkan dan memahami data strip magnetik
Topik ini menjelaskan cara mendapatkan dan menginterpretasikan data dari pembaca strip magnetik menggunakan API Titik Layanan (POS) Platform Windows Universal (UWP).
Berlangganan *Peristiwa DataReceived
Setelah menyiapkan pembaca strip magnetik di aplikasi Anda menggunakan langkah-langkah yang diuraikan dalam Memulai Point of Service, Anda siap untuk mulai mendapatkan data darinya.
Setiap kali pembaca mengenali kartu yang di-geser, itu akan menaikkan salah satu dari tiga peristiwa:
- Peristiwa AamvaCardDataReceived: Terjadi ketika kartu kendaraan bermotor di gesek.
- Kejadian BankCardDataReceived: Terjadi saat kartu bank di-swiped.
- VendorSpecificDataReceived Event: Terjadi saat kartu khusus vendor di-swiped.
Aplikasi Anda hanya perlu berlangganan peristiwa yang didukung oleh pembaca strip magnetik. Anda dapat melihat jenis kartu apa yang didukung dengan MagneticStripeReader.SupportedCardTypes.
Kode berikut menunjukkan berlangganan tiga peristiwa *DataReceived :
private void SubscribeToEvents(ClaimedMagneticStripeReader claimedReader, MagneticStripeReader reader)
{
foreach (var type in reader.SupportedCardTypes)
{
if (item == MagneticStripeReaderCardTypes.Aamva)
{
claimedReader.AamvaCardDataReceived += Reader_AamvaCardDataReceived;
}
else if (item == MagneticStripeReaderCardTypes.Bank)
{
claimedReader.BankCardDataReceived += Reader_BankCardDataReceived;
}
else if (item == MagneticStripeReaderCardTypes.ExtendedBase)
{
claimedReader.VendorSpecificDataReceived += Reader_VendorSpecificDataReceived;
}
}
}
Penanganan aktivitas akan dilewatkan ClaimedMagneticStripeReader dan objek args , yang jenisnya akan bervariasi tergantung pada peristiwa:
- Peristiwa AamvaCardDataReceived : Kelas MagneticStripeReaderAamvaCardDataReceivedEventArgs
- Acara BankCardDataReceived : Kelas MagneticStripeReaderBankCardDataReceivedEventArgs
- Peristiwa VendorSpecificDataReceived : Kelas MagneticStripeReaderVendorSpecificCardDataReceivedEventArgs
Mendapatkan data
Untuk peristiwa AamvaCardDataReceived dan BankCardDataReceived, Anda bisa mendapatkan beberapa data langsung dari objek args. Contoh berikut menunjukkan mendapatkan beberapa properti dan menetapkannya ke variabel anggota:
private string _accountNumber;
private string _expirationDate;
private string _firstName;
private void Reader_BankCardDataReceived(
ClaimedMagneticStripeReader sender,
MagneticStripeReaderBankCardDataReceivedEventArgs args)
{
_accountNumber = args.AccountNumber;
_expirationDate = args.ExpirationDate;
_firstName = args.FirstName;
// etc...
}
Namun, beberapa data, termasuk semua data dari peristiwa VendorSpecificDataReceived , harus diambil melalui objek Laporan , yang merupakan properti parameter args . Ini adalah jenis MagneticStripeReaderReport.
Anda dapat menggunakan properti CardType untuk mencari tahu jenis kartu apa yang telah di-swiped, lalu menggunakannya untuk menginformasikan cara Menginterpretasikan data dari Track1, Track2, Track3, dan Track4.
Data dari setiap trek direpresentasikan sebagai objek MagneticStripeReaderTrackData . Dari kelas ini, Anda bisa mendapatkan jenis data berikut:
- Data: Data mentah atau didekodekan.
- DiscretionaryData: Data diskresi.
- EncryptedData: Data terenkripsi.
Cuplikan kode berikut mendapatkan laporan dan data trek, lalu memeriksa jenis kartu:
private void GetTrackData(MagneticStripeReaderBankCardDataReceivedEventArgs args)
{
MagneticStripeReaderReport report = args.Report;
IBuffer track1 = report.Track1.Data;
IBuffer track2 = report.Track2.Data;
IBuffer track3 = report.Track3.Data;
IBuffer track4 = report.Track4.Data;
if (report.CardType == MagneticStripeReaderCardTypes.Aamva)
{
// Card type is AAMVA
}
else if (report.CardType == MagneticStripeReaderCardTypes.Bank)
{
// Card type is bank card
}
else if (report.CardType == MagneticStripeReaderCardTypes.ExtendedBase)
{
// Card type is vendor-specific
}
else if (report.CardType == MagneticStripeReaderCardTypes.Unknown)
{
// Card type is unknown
}
}
Dukungan dan umpan balik
Temukan jawaban atas pertanyaan Anda
Ada pertanyaan? Tanyakan kepada kami di forum Tanya Jawab Dokumen kami dengan tag UWP atau di Stack Overflow dengan tag pointofservice.
Bantu kami menemukan pertanyaan Anda:
- Tambahkan tag pointofservice ke pertanyaan Anda di Stack Overflow.
- Sertakan istilah "UWP" dalam posting Anda di forum Tanya Jawab Umum
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk