附录 5
生成消息
- Java
- PHP
- Node.js
- .Net
- Python
- Request
- Response
步骤 1 : 示例数据字段
构建消息的数据字段。
请参阅 通知参数了解各字段的详细信息。
- 请确保
itemGivenId和mrn字段用空格或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;
步骤 1 : 示例数据字段
构建消息的数据字段。
请参阅 通知参数了解各字段的详细信息。
- 请确保
itemGivenId和mrn字段用空格或0填充,以满足所需的固定长度。
构建消息的数据字段。
String mti = "0026";
String resultCode = "00000";
步骤 2 : 合并字段
将所有字段合并为一个变量作为数据。
String data
= mti
+ resultCode;
步骤 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";
- Request
- Response
步骤 1 : 示例数据字段
构建消息的数据字段。
请参阅 通知参数了解各字段的详细信息。
- 请确保
itemGivenId和mrn字段用空格或0填充,以满足所需的固定长度。
构建消息的数据字段。
$mti = "0025";
$resultCode = "00000";
$amount = "000000000200";
$itemGivenId = " ABCXYZ123"; // padded
$mid = "000010000012345";
$mrn = " 20251124014201000123456"; // padded
$paymentType = "PRE";
$paymentMethod = "01";
$approvalCode = "123456";
步骤 2 : 合并字段
将所有字段合并为一个变量作为数据。
$data =
$mti
. $resultCode
. $amount
. $itemGivenId
. $mid
. $mrn
. $paymentType
. $paymentMethod
. $approvalCode;
步骤 1 : 示例数据字段
构建消息的数据字段。
请参阅 通知参数了解各字段的详细信息。
- 请确保
itemGivenId和mrn字段用空格或0填充,以满足所需的固定长度。
构建消息的数据字段。
$mti = "0026";
$resultCode = "00000";
步骤 2 : 合并字段
将所有字段合并为一个变量作为数据。
$data =
$mti
. $resultCode;
步骤 3 : 生成校验和
将生成的数据传递给校验和函数以验证错误。
function calculateXorChecksum($input) {
$xor = 0;
// Loop through each character
for ($i = 0; $i < strlen($input); $i++) {
$xor ^= ord($input[$i]); // XOR ASCII values
}
return strtoupper(str_pad(dechex($xor & 0xFF), 2, "0", STR_PAD_LEFT));
}
步骤 4 : 构建消息
消息应按如下方式构建:
STX + DATA + CHECKSUM + ETX
STX (Start of Text) 和 ETX (End of Text) 是用于标记以下信息的特殊字符:
STX:消息的开始ETX:消息的结束
$checksum = calculateXorChecksum($data);
$message = "\x02" . $data . $checksum . "\x03";
- Request
- Response
步骤 1 : 示例数据字段
构建消息的数据字段。
请参阅 通知参数了解各字段的详细信息。
- 请确保
itemGivenId和mrn字段用空格或0填充,以满足所需的固定长度。
构建消息的数据字段。
const mti = "0025";
const resultCode = "00000";
const amount = "000000000200";
const itemGivenId = " ABCXYZ123"; // padded
const mid = "000010000012345";
const mrn = " 20251124014201000123456"; // padded
const paymentType = "PRE";
const paymentMethod = "01";
const approvalCode = "123456";
步骤 2 : 合并字段
将所有字段合并为一个变量作为数据。
const data =
mti +
resultCode +
amount +
itemGivenId +
mid +
mrn +
paymentType +
paymentMethod +
approvalCode;
步骤 1 : 示例数据字段
构建消息的数据字段。
请参阅 通知参数了解各字段的详细信息。
- 请确保
itemGivenId和mrn字段用空格或0填充,以满足所需的固定长度。
构建消息的数据字段。
const mti = "0026";
const resultCode = "00000";
步骤 2 : 合并字段
将所有字段合并为一个变量作为数据。
const data =
mti +
resultCode;
步骤 3 : 生成校验和
将生成的数据传递给校验和函数以验证错误。
function calculateXorChecksum(input) {
let xor = 0;
for (let i = 0; i < input.length; i++) {
xor ^= input.charCodeAt(i); // XOR ASCII values
}
return xor.toString(16).toUpperCase().padStart(2, "0");
}
步骤 4 : 构建消息
消息应按如下方式构建:
STX + DATA + CHECKSUM + ETX
STX (Start of Text) 和 ETX (End of Text) 是用于标记以下信息的特殊字符:
STX:消息的开始ETX:消息的结束
const checksum = calculateXorChecksum(data);
const STX = String.fromCharCode(0x02);
const ETX = String.fromCharCode(0x03);
const message = STX + data + checksum + ETX;
- Request
- Response
步骤 1 : 示例数据字段
构建消息的数据字段。
请参阅 通知参数了解各字段的详细信息。
- 请确保
itemGivenId和mrn字段用空格或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;
步骤 1 : 示例数据字段
构建消息的数据字段。
请参阅 通知参数了解各字段的详细信息。
- 请确保
itemGivenId和mrn字段用空格或0填充,以满足所需的固定长度。
构建消息的数据字段。
string mti = "0026";
string resultCode = "00000";
步骤 2 : 合并字段
将所有字段合并为一个变量作为数据。
string data =
mti +
resultCode;
步骤 3 : 生成校验和
将生成的数据传递给校验和函数以验证错误。
static string CalculateXorChecksum(string input)
{
int xor = 0;
foreach (char c in input)
{
xor ^= (int)c; // XOR ASCII values
}
return xor.ToString("X2"); // 2-digit uppercase hex
}
步骤 4 : 构建消息
消息应按如下方式构建:
STX + DATA + CHECKSUM + ETX
STX (Start of Text) 和 ETX (End of Text) 是用于标记以下信息的特殊字符:
STX:消息的开始ETX:消息的结束
string checksum = CalculateXorChecksum(data);
char STX = (char)0x02;
char ETX = (char)0x03;
string message = STX + data + checksum + ETX;
- Request
- Response
步骤 1 : 示例数据字段
构建消息的数据字段。
请参阅 通知参数了解各字段的详细信息。
- 请确保
itemGivenId和mrn字段用空格或0填充,以满足所需的固定长度。
构建消息的数据字段。
mti = "0025"
resultCode = "00000"
amount = "000000000200"
itemGivenId = " ABCXYZ123" # padded
mid = "000010000012345"
mrn = " 20251124014201000123456" # padded
paymentType = "PRE"
paymentMethod = "01"
approvalCode = "123456"
步骤 2 : 合并字段
将所有字段合并为一个变量作为数据。
data = (
mti
+ resultCode
+ amount
+ itemGivenId
+ mid
+ mrn
+ paymentType
+ paymentMethod
+ approvalCode
)
步骤 1 : 示例数据字段
构建消息的数据字段。
请参阅 通知参数了解各字段的详细信息。
- 请确保
itemGivenId和mrn字段用空格或0填充,以满足所需的固定长度。
构建消息的数据字段。
mti = "0026"
resultCode = "00000"
步骤 2 : 合并字段
将所有字段合并为一个变量作为数据。
data = (
mti
+ resultCode
)
步骤 3 : 生成校验和
将生成的数据传递给校验和函数以验证错误。
def calculate_xor_checksum(input_str):
xor = 0
for ch in input_str:
xor ^= ord(ch) # XOR ASCII values
return f"{xor:02X}" # 2-digit uppercase hex
步骤 4 : 构建消息
消息应按如下方式构建:
STX + DATA + CHECKSUM + ETX
STX (Start of Text) 和 ETX (End of Text) 是用于标记以下信息的特殊字符:
STX:消息的开始ETX:消息的结束
checksum = calculate_xor_checksum(data)
STX = chr(0x02)
ETX = chr(0x03)
message = STX + data + checksum + ETX