toJson method
Converts the Message object to JSON.
Implementation
Map<String, Object> toJson() {
final map = <String, Object>{};
map['MTI'] = mti;
final mPan = pan;
final mProcessCode = processCode;
final mStan = stan;
final mDateTime = dateTime;
final mCardEntryMode = cardEntryMode;
final mNii = nii;
final mPosConditionCode = posConditionCode;
final mTrack2 = track2;
final mTerminalId = terminalId;
final mMerchantId = merchantId;
final mCurrency = currency;
final mDataElement = dataElement;
final mPinBlock = pinBlock;
final mMac = mac;
if (mPan != null) {
map['PAN'] = mPan;
}
if (mProcessCode != null) {
map['ProcessCode'] = mProcessCode;
}
if (mStan != null) {
map['Stan'] = mStan;
}
if (mDateTime != null) {
map['DateTime'] = mDateTime.toIso8601String();
}
if (mCardEntryMode != null) {
map['CardEntryMode'] = mCardEntryMode;
}
if (mNii != null) {
map['NII'] = mNii;
}
if (mPosConditionCode != null) {
map['PosConditionCode'] = mPosConditionCode;
}
if (mTrack2 != null) {
map['Track2'] = mTrack2;
}
if (mTerminalId != null) {
map['TerminalId'] = mTerminalId;
}
if (mMerchantId != null) {
map['MerchantId'] = mMerchantId;
}
if (mDataElement != null) {
map['DataElement'] = mDataElement.toJson();
}
if (mCurrency != null) {
map['Currency'] = mCurrency;
}
if (mPinBlock != null) {
map['PinBlock'] = '0x${hex.encode(mPinBlock).toUpperCase()}';
}
for (var i = 1; i < 64; i++) {
final f = _data[i];
if (f == null) {
continue;
}
final fld = _valueOf(i);
if (fld.type == 'ans' || fld.type == 'an') {
final z = f.indexOf(0);
if (z > 0) {
map[i.toString()] = String.fromCharCodes(f.take(z));
} else {
map[i.toString()] = String.fromCharCodes(f);
}
} else if (fld.type == 'n') {
map[i.toString()] = hex.encode(f);
} else if (fld.type == 'b') {
map[i.toString()] = '0x${hex.encode(f).toUpperCase()}';
}
}
if (mMac != null) {
map['MAC'] = mMac;
}
return map;
}