私はまだ販売時点管理 (POS) システムをエミュレートして、Google ウォレットで取引を完了しようとしています。スタック オーバーフローに関する優れた回答を得て、さらに前進しました。Generate AC コマンドで Android isoDep.transceive を参照すると、サポートされていない 6D00 が常に返される
POS と Google ウォレットからの通信のすべてのステップが正常に行われているにもかかわらず、「ステータスが不明です。支払いが成功したかどうかをレジで確認してください」という Google ウォレットを通過できません。
マクドナルド(米国)と同じように、Googleウォレットが「ステータス保留中」と表示される必要があります。トランザクション全体が処理され、銀行が清算されるかどうかは、実際には気にしません。
私はトランザクション処理が初めてで、基本的なステップが欠けているようです。どんなアイデアでも大歓迎です。
以下は成功した手順です。
Step 1 Select Proximity Payment System Environment (2PAY.SYS.DDF01)
Send = 00 A4 04 00 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 00
Response = 6f2f 840e 325041592e5359532e4444463031 a51d bf0c1a61184f07a00000 00041010870101500a4d 617374657243617264 9000 (Success)
Step 2 Select Payment Service
Send = 00 A4 04 00 07 A0 00 00 00 04 10 10 00
Response = 6f1e 8407 a0000000041010 a513 500a 4d617374657243617264 870101 9f11 01 01 9000 (Success)
Step 3 Get Processing Options
Send = 80 a8 00 00 02 83 00 00
Response = 770a 8202 0000 9404 08010100 9000 (Success)
Step 4 Read Record
Send = 00 B2 01 0C 00
Response = 70 7c 9f 6c 02
00 01 9f 62 06
00 00 00 00 00
38 9f 63 06 00
00 00 00 03 c6
56 29 42 35 33
39 36 XX XX XX
XX 31 XX XX 39
XX XX XX XX 5e
20 2f 5e 31 34
30 37 31 30 31
34 30 31 30 30
30 30 30 30 30
30 30 30 9f 64
01 04 9f 65 02
00 38 9f 66 02
03 c6 9f 6b 13
53 96 XX XX 1X
X9 XX XX d1 40
71 01 40 10 00
00 00 00 0f 9f
67 01 04 9f 69
0f 9f 6a 04 9f
7e 01 9f 02 06
5f 2a 02 9f 1a
02 9000 (Success)
Step 5 Compute Crytographic Checksum
Send = 80 2A 8E 80 0F 00 00 00 12 00 00 00 00 00 01 00 08 40 08 40 00
Response = 77 0f 9f 61 02 XX XX 9f 60 02 XX XX 9f 36 02 20 fa 9000 (Success)
「PayPass – M/Chip トランザクション処理」仕様には、「COMPUTE CRYPTOGRAPHIC CHECKSUM 応答の完了後、PayPass カードを PayPass リーダーから取り外すことができる」と記載されています。
ということで POS から Google Wallet への通信はできていると思っていたのですが、Google Wallet にはもっと情報が必要なようです。