pay static method

Future<bool> pay({
  1. required double amount,
  2. TagTxn? tag,
  3. String? invoiceId,
})

Implementation

static Future<bool> pay({required double amount, TagTxn? tag, String? invoiceId}) async {
  if (amount <= 0) {
    UToast.error(message: U.s.invalidAmount);
    return false;
  }
  final Completer<bool> completer = Completer<bool>();
  ULoading.show();
  await UServices.ipg.pay(
    p: UIpgSaleParams(amount: amount, tag: tag, invoiceId: invoiceId),
    onOk: (UResponse<UIpgPayResponse> r) async {
      ULoading.dismiss();
      final UIpgPayResponse? data = r.result;
      if (data == null || data.url.isEmpty) {
        UToast.error(message: r.message);
        completer.complete(false);
        return;
      }
      completer.complete(await UNavigator.push<bool>(UIpgWebViewPage(url: data.url)) ?? false);
    },
    onError: (UEmptyResponse e) {
      ULoading.dismiss();
      UToast.error(message: e.message);
      completer.complete(false);
    },
    onException: (String e) {
      ULoading.dismiss();
      UToast.error(message: e);
      completer.complete(false);
    },
  );
  return completer.future;
}