pay static method
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;
}