問題タブ [iso8583]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iso - ISO 8583 の全文
ISO 8583 を使用して (日付範囲内で) 完全なステートメントを実行できるかどうかを知りたいのですが、完全なステートメントを実行する ATM を見たことがあります。8583 以上の POS デバイスで残高照会とミニステートメントが可能であることは知っています。
可能であれば、誰かがメッセージの構造に関する情報を持っていますか?FLexcube が理想的です。
bitmap - フィールドのサイズの解釈 (ビットマップ) ISO8583
各ビットのサイズの正しい解釈は次のとおりです。
この情報の処理を実装する必要があります。
タンク。
java - j8583 はフィールド 128 を処理できません
j8583を使用して、Java で ISO 8583 メッセージを解析および構築してきました。メッセージの 1 つにフィールド 128 が含まれるまでは、すべて問題ないように見えます。ビット 128 を持つメッセージを作成または解析すると、そのフィールドは常に欠落しますが、他のビット (2...127) は問題ありません。
私はxml構成を再確認しましたが、何も問題はありません。
それは私だけですか、それともj8583に実際にバグがありますか? 誰もこれを解決する方法を知っていますか? 非常にタイトなスケジュールなので、iso 8583 のライブラリを変更する可能性はほとんどありません
c# - ソケットc#を転送するためにiso8583のデータをエンコードする方法
c#socket.send(byte [])を介してデータを送信する方法が正確にわかりません。つまり、エコーテストのために0800(ネットワーク管理要求)を送信する必要があると言われています。変換方法です。しばらくプログラミングをしてきましたが、手順がわかりません。
ありがとう
c# - ISO 8583 Rev.93 - チャネルへの接続
私は ISO8583 の概念全体にまったく慣れておらず、銀行のチャネルに接続するように割り当てられています。
私は John Oxley のExcellent OpenIso8583.Netを使用して、Iso8583 標準のメッセージを作成し、TCP 経由で送信しました。
彼らは私がはっきりと理解できないいくつかの基本的な情報を提供してくれました。
残念ながら、これ以上の情報を得るために利用できるリソースがなく、コミュニティからいくつかのガイドを入手したいと考えていました.
銀行から、テスト カード番号 (PAN) (16 桁)、PIN コード (4 桁)、アウトレット番号、および MAC キーが提供されました。
これが私がこれまでに持っているものです:
- msg[Iso8583Rev93.Bit._002_PAN] は PAN になります。
- msg[Iso8583Rev93.Bit._052_PIN_DATA]: 彼らは、PAN と PIN コードに基づいて 16 バイトの PIN ブロックを生成するアルゴリズムを提供してくれました。そのアルゴリズムに基づいて正しい PIN ブロックを生成することができました。
私が考えていないこと:
彼らは、PIN BLOCK は DES アルゴリズムを使用して暗号化されていると述べています。暗号化された PIN ブロックはどこに配置すればよいですか? それは 16 バイト以上であり、msg[Iso8583Rev93.Bit._052_PIN_DATA] に入れることはできませんよね?
提供された MAC キーはどのように使用すればよいですか? 彼らは、MAC は DES-CBC アルゴリズムを使用して生成されると述べました。提供された MAC キーの長さは 16 バイト (16 桁) です。msg[Iso8583Rev93.Bit._128_MAC] フィールドには何を入力すればよいですか? この MAC キーでメッセージ全体を暗号化する必要がありますか? MACキーが何に使われるのか理解できていないようです。
アウトレット番号の用途は何ですか?それは、ユーザーがチャネルに接続できるようにするためのポート番号 (ソフトウェア スロットと呼ぶ場合) のようなものですか?
ありがとうございました。
iso8583 - ISO8583メッセージングログを理解する
WIKIとCodeProjectでISO8583メッセージングについて読みました。ISO8583メッセージは基本的に3つの部分に分けることができることを理解しました。
- MTI(メッセージタイプインジケータ)
1.1。バージョン
1.2。メッセージクラス
1.3。メッセージ機能
1.4。メッセージの発信元
- ビットマップ
どのデータ要素が存在するかを示します。
- DataElement
ISOメッセージ全体の本質には、次のようなトランザクションに関する情報が含まれています。
トランザクションタイプ、
額、
customeridなど。
したがって、これら2つのWeb参照を読んだ後、ISOメッセージングログをMTI、ビットマップ、およびデータ要素として分割したいと思います。
例えば:
しかし、私の課題は、ATMマシンからのISO8583メッセージングログをすでに持っていることです。
この実際の出力メッセージングログは、上記のスニペットのようにあまり明確ではありません。
したがって、このメッセージを上の例のようにMTI、ビットマップ、およびデータ要素に分割することはできません。
私はISO8583メッセージと歓迎の提案の経験がありません。
credit-card - POS との対話 - 端末デバイスとバンキング スイッチング システム
POS - ターミナル デバイスと磁気/チップ カードを操作する必要があるプロジェクトがあります。顧客が私のデパートから商品を購入するたびに、この店のスタッフが顧客の金融カードをストライピングし、支払い取引を行うとしましょう。
これらの同様のシステムについて、ほとんどのフォーラムは、次のようなサードパーティ API の使用を検討する必要があると述べています。
- ペイパル
- ブレインツリー
- .NET を承認します。
- Google チェックアウト API。
しかし、それらの API は、国際的な支払い処理に使用するシステムに使用する必要があると思います。私の場合、私のシステムは国際的な決済処理ほど大きくなく、国内の小さなシステムとして機能し始めると思います。
では、私が知りたいのは、どれが最適なソリューションであり、システム アーキテクチャがどのようになるかということです。
Authorize.Netのページを読んでみると、 Credit Card Processingのルーチンが見つかりました。
私のプロジェクトが大小を問わず、国際的な運営か国内の運営かに関係なく、この手順全体に従う必要がありますか?
POS 端末で支払いを行うには、この手順を実行する必要がありますか?
私が知っていることの 1 つは、ISO 8583が不可欠な金融メッセージング プロトコルであることです。これは、私の地域のほとんどの銀行スイッチング ソフトウェア システムがこれらのメッセージング形式のみを使用しているためです。これは、NDC や D912 などの他のメッセージング形式を使用できないことを意味します。
c# - POS端末と銀行間の支払い
サードパーティのツールを使用せずに、銀行と POS 端末デバイス間で通信するプログラムを作成したいと考えています。現在、このプログラムは、バンク スイッチング IP アドレス + ポート番号を介して特定のバンクと通信するためにのみ使用されると仮定しましょう。
まず、POS 端末でクレジット カードをスワイプしてこの出力を取得したとします。
次に、このwiki リンクに従って、この生データをトラック 1、フォーマット B、およびトラック 2 に分類します。
トラック1 フォーマットB
トラック 2
次に、このコードを使用して、C# プログラムを使用してこれらの形式を読み取ります。
上記のすべてのコードの後、 ISO 8583 メッセージング プロトコルを使用してデータを銀行に送信する必要があると思います。
私のデータには以下が含まれます
- トラック 1 + トラック 2 の情報。
- あらゆる種類の購入プロセスで引き出す金額。
これらの項目のうち 2 つを、銀行に送信する ISO メッセージに含める必要があります。
私の質問は次のとおりです。
これは銀行とやり取りするための正しいビジネス フローですか? 何か提案があればお願いします。
これらのアイテムの 2 つを 1 つの ISO メッセージにまとめて、銀行に送ることはできますか?
提案、参考文献、または Web リンクを教えてください。
c# - データを暗号化してMACを生成する
この質問が建設的ではないとして閉じられないことを願っています。私はこれを解決するために壁に頭をぶつけてきましたが、まだどこにも行きません。ですから、これが私の最後の希望です。
質問は基本的にISO8583-Rev93メッセージのMACフィールドを生成することです。
有効なメッセージのダンプがいくつかあり、正しいMACを生成しようとしています。
- 暗号化アルゴリズムは
DES
、、Mode=CBC
IV = new byte[] {0, 0, 0, 0, 0, 0, 0, 0}
- 暗号化キーは次のとおりです。
new byte[] { 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11 }
- 暗号化するデータは(メッセージ)(208バイト長)です:
- データを暗号化して(おそらく結果を16進数に変換した後)
BF327C0CED48F26B
、メッセージの128番目のフィールドに入力される有効な値を取得する必要があります。
これが私が試したことです(他の多くの実装とともに):
要するに、変数BF327C0CED48F26B
を暗号化することでどのように達成できますか?dataToEncrypt
助けていただければ幸いです。
更新:助けになる可能性がある場合のメッセージの詳細は次のとおりです。
更新2:0
ええと、それらの馬鹿は、フィールド128に入力してから、暗号化のために送信する
必要があることをドキュメントで言及するのを忘れていました。試してみて失敗してこれを見つけてください!
customization - OpenIso8583.Net の拡張/変更
ISO メッセージの送受信に優れたOpenIso8583Netを使用しています。ただし、すべての組織には独自の定義とカスタマイズがあるため、新しいバージョンに簡単にアップグレードできるように、プロジェクトのソースにできるだけ触れずに形式をカスタマイズできるようにしたいと考えています。
そこで、私が今直面している 3 つのカスタマイズを次に示します。
- の代わりに
Bitmap
使用するにはどうすればよいですか? bitmap はクラスのプライベート フィールドであるため、新しいカスタム クラスを から直接派生させてもアクセスできません。そして、コンストラクターはデフォルトで使用します。現在、 Bitmap.cs パラメーターなしのコンストラクターを使用するように変更しました。AsciiFormatter
BinaryFormatter
AMessage
AMessage
BinaryFormatter
AsciiFormatter
- 同じ話が可変長フォーマッタにも当てはまります。デフォルトで使用
AsciiFormatter
します。でも使ってみたいBcdFormatter
。この部分をBcdFormatter
VariableLengthFormatter でデフォルトで使用するように変更しました。
変更ではなく拡張することで、これらのカスタマイズを処理するより良い方法を誰かが教えてくれれば幸いです。 - ログ ファイルのフィールドを表示するとします。例として、「データを暗号化して MAC を生成する」
Fields
セクションで表示したものがあります。今、私はTemplate
プロパティを公開し、次のスニペットを使用する必要があります: for (var i = 2; i
Template
公開せずにフィールドにアクセスするにはどうすればよいですか? Display
ログの目的で、メイン プログラムのフィールド のメソッドにアクセスしたいと考えています。