ISO8583への実装を行いました。AMEXカードの鍵付き取引を行う場合を除いて、すべての取引が機能します。
ドキュメントの状態:
Track 2 Data および Primary Account Number (PAN) フィールドは、異なる形式に従う数値データ要素のインスタンスです。可変長データの桁数が奇数の場合、右端の半バイトを X '0 に設定します。 '。
ただし、AMEX カード番号に 0 を追加すると、INVALID CARD NUMBER 応答が返されます。15 桁のカード番号を送信しても、応答はまったく受信されません。
また、ドキュメントの他の場所でも言及されています:
ビットマップ 2 — プライマリ アカウント番号 フィールド名 説明 最大 19 桁の変数 (必要に応じて、最後の ½ バイトは 2 進数のゼロが埋め込まれます)、1 バイトの長さインジケータが前に付きます。
コメント このフィールドは、カード会員の口座番号を識別します。ほとんどの数値フィールドとは異なり、プライマリ アカウント番号は左揃えです。この場合、右端のバイトは 1/2 バイトの 2 進ゼロで埋められます (たとえば、3 桁フィールド X '03 12 30')。
カード番号が奇数の場合、何か特別なことはありますか?