PIN Pad 在 PIN Pad 管理系统的控制下执行加密功能。 一些 PinPad 服务对象支持多个 PIN Pad 管理系统,一些 PIN Pad 管理系统支持不同电子资金转账 (EFT) 事务主机的多个密钥集。 因此,对于每个 EFT 事务,应用程序都需要选择要使用的 PIN Pad 管理系统和 EFT 事务主机。
编程模型
根据不同的 PIN Pad 管理系统,需要向 PIN Pad 提供一个或多个 EFT 事务参数,以便在加密功能中使用。 应用程序应设置所有 EFT 事务参数属性的值,从而更轻松地迁移到需要其他 PIN Pad 管理系统的 EFT 事务主机。
- 在打开、声明并启用 PIN Pad 控件后,应用程序应该对每个 EFT 事务使用以下常规方案。
- 设置 EFT 事务参数(AccountNumber、Amount、MerchantID、TerminalID、Track1Data、Track2Data、Track3Data、Track4Data 和 TransactionType 属性),然后调用 BeginEftTransaction(PinPadSystem, Int32) 方法。 这将初始化设备,为 EFT 事务执行加密功能。
如果 PIN Entry 为 OnFailure,请调用 EnablePinEntry() 方法。 然后设置 DataEventEnabled 属性并等待 DataEvent 事件。
- 如果需要消息验证代码,请根据需要使用 ComputeMac(String) 和 VerifyMac(String) 方法。
- 调用 EndEftTransaction(EftTransactionCompletion) 方法以通知设备 EFT 事务的所有操作已完成。 此规范支持显示屏的两种使用模型。 CapDisplay 属性指示以下模型之一:- 应用程序完全控制要显示的文本。 对于此模型,有一个关联的 LineDisplay 控件,应用程序使用该控件与显示屏进行交互。 - 应用程序无法提供要显示的文本。 在这种模型下,它只能从要显示的预定义消息列表中选择。 对于此模型,有一组 PIN Pad 属性可用于控制显示屏。
设备共享
PIN Pad 是专用设备,因此:
- 应用程序必须先声明设备,然后才能启用设备。
- 应用程序必须在设备开始读取输入之前或调用方法来操作设备之前声明并启用设备。
Microsoft Point of Service for .NET (POS for .NET) ~Impl 方法
以后缀“Impl”结尾的受保护抽象方法从其 POS for .NET 公共对应项中进行调用。 这允许 Base 类实现在调用 ~Impl 方法前后执行适当的状态和错误检查。 这些方法必须在服务对象代码中实现,但仅在特殊情况下(例如,当服务对象代码需要删除或更改标准验证测试时)才应重写公共非抽象对应项。
POS for .NET 事件
PinPad 服务对象可能会向应用程序发送以下事件:
- DataEvent
- DirectIOEvent
- StatusUpdateEvent
- ErrorEvent