createPayment method
Implementation
Future<void> createPayment(
{required DigitalpayePaymentConfig params, required String token}) async {
if (token.isNotEmpty == true) {
_isLoader = true;
notifyListeners();
DigitalpayePaymentProcess payment = DigitalpayePaymentProcess(
codeCountry: params.codeCountry,
amount: params.amount,
transactionId: params.transactionId,
designation: params.designation,
nameUser: params.nameUser ?? name,
customerId: phone,
currency: params.currency,
urlError: params.urlError ?? "",
urlSuccess: params.urlSuccess ?? "",
emailUser: email,
otpCode: codePin ?? "",
operator: selectedPayment?.value ?? "",
);
final result =
await repository.createPayment(token: token, payment: payment);
result.fold((error) {
_isLoader = false;
if (error.codeStatus == 504) {
_statusPayment = EnumStatusPayment.failed;
responsePayment = error.data;
onCallBack?.call(error.data!);
onFailed?.call(responsePayment!);
} else {
_messageError = error.message;
_showError = true;
onError?.call(true);
}
}, (response) {
responsePayment = response.data;
if (response.codeStatus == 202) {
onPending?.call(true);
if (responsePayment?.typePayment == EnumTypePayment.wave.value) {
launch(responsePayment?.waveLaunchUrl ?? "");
} else if (responsePayment?.typePayment ==
EnumTypePayment.digitalpaye.value) {
interfacePayment = EnumTypePayment.digitalpaye.value;
} else if (responsePayment?.typePayment ==
EnumTypePayment.mtn.value) {
interfacePayment = EnumTypePayment.mtn.value;
}
} else {
_statusPayment = EnumStatusPayment.successful;
onSuccessful?.call(responsePayment!);
onCallBack?.call(response.data!);
}
_showError = false;
});
notifyListeners();
}
}