1

ISO8589 メッセージを金融機関に実装しようとしています。ただし、私が呼び出す Web サービスがあり、ISO8589 ペイロードを WCF サービスの適切なフィールドにロードします。

この方法で ISO8589 メッセージを作成しました。

var isoMessage = new OpenIso8583.Net.Iso8583();
isoMessage.MessageType = Iso8583.MsgType._0100_AUTH_REQ;
isoMessage.TransactionAmount = (long) 123.00;
isoMessage[Iso8583.Bit._002_PAN] = "4111111111111111";
// More after this.

isoMessage を人間が読める形式の ASCII に変換して Web サービスに渡す方法がわかりません。

このライブラリでこれを行う方法を知っている人はいますか? または、このライブラリを間違った方法で使用していますか?

ありがとう。

更新しました:

私はこれを行う方法を考え出しました:

var asciiFormatter = new AsciiFormatter();
var asciiValue = asciiFormatter.GetString(isoMessage.ToMsg());

ただし、次のように、OpenIso8583.Net を使用して、isoMessage を取得し、全体を 16 進文字列として簡単に渡そうとしています。

var isoMessage = new OpenIso8583Net.Iso8583();
isoMessage.MessageType = Iso8583.MsgType._0800_NWRK_MNG_REQ;
isoMessage[Iso8583.Bit._003_PROC_CODE] = "000000";
isoMessage[Iso8583.Bit._011_SYS_TRACE_AUDIT_NUM] = "000001";
isoMessage[Iso8583.Bit._041_CARD_ACCEPTOR_TERMINAL_ID] = "29110001";

一部のフィールドは BCD、AlpahNumeric、Numeric などであるため、これが難しいことはわかっています。私が得たい結果は次のとおりです。

Msg   Bitmap (3, 11, 41)      ProcCode Audit    Terminal ID
----- ----------------------- -------- -------- -----------------------
08 00 20 20 00 00 00 80 00 00 00 00 00 00 00 01 32 39 31 31 30 30 30 31

どんな助けでも大歓迎です!

4

1 に答える 1

1

Iso8583基本的に、独自に初期化するものを拡張する必要がありますTemplate では、Template各フィールドのフォーマッターを設定して、BCD およびバイナリ パッキングが使用されないようにすることができます。どのように動作するかについては、ソース コードを参照してくださいIso8583

于 2012-11-05T09:18:40.017 に答える