簡體   English   中英

如何在C#Windows應用程序上啟用POS付款?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM