ClaimedMagneticStripeReader.BankCardDataReceived 事件
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
發生于撥動銀行卡時。
// Register
event_token BankCardDataReceived(TypedEventHandler<ClaimedMagneticStripeReader, MagneticStripeReaderBankCardDataReceivedEventArgs const&> const& handler) const;
// Revoke with event_token
void BankCardDataReceived(event_token const* cookie) const;
// Revoke with event_revoker
ClaimedMagneticStripeReader::BankCardDataReceived_revoker BankCardDataReceived(auto_revoke_t, TypedEventHandler<ClaimedMagneticStripeReader, MagneticStripeReaderBankCardDataReceivedEventArgs const&> const& handler) const;
public event TypedEventHandler<ClaimedMagneticStripeReader,MagneticStripeReaderBankCardDataReceivedEventArgs> BankCardDataReceived;
function onBankCardDataReceived(eventArgs) { /* Your code */ }
claimedMagneticStripeReader.addEventListener("bankcarddatareceived", onBankCardDataReceived);
claimedMagneticStripeReader.removeEventListener("bankcarddatareceived", onBankCardDataReceived);
- or -
claimedMagneticStripeReader.onbankcarddatareceived = onBankCardDataReceived;
Public Custom Event BankCardDataReceived As TypedEventHandler(Of ClaimedMagneticStripeReader, MagneticStripeReaderBankCardDataReceivedEventArgs)
事件類型
範例
下列範例示範如何設定磁帶讀取器,以在掃描事件之後接收資料。
void Scenario1::ScenarioStartReadButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
create_task(CreateDefaultReaderObject()).then([this](void)
{
if (_reader != nullptr)
{
// Claim the magnetic stripe reader for exclusive use by your application.
create_task(ClaimReader()).then([this](void)
{
if (_claimedReader)
{
// Add a release device requested event handler. If this event is not handled,
// another app can claim the magnetic stripe reader.
_releaseDeviceRequestedToken = _claimedReader->ReleaseDeviceRequested::add(ref new EventHandler<ClaimedMagneticStripeReader^>(this, &Scenario1::OnReleaseDeviceRequested));
// Add a data receive event handler.
_bankCardDataReceivedToken = _claimedReader->BankCardDataReceived::add(ref new TypedEventHandler<ClaimedMagneticStripeReader^, MagneticStripeReaderBankCardDataReceivedEventArgs^>(this, &Scenario1::OnBankCardDataReceived));
UpdateReaderStatusTextBlock("Attached the BankCardDataReceived event handler..");
// Set the app to decode the raw data from the magnetic stripe reader.
_claimedReader->IsDecodeDataEnabled = true;
// Enable the magnetic stripe reader.
create_task(EnableReader()).then([this](void)
{
UpdateReaderStatusTextBlock("Ready to Swipe..");
// Reset the button state
ScenarioEndReadButton->IsEnabled = true;
ScenarioStartReadButton->IsEnabled = false;
});
}
});
}
});
}
private async void ScenarioStartReadButton_Click(object sender, RoutedEventArgs e)
{
if (await CreateDefaultMagneticStripeReaderObject())
{
if (_reader != null)
{
// Claim the reader for exclusive use by your application.
if (await ClaimReader())
{
if (_claimedReader != null)
{
/// Add a release device requested event handler. If this event is not handled,
// another app can claim the magnetic stripe reader.
_claimedReader.ReleaseDeviceRequested += OnReleaseDeviceRequested;
// Add a data receive event handler.
_claimedReader.BankCardDataReceived += OnBankCardDataReceived;
UpdateReaderStatusTextBlock("Attached the BankCardDataReceived Event handler..");
// Set the app to decode the raw data from the magnetic stripe reader.
_claimedReader.IsDecodeDataEnabled = true;
// Enable the magnetic stripe reader.
if (await EnableReader())
{
UpdateReaderStatusTextBlock("Ready to Swipe..");
// Reset the button state
ScenarioEndReadButton.IsEnabled = true;
ScenarioStartReadButton.IsEnabled = false;
}
}
}
}
}
}
void Scenario1::OnBankCardDataReceived(Windows::Devices::PointOfService::ClaimedMagneticStripeReader^sender, Windows::Devices::PointOfService::MagneticStripeReaderBankCardDataReceivedEventArgs^args)
{
// Read the data and display
Dispatcher->RunAsync(CoreDispatcherPriority::Normal, ref new DispatchedHandler(
[this,args]()
{
ScenarioOutputAccountNumber->Text = args->AccountNumber;
ScenarioOutputExpirationDate->Text = args->ExpirationDate;
ScenarioOutputFirstName->Text = args->FirstName;
ScenarioOutputMiddleInitial->Text = args->MiddleInitial;
ScenarioOutputServiceCode->Text = args->ServiceCode;
ScenarioOutputSuffix->Text = args->Suffix;
ScenarioOutputSurname->Text = args->Surname;
ScenarioOutputTitle->Text = args->Title;
}));
}
async void OnBankCardDataReceived(object sender, MagneticStripeReaderBankCardDataReceivedEventArgs args)
{
// Read the data and display
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
ScenarioOutputAccountNumber.Text = args.AccountNumber;
ScenarioOutputExpirationDate.Text = args.ExpirationDate;
ScenarioOutputFirstName.Text = args.FirstName;
ScenarioOutputMiddleInitial.Text = args.MiddleInitial;
ScenarioOutputServiceCode.Text = args.ServiceCode;
ScenarioOutputSuffix.Text = args.Suffix;
ScenarioOutputSurname.Text = args.Surname;
ScenarioOutputTitle.Text = args.Title;
});
}
備註
應用程式可以註冊此事件處理常式,以在每次透過磁條讀取器撥動銀行卡時取得銀行卡資料。