createPayment method

Future<void> createPayment({
  1. required DigitalpayePaymentConfig params,
  2. required String token,
})

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();
  }
}