resendOtp method
Resend OTP for e-wallet payment
Implementation
Future<LokotroEWalletResendResponse> resendOtp({
required String transactionId,
}) async {
try {
final requestData = {
'payment_id': transactionId,
};
final response = await _httpClient.post<Map<String, dynamic>>(
'/payments/resend-otp',
data: requestData,
parser: (data) => data as Map<String, dynamic>,
);
if (response.isSuccess && response.data != null) {
final responseData = response.data!['data'] as Map<String, dynamic>;
return LokotroEWalletResendResponse(
success: responseData['success'] as bool,
status: responseData['status'] as String,
otpSentTo: responseData['otp_sent_to'] as String?,
resendCount: responseData['resend_count'] as int?,
maxResends: responseData['max_resends'] as int?,
resentAt: responseData['resent_at'] as String?,
expiresAt: responseData['expires_at'] as String?,
message: response.data!['message'] as String,
);
} else {
throw LokotroPayException(
message: response.message,
code: 'OTP_RESEND_FAILED',
);
}
} catch (e) {
LokotroPayLog.m('ewallet.resend_otp.err', 'resend OTP failed (type=${e.runtimeType})');
rethrow;
}
}