[英]How to enable POS payment on my C# windows application?
如何將卡上的數據讀取到POS應用程序?
有人告訴我某些信息,例如卡號和持卡人的姓名,顯示在主管終端的屏幕上。 為了將卡信息發送到POS管理員應用程序,應該使用Keypress()
事件。
如何從POS刷卡機向POS應用發送卡信息? 因為僅安裝驅動程序和配置支付網關就不會將數據發送到pos應用。 我必須怎么做才能使keypress()
事件執行? 確保開發人員必須編寫代碼才能從POS卡刷卡機獲取該字符串數據。 您是否足夠慷慨地完成整個過程並顯示一些示例代碼(在線示例代碼或您想共享的一些代碼),以了解如何執行此操作? 因為沒有辦法Keypress()
不可能在刷卡時在哪里執行Keypress()
事件?
首先,這聽起來像是PCI DSS的噩夢。 在屏幕上顯示卡信息是一個確定的問題,以下代碼使您容易受到鍵盤記錄和內存解析的影響。 那個...
如果期望為此使用KeyPress
事件,我假設您是從鍵盤楔MSR接收軌道信息的,這非常簡單-它只是以純文本形式顯示軌道信息。 您可以使用KeyPress
事件來處理輸入的每個字符,然后在跟蹤結束標記(通常為?
)上發送字符串:
為了簡單起見,假設您要刷入WinForms TextBox
:
在表單設計器中,選擇文本框,轉到“事件”並添加KeyPress處理程序,或者在表單的InitializeComponent()
方法中,手動附加它:
this.textBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBox1_KeyPress);
然后在表單的代碼后面定義您的KeyPress事件:
private StringBuilder trackInfo;
private bool track1Complete = false;
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar != '?' && !track1Complete)
{
trackInfo.Append(e.KeyChar);
}
else if (e.KeyChar == '?' && !track1Complete)
{
trackInfo.Append(e.KeyChar);
trackInfo.AppendLine();
track1Complete = true;
}
else if (e.KeyChar != '?' && track1Complete)
{
trackInfo.Append(e.KeyChar);
}
else if (e.KeyChar == '?' && track1Complete)
{
trackInfo.Append(e.KeyChar);
trackInfo.AppendLine();
sendTrackInfo();
}
}
我們在這里所做的是在滑動觸發的每個KeyPress
事件參數上解析KeyChar
。 ?
是單個軌道的典型末端標記,並且有兩個軌道被認為是處理卡所必需的(有關此格式的更多信息,請參見此處: http : //en.wikipedia.org/wiki/Magnetic_stripe_card#Financial_cards )-因此我們認為卡信息在第二條軌道的末尾完成。
您將需要定義sendTrackInfo()
方法進行格式化(刪除標記,分離等),並將您在trackInfo.ToString()
收集的跟蹤數據發送到您的主管應用程序,可能是XML或流。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.