2013-02-25 7 views
7

私は非接触Visa Paywaveカードからデータを読み取ろうとしています。PPSEではなくPPSEを使用してEMVカードを読む

Paywaveの場合、PSE(1PAY.SYS.DDF01)の代わりにPPSE(2PAY.SYS.DDF01)を使用してSELECTを送信する必要があります。

EMV本の1章11.3.4の表43は、PSEを使用して成功したSELECTコマンドの応答を解釈する方法についてのみ説明しています。誰でも知っているか、PPSEを使って成功したSELECTコマンドから返されたデータをどのように処理するかを示すソースを参照できますか?

00A404000e325041592e5359532e444446303100 

がここにレスポンスです:

6F2F840E325041592E5359532E4444463031A51DBF0C1A61184F07A0000000031010500A564953412044454249548701019000 

私は理解してタグ84、タグ85、応答からタグBF0C

は、ここに私の要求APDUです。 PSEを読むための例によると、この成功した応答の後に、PDOM = nullのGET PROCESSION OPTIONS(AIPとAFLを取得する)を次のように送信するだけです。80A80000830000

ただし、要求80A80000830000はエラーコード6985を返します。 - コマンドは許可されません。満足していない使用条件。

各SFIのすべてのSFI(0-30)とすべてのレコード(0-16)を走査してPPSEを選択した後、すべてのファイルを読み込もうとしました。はい、私はまた、3ビットシフトとbitwise - または0x4とSFIをしました。しかし、私はデータがありません。

私は、私のPaywaveカードからいくつかの情報を得ることを私に指摘する助けに感謝します。

+2

あなたはそのEMV本のどのバージョンを参照していますか?(私はそれが4.3だと思います...)EMVCoから入手可能な[EMV非接触仕様](http://www.emvco.com/specifications.aspx?id=21)があることに気付きましたか? – martijno

+0

はい、EMV 4.3。私はEMVCoからの非接触仕様の本に気付かなかった。まあ、すべての人がコーディングコーディングをコーディングしていると思うと、どのように盲目的になるのか。 :-)この本を指摘してくれてありがとう、私はそれを読んで、あなたが私が間違っていたことを知らせます。 – 9999bao

答えて

0

お探しの情報はthis VISA websiteから入手可能です。ただし、あなたがVISAの登録済みおよび/または認可パートナーである場合に限ります。

EDIT:BF0Cの下で結果TLV構造体を見て:

tag=0xBF0C, length=0x1A 
    tag=0x61, length=0x18 
     tag=0x4F, length=0x07, value=0xA0000000031010 // looks like an AID to me 
     tag=0x50, length=0x0A, value="VISA DEBIT" 
     tag=0x87, length=0x01, value=0x01 

私はあなたが最初の処理オプションを取得する前A0000000031010を選択する必要がありますよね。

+0

あなたが正しいかもしれません。私は昨日ビザに登録しましたが、依然として申請承認プロセスを待っています。ありがとう! – 9999bao

0

私はアプリケーション2PAY.SYS.DDF01を選択していました。私はAID = 0xA0000000031010を選択していたはずです。アプリケーション2PAY.SYS.DDF01の下にレコードがないようです。

しかし、アプリケーション0xA0000000031010の下に1つのレコードがありました。このアプリケーションを入手した後、私はREAD RECORDを実行し、最初のレコードはPANと私が望むすべてのクレジットカード情報を私に与えました。鳴るため

みんなありがとう。

+1

私の答えを見てください.2PAYはAIDのリストを返します。実際にはAID自体ではないので、返されたものの1つを選択し、そのレコードを読み込むことになります。あなたが見つけたものがそこにあることを知っているAIDをただちに選択することができます:) – Peanut

0

あなたにもマスターのために、このに興味があるなら、あなたはこれを行うにはtriangle.ioのAPIを使用することができます。無料で、MasterCardとVisaの非接触カードを読んで、あなたの望むように見えます。

すべてのファイルをカードから直接読み取ると、必要なデータが表示されますが、実際にはEMVデータフローに従っていないことに注意してください。アプリケーションの選択後、「処理オプションを取得する」を実行し、PDOLとそれ以外の魔法を構築する必要があります。

http://www.triangle.io

免責事項:私はあなたが流れを少し混ぜ持っているように見えるtriangle.io

2

のために働く、あなたがしたい:1PAYまたは2PAYを送る

  • 、それはdoesnの実際に私がテストしたすべてのカードのための重要な問題です。これにより、カードで利用可能なAIDのリストが返されます。代わりにAIDをすぐに選択することもできますが、それがあることがわかっているが、最初に確認することをお勧めします。

  • PayWaveのケースでは、1PAY/2PAYに応答して返されるAIDのリストを取得します.2PAYを送信した場合はおそらくA0000000031010になりますが、1PAYを送信した場合にはさらに多くなることがあります。

  • 送り返されたAIDのうち1つを選択してください(またはすでに知っているもの)。

  • SFIをループし、Read Recordsコマンドを送信してデータを取得します。

[レコードの読み取り]コマンドを送信する前に、処理のオプションを送信する必要はありませんが、通常のトランザクションフローになります。

+0

1PAYは2PAYとは異なります。私はPCSCとNFCリーダーを持っています.PCSCを使用して2PAYを選択しようとすると、File not foundエラーが返され、NFCで1PAYを選択しようとすると、File not foundが表示されます。 OPはすべての記録を読んだが、どのSFIを使うかを知るための処理オプションを得ることで正しく実行したいと言った。 –

+1

私は彼らが異なっていることを知っています。私が試したすべてのVisaカードを指摘していましたが、実際には別の情報を返すこともあります。 OPはすべての記録を読んだが、何の情報も得ていない、つまりVisa AIDを選択していないから2PAY後にGPOを送ることができると思っていた。アップ。 – Peanut

+0

GPOがまったく動作しないため、このスレッドを一般的に見つけてうれしく思います。 –

0

2PAY.SYS.DDF01を

をこのツールを試してみました1PAYながら、非接触のために(例えばNFC)カードです.SYS.DDF01はコンタクトカード用です。 PSEを読んで成功した後

  1. (= 90 00 SW1 SW2)、あなただけ返さFCIテンプレートで必須フィールドですSFI(タグ88)を検索する必要があります。

  2. 開始インデックスとしてSFIを使用すると、開始インデックスから開始して6A83(RECORD_NOT_FOUND)を取得するまでレコードを読み取る必要があります。例えば。 SFIが1の場合、record_number = 1のreadRecordを実行します。それはおそらく成功するだろう。次に、record_numberを2に増やして、再度readRecordを実行します。増分が3になります...あなたのステータスとして6A83が得られるまでそれを繰り返します。

  3. 読み取られたレコードは、ADF(少なくとも1)です。次に、読み込まれたADF名と端末のサポートを比較し、またASI(Application Selection Indicator)に基づいて比較する必要があります。終わりに、あなたは可能性のADF(候補リスト)

すべての上記の手順(1-3)はEMV仕様の章12.3.2 BOOK1のV4.3に記載されているのリストを持っているでしょう。すべての詳細な手順については、12.4 -

あなたが

が仕様書1章12.3を読む最終的な選択(章12.4 BOOK1)を行う必要があります。

関連する問題