generatePayload method
Implementation
String? generatePayload(CPM cpm) {
try {
String payload = "";
payload += _format(
id: ID.payloadFormatIndicator,
value: _toHex(cpm.dataPayloadFormatIndicator),
) ??
"";
if (cpm.applicationTemplates.isNotEmpty) {
for (var applicationTemplate in cpm.applicationTemplates) {
String _applicationTemplate =
_formattingTemplate(applicationTemplate.berTvl ?? BerTvl()) ?? "";
if (applicationTemplate.applicationSpecificTransparentTemplates !=
null) {
final specificTransparentTemplates =
applicationTemplate.applicationSpecificTransparentTemplates ??
[];
for (var specificTransparentTemplate
in specificTransparentTemplates) {
String _specificTransparentTemplate =
_formattingTemplate(specificTransparentTemplate) ?? "";
_applicationTemplate += _format(
id: ID.applicationSpecificTransparentTemplate,
value: _specificTransparentTemplate) ??
"";
}
}
payload += _format(
id: ID.applicationTemplate, value: _applicationTemplate) ??
"";
}
}
if (cpm.commonDataTemplates.isNotEmpty) {
for (var commonDataTemplate in cpm.commonDataTemplates) {
String _commonDataTemplate =
_formattingTemplate(commonDataTemplate.berTvl ?? BerTvl()) ?? "";
if (commonDataTemplate.commonDataTransparentTemplates != null) {
final transparentTemplates =
commonDataTemplate.commonDataTransparentTemplates ?? [];
for (var transparentTemplate in transparentTemplates) {
String _transparentTemplate =
_formattingTemplate(transparentTemplate) ?? "";
_commonDataTemplate += _format(
id: ID.commonDataTransparentTemplate,
value: _transparentTemplate) ??
"";
}
}
payload +=
_format(id: ID.commonDataTemplate, value: _commonDataTemplate) ??
"";
}
}
final decoded = hex.decode(payload);
payload = base64.encode(decoded);
return payload;
} catch (e) {
return null;
}
}