Эх сурвалжийг харах

支付宝小程序兼容性修改

ylong 6 сар өмнө
parent
commit
29620771ba

+ 6 - 3
pages-home/components/BookListItem.vue

@@ -15,8 +15,11 @@
             </view>
         </view>
         <!-- 选择框 -->
-        <u-checkbox v-show="isEditMode" class="checkbox-item" v-model="book.selected" :name="book.isbn" shape="circle"
+         <view class="checkbox-item" v-if="isEditMode">
+            <u-checkbox v-show="isEditMode" class="checkbox-item" v-model="book.selected" :name="book.isbn" shape="circle" label-size="0"
             active-color="#38C148" @change="updateCheckbox"></u-checkbox>
+         </view>
+        
     </view>
 </template>
 
@@ -154,13 +157,13 @@ export default {
         }
     }
 
-    ::v-deep .checkbox-item {
+   .checkbox-item {
         position: absolute;
         right: 6rpx;
         top: 0;
         z-index: 9;
 
-        .u-checkbox__label {
+        ::v-deep .u-checkbox__label {
             margin: 0 !important;
         }
     }

+ 3 - 0
pages-home/pages/scaned-book.vue

@@ -92,6 +92,9 @@ export default {
             this.isEditMode = !this.isEditMode
             if (!this.isEditMode) {
                 this.bookList.forEach(book => book.selected = false)
+            }else{
+                this.isAllSelected = true
+                this.bookList.forEach(book => book.selected = true)
             }
         },
 

+ 94 - 28
pages-mine/pages/cashier-desk.vue

@@ -4,6 +4,7 @@
         </view>
         <view class="payment-methods">
             <u-radio-group v-model="formData.payType" @change="radioGroupChange">
+                <!-- #ifdef MP-WEIXIN -->
                 <view class="payment-item">
                     <view class="left">
                         <image src="../static/pay1.png" class="payment-icon"></image>
@@ -11,6 +12,17 @@
                     </view>
                     <u-radio active-color="#38C148" name="1" />
                 </view>
+                <!-- #endif -->
+                <!-- #ifdef MP-ALIPAY -->
+                <view class="payment-item">
+                    <view class="left">
+                        <image src="../static/alipay.png" class="payment-icon"></image>
+                        <text>支付宝支付</text>
+                    </view>
+                    <u-radio active-color="#38C148" name="1" />
+                </view>
+                <!-- #endif -->
+
                 <view class="payment-item">
                     <view class="left">
                         <image src="../static/pay2.png" class="payment-icon"></image>
@@ -68,39 +80,93 @@ export default {
             })
         },
 
-        onConfirmPayment() {
-            uni.showLoading({
-                title: '支付处理中'
-            })
-            uni.$u.http.post('/token/order/refundOrderPay', this.formData).then(res => {
-                if (res.code == 200) {
-                    if (res.data.needPay == 1) {
-                        // TODO: 调用支付接口
-                        uni.requestPayment({
-                            timeStamp: res.data.timeStamp,
-                            nonceStr: res.data.nonceStr,
-                            package: `prepay_id=${res.data.prepayId}`,
-                            signType: res.data.signType,
-                            paySign: res.data.paySign,
-                            provider: 'wxpay',
-                            success: (res) => {
-                                //支付成功之后,跳转支付成功页面
-                                uni.navigateTo({
-                                    url: `/pages-mine/pages/pay-success?orderId=${this.formData.refundOrderId}`
-                                })
-                            },
-                            fail: (err) => {
-                                console.log(err)
-                            }
-                        })
-                    } else {
-                        //支付成功之后,跳转支付成功页面
+        // 统一支付方法
+        handlePayment(payData) {
+            // #ifdef MP-WEIXIN
+            this.wxPayment(payData);
+            // #endif
+
+            // #ifdef MP-ALIPAY
+            this.aliPayment(payData);
+            // #endif
+        },
+
+        // 微信支付方法
+        wxPayment(payData) {
+            uni.requestPayment({
+                provider: 'wxpay',
+                timeStamp: payData.timeStamp,
+                nonceStr: payData.nonceStr,
+                package: `prepay_id=${payData.prepayId}`,
+                signType: payData.signType,
+                paySign: payData.paySign,
+                success: (res) => {
+                    //支付成功之后,跳转支付成功页面
+                    uni.navigateTo({
+                        url: `/pages-mine/pages/pay-success?orderId=${this.formData.refundOrderId}`
+                    });
+                },
+                fail: (err) => {
+                    console.error('微信支付失败:', err);
+                    uni.showToast({
+                        title: '支付失败',
+                        icon: 'none'
+                    });
+                }
+            });
+        },
+
+        // 支付宝支付方法
+        aliPayment(payData) {
+            my.tradePay({
+                tradeNO: payData.tradeNo,
+                success: (res) => {
+                    if (res.resultCode === '9000') {
+                        // 支付成功
                         uni.navigateTo({
                             url: `/pages-mine/pages/pay-success?orderId=${this.formData.refundOrderId}`
-                        })
+                        });
+                    } else {
+                        uni.showToast({
+                            title: '支付失败',
+                            icon: 'none'
+                        });
                     }
+                },
+                fail: (err) => {
+                    console.error('支付宝支付失败:', err);
+                    uni.showToast({
+                        title: '支付失败',
+                        icon: 'none'
+                    });
                 }
+            });
+        },
+
+        // 发起支付
+        onConfirmPayment() {
+            uni.showLoading({
+                title: '支付处理中'
             })
+            // 获取支付参数
+            uni.$u.post('/token/order/refundOrderPay', this.formData).then(res => {
+                if (res.code === 200) {
+                    // 调用统一支付方法
+                    this.handlePayment(res.data);
+                } else {
+                    uni.showToast({
+                        title: res.msg || '获取支付参数失败',
+                        icon: 'none'
+                    });
+                }
+            }).catch(err => {
+                console.error('获取支付参数失败:', err);
+                uni.showToast({
+                    title: err.msg || '获取支付参数失败',
+                    icon: 'none'
+                });
+                uni.hideLoading();
+            });
         },
 
         radioGroupChange(e) {

BIN
pages-mine/static/alipay.png


+ 1 - 2
pages/home/index.vue

@@ -50,8 +50,7 @@
                         >
                     </view>
                     <text class="common-text tip"
-                        >*旧书预估价格满
-                        {{ orderInfo.minOrderMoney }} 元起收</text
+                        >*旧书预估价格满{{ orderInfo.minOrderMoney }}元起收</text
                     >
                 </view>
 

+ 1 - 1
uview-ui/components/u-popup/u-popup.vue

@@ -413,7 +413,7 @@ export default {
 	display: block;
 	/* #endif */
 	position: relative;
-	background-color: #ffffff;
+	background-color: transparent;
 }
 
 .u-drawer-content-visible.u-drawer-center {