Преглед изворни кода

[fix]在会员中心调起支付接口的空窗期,原有【请求中】弹窗,请求过程中会中断【弹窗显示】

zk пре 4 месеци
родитељ
комит
114ab51803

+ 11 - 9
lib/module/member/member_controller.dart

@@ -392,9 +392,11 @@ class MemberController extends BaseController implements PaymentStatusCallback {
         _onApplePay(response.outTradeNo, response.appAccountToken ?? "",
             buyPayWay, buyGoods);
       } else {
+        LoadingDialog.hide();
         ToastUtil.show(StringName.payNotSupport);
       }
     }).catchError((error) {
+      LoadingDialog.hide();
       //处理购买失败
       showRetainDialog();
       if (error is ServerErrorException) {
@@ -410,18 +412,14 @@ class MemberController extends BaseController implements PaymentStatusCallback {
       } else {
         ToastUtil.show(StringName.memberPaymentFailed);
       }
-    }).whenComplete(() {
-      LoadingDialog.hide();
     });
   }
 
   ///发起购买请求
-  Future<void> _onApplePay(
-    String outTradeNo,
-    String appAccountToken,
-    PayItemBean payWayInfo,
-    GoodsBean goodsInfo,
-  ) async {
+  Future<void> _onApplePay(String outTradeNo,
+      String appAccountToken,
+      PayItemBean payWayInfo,
+      GoodsBean goodsInfo,) async {
     final result = await ApplePay().purchase(
       productId: goodsInfo.appleGoodsId ?? "",
       appAccountToken: appAccountToken,
@@ -445,6 +443,7 @@ class MemberController extends BaseController implements PaymentStatusCallback {
 
   void _onAliScanPay(String outTradeNo, String qrHtml, PayItemBean paymentWay,
       GoodsBean goodsBean) {
+    LoadingDialog.hide();
     AlipayQrCodeDialog.show(
         qrCodeHtml: qrHtml,
         loadSuccessCallback: () {
@@ -462,6 +461,7 @@ class MemberController extends BaseController implements PaymentStatusCallback {
   void checkPaymentStatus(
       String orderNo, PayItemBean paymentWay, GoodsBean goodsBean,
       {String? receiptData}) {
+    LoadingDialog.show(StringName.payQuerypayState);
     paymentStatusManager.registerPaymentSuccessCallback(orderNo, this);
     paymentStatusManager.checkPaymentStatus(orderNo, paymentWay, goodsBean,
         receiptData: receiptData);
@@ -489,6 +489,7 @@ class MemberController extends BaseController implements PaymentStatusCallback {
 
   void _onWechatScanPay(String outTradeNo, String qrCodeUrl,
       PayItemBean paymentWay, GoodsBean goodsBean) {
+    LoadingDialog.hide();
     WechatQrCodeDialog.show(
         qrCodeUrl: qrCodeUrl,
         loadSuccessCallback: () {
@@ -582,14 +583,15 @@ class MemberController extends BaseController implements PaymentStatusCallback {
   void requestSdkPay(dynamic payInfo, String outTradeNo, int payMethod,
       GoodsBean buyGoods, PayItemBean buyPayWay) {
     AgilePay.startPay(payInfo, success: (String? result) {
-      LoadingDialog.show(StringName.payQuerypayState);
       checkPaymentStatus(outTradeNo, buyPayWay, buyGoods, receiptData: result);
     }, payError: (int error, String? errorMessage) {
+      LoadingDialog.hide();
       debugPrint('zk---payError: $error, $errorMessage');
       errorPayToast(error);
       errorEventReport(payMethod);
       showRetainDialog();
     }, error: (int errno, String? error) {
+      LoadingDialog.hide();
       debugPrint('zk---error: $errno, $error');
       errorPayToast(errno);
       errorEventReport(payMethod);

+ 2 - 2
lib/module/member/member_header_cycle_widget.dart

@@ -76,8 +76,8 @@ class _MemberHeaderCycleWidgetState extends State<MemberHeaderCycleWidget> {
                 decoration: BoxDecoration(
                     image: DecorationImage(
                       image: _images[realIndex],
-                      //fit: BoxFit.cover,
-                    )
+                  fit: BoxFit.cover,
+                )
                 ),
               );
             },