parseSMS method

  1. @override
SmsParseResult? parseSMS(
  1. String number,
  2. String text
)
override

Parses a transaction-status SMS received from a configured TxMS number.

Implementation

@override
SmsParseResult? parseSMS(String number, String text) {
  final normalizedNumber = number.replaceAll(RegExp(r'\D'), '');
  if (normalizedNumber.isEmpty || !_isConfiguredNumber(normalizedNumber)) {
    return null;
  }

  final successMatch = RegExp(r'^OK\s+TxID:\s*(\S+)\s*$').firstMatch(text);
  if (successMatch != null) {
    return SmsParseResult.success(successMatch.group(1)!);
  }

  final failureMatch = RegExp(r'^Failed:\s*(.+?)\s*$').firstMatch(text);
  if (failureMatch != null) {
    return SmsParseResult.failure(failureMatch.group(1)!);
  }

  return null;
}