Contoh data yang ingin dikirim:
- No Kartu : 1234 5678 8765 4321
- PC : 000010
- DT : 1018095000
- STAN : 000001
- TID : ATM00010
- PIN : 123456
- Binary
01100010 00100000 : 16
00000000 00000000 : 32
00000000 10000000 : 48
00010000 00000000 : 64
- Bin :
0110001000100000000000000000000000000000100000000001000000000000
- Hex :
6220000000801000
- Data :
12345678876543210000101018095000000001ATM00010123456
-
MTI :
0200
-
Request :
0200622000000080100012345678876543210000101018095000000001ATM00010123456
- Contoh data :
Endy
- Tipe data LLVAR :
04Endy
- Tipe data LLLVAR :
004Endy
- Length Prefix : 0100 -> for
- Trailer : -1 -> while
0200622000000080100012345678876543210000101018095000000001ATM00010123456x0200622000000080100012345678876544440000101018095000000001ATM00023123456
00720200622000000080100012345678876543210000101018095000000001ATM00010123456
Beberapa switching meminta message length dikirim dengan 2 byte network byte order. Maksudnya adalah 2 byte tersebut dikirim secara big-endian
. Lebih detail mengenai big-endian
bisa dibaca di Wikipedia dan cara membuatnya bisa dibaca di StackOverflow.
Misalnya, kita punya string sebagai berikut:
String message = "Hello World";
Maka kita bisa membuat message length dengan network byte order sebagai berikut:
byte[] nbo = new byte[2];
byte[0] = (byte) ((message.length() >> 8) & 0xff);
byte[1] = (byte) (message.length() & 0xff);
Atau bisa juga langsung kita kirim dengan DataOutputStream.writeShort(message.length());
-
Pindah ke folder project
cd web-jpos-client
-
Jalankan aplikasi
gradle bootRun
-
Request dengan method
POST
kehttp://localhost:8080/topup
dengan body content berikut{ "msisdn" : "081234567890123", "nilai" : 50000 }
Bila dijalankan dengan
curl
perintahnya sebagai berikut:curl -d '{ "msisdn" : "08123456787654321", "nilai" : 50000 }' -H 'Content-Type: application/json' http://localhost:8080/topup
-
Cek log di server dan response dari http request
<log realm="xml-server-8000/127.0.0.1:64758" at="2017-10-20T15:45:40.871" lifespan="82294ms"> <receive> <isomsg direction="incoming"> <!-- org.jpos.iso.packager.GenericPackager[cfg/kisel-packager.xml] --> <field id="0" value="0200"/> <field id="4" value="000000050000"/> <field id="7" value="1020154540"/> <field id="11" value="000123"/> <field id="48" value="08123456787654321"/> <field id="63" value="131001"/> </isomsg> </receive> </log> <log realm="xml-server-8000/127.0.0.1:64758" at="2017-10-20T15:45:40.910" lifespan="7ms"> <send> <isomsg direction="outgoing"> <!-- org.jpos.iso.packager.GenericPackager[cfg/kisel-packager.xml] --> <field id="0" value="0210"/> <field id="4" value="000000050000"/> <field id="7" value="1020154540"/> <field id="11" value="000123"/> <field id="39" value="00"/> <field id="48" value="08123456787654321"/> <field id="63" value="131001"/> </isomsg> </send> </log>
Silahkan isi test hasil training di sini :)