跳到主要内容

附录 5

生成消息

步骤 1 : 示例数据字段

构建消息的数据字段。

请参阅 通知参数了解各字段的详细信息。

  • 请确保itemGivenIdmrn字段用空格或0填充,以满足所需的固定长度。
    String mti = "0025";
String resultCode = "00000";
String amount = "000000000200";
String itemGivenId = " ABCXYZ123"; // padded
String mid = "000010000012345";
String mrn = " 20251124014201000123456"; // padded
String paymentType = "PRE";
String paymentMethod = "01";
String approvalCode = "123456";

步骤 2 : 合并字段

将所有字段合并为一个变量作为数据。

    String data
= mti
+ resultCode
+ amount
+ itemGivenId
+ mid
+ mrn
+ paymentType
+ paymentMethod
+ approvalCode;

步骤 3 : 生成校验和

将生成的数据传递给校验和函数以验证错误。

    public static String calculateXorChecksum(String input) {
int xor = 0;
for (int i = 0; i < input.length(); i++) {
xor ^= input.charAt(i); // XOR ASCII values
}
return String.format("%02X", xor & 0xFF); // 2-digit HEX
}

步骤 4 : 构建消息

消息应按如下方式构建:

  • STX + DATA + CHECKSUM + ETX

STX (Start of Text)ETX (End of Text) 是用于标记以下信息的特殊字符:

  • STX:消息的开始
  • ETX:消息的结束
    String checksum = calculateXorChecksum(data);
String message = "\u0002" + data + checksum + "\u0003";