PinPad デバイスとの統合を行う必要があります。
PinPad の DLL には、Param に String を受け取るメソッドがあります。次のコードは、実際のコードと似ています。
これは JavaCode です:
Memory memMsgAfter = new Memory(32);
memMsgAfter.setString(0, toHexString("0000000000000000".getBytes()));
PinpadGertecInterface.instance.PPC_StartPINEntry_DiffWK(0, 1, 3, memMsgAfter,/* other params ommited*/)
これは、C でのメソッドの割り当てです。
PPC_FUNCTION PPC_StartPINEntry (BYTE bMode, BYTE bIndex, BYTE bKey-
Opt, BYTE *sEncWK, /* other params */);
メーカーのドキュメントには次のように書かれています。
bKeyOpt BYTE [IN] :
キーイング オプション。正しくお使いいただくための注意事項をご覧ください。
sEncWK バイト * [IN]
暗号化された作業キー。長さは bKeyOpt (常に HEX 文字列) に依存します。bKeyOpt = 1 => sEncWK の長さは 48 でなければなりません。 bKeyOpt = 2 => sEncWK の長さは 32 でなければなりません。 bKeyOpt = 3 => sEncWK の長さは 16 でなければなりません。
問題は、実行して ACCESS VIOLATION を返すことです
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0114c48e, pid=5284, tid=4856