UpiResponse.fromResponseString constructor

UpiResponse.fromResponseString(
  1. String response
)

Parse raw UPI response string into UpiResponse

Implementation

factory UpiResponse.fromResponseString(String response) {
  final params = Uri.splitQueryString(response);
  final statusStr = params['Status']?.toLowerCase() ??
      params['status']?.toLowerCase();

  final status = switch (statusStr) {
    'success' => UpiTransactionStatus.success,
    'failure' => UpiTransactionStatus.failure,
    'submitted' => UpiTransactionStatus.submitted,
    _ => UpiTransactionStatus.unknown,
  };

  return UpiResponse(
    rawResponse: response,
    status: status,
    transactionId: params['txnId'] ?? params['txnid'],
    responseCode: params['responseCode'],
    approvalRefNo: params['ApprovalRefNo'],
  );
}