Rabu, 12 Desember 2012

[Error] IFB_LLLCHAR: Problem packing field 48. IsoMsg can not be cast to string

Sorry if the tittle english but the content indonesian language. Hari ini mau posting tentang error yang ada di atas. 
Biasanya error di atas disebabkan karena :
- Salah dalam mengisi field 48, biasanya ukuran besaran tiap subfield yang diisi ada yang salah.
misal;
............ // snipet code packager
............
     protected ISOFieldPackager fld48[] =
    {
           new org.jpos.iso.IF_CHAR(14,  "subs_msisdn"),
          new org.jpos.iso.IF_CHAR(9,   "merchant_trx_id"),
          new org.jpos.iso.IF_CHAR(6,   "account_pin"),
     };
...........
........... // end snipet code packager

###### // snipet code participant
######

      ISOMsg inner48 = new ISOMsg(48);
      inner48.set (0, ISOUtil.padright ("8767", 20, ' ') ); <--- harusnya 14
      inner48.set (1, ISOUtil.padright ("3454", 9, ' ') );
      inner48.set (2, ISOUtil.padright ("12", 6, ' ') );

######
###### // end snipet code participant

Bisa dilihat di subfield 0 pada variabel inner48, karena subfield 0 mengacu pada subs_msisdn yang mengacu pada packager di atas.

- Lalu kesalahan berikutnya karena kita salah dalam set respons processing code (PC). Misalnya pada txnmgr.xml, transaksi sale  990011 lalu void 110011 dan kebetulan kedua transaksi tersebut sama-sama memiliki field 48. Jadi ketika ada transaksi sale masuk, lalu pada saat mau respons salah set PC misalnya 110011, maka akan muncul error demikian.

Agak kompleks ya, tapi pengalaman saya seperti itu. Kalau ada yang kurang ngerti tanya om google ya :)

Sekian 

0 komentar:

Posting Komentar