From 55ee7bd313c7d8030ce8c547b18ad5f19507afd2 Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期日, 30 十一月 2025 16:12:37 +0800
Subject: [PATCH] feat(pay): 新增会员充值和次卡购买页面

---
 pages/pay/scanpay.vue |  904 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 904 insertions(+), 0 deletions(-)

diff --git a/pages/pay/scanpay.vue b/pages/pay/scanpay.vue
new file mode 100644
index 0000000..ff25ff5
--- /dev/null
+++ b/pages/pay/scanpay.vue
@@ -0,0 +1,904 @@
+<!-- 鎵爜鏀粯 -->
+<template>
+	<view class="page">
+		<u-alert type="warning" closable description="瀹夊叏鎻愰啋锛氳璋ㄦ厧鏍稿鍟嗗銆佽鍗曚俊鎭紝淇濇姢鑷繁璧勯噾瀹夊叏!"></u-alert>
+		<view class="shop u-flex u-row-between">
+			<view class="u-m-r-30">
+				<view class="u-font-28 color-666 u-m-b-10">浠樻缁�</view>
+				<view class="u-font-44 font-bold color-333">{{ shopInfo.shop_name }}</view>
+			</view>
+			<image :src="shopInfo.logo_image||'/static/imgs/store-logo.png'" class="avg-img"></image>
+		</view>
+		<view class="u-p-48 bg-fff u-flex-1 content">
+			<view class="u-font-28 color-666">閲戦</view>
+			<view class="u-p-v-20 u-flex u-border-bottom u-relative">
+				<view class="money-icon color-333">楼</view>
+				<view class="u-flex-1 u-flex u-m-l-10" style="height: 80rpx;">
+					<view v-if="money" class="money-num">{{ money }}</view>
+					<view :class="['cursor',{'cursor-act':!money&&bordShow}]"></view>
+					<view v-if="!money" class="u-font-50 color-999">璇疯緭鍏ラ噾棰�</view>
+					<view :class="['cursor',{'cursor-act':money&&bordShow}]"></view>
+				</view>
+				<view class="mask" @click="showBord"></view>
+			</view>
+			<view class="u-font-28 color-666 u-m-t-60">閫夋嫨鏀粯鏂瑰紡</view>
+			<u-radio-group v-model="payWay" placement="column">
+				<view v-if="platform == 15" class="u-border-bottom u-p-v-20 u-flex u-row-between">
+					<image src="@/static/imgs/pay-union.png" class="pay-icon"></image>
+					<view class="flex-1">
+						<view class="u-font-30 color-333">浜戦棯浠�</view>
+						<text v-if="isNew" class="tag u-m-t-10">浼氬憳浜紭鎯�</text>
+						<text v-if="!isNew&&token&&shopInfo.use_score_flag&&shopInfo.app_pay_use_score_flag" class="u-font-24 color-999 u-m-t-10">
+							鍙敤
+							<text class="color-red">{{ integral }}</text>
+							绉垎
+						</text>
+					</view>
+					<view v-if="token&&couponInfo&&shopInfo.user_coupon_flag&&shopInfo.app_pay_use_coupon_flag" class="tag-pain">
+						婊{
+              parseFloat((couponInfo.thresholdValue / 100).toFixed(2))
+            }}鍏冨噺{{ parseFloat((couponInfo.discount / 100).toFixed(2)) }}鍏�
+					</view>
+					<u-radio @change="radioChange($event,15)" :name="15" activeColor="#D41F28" :customStyle="{ marginLeft: '10rpx' }"></u-radio>
+				</view>
+				<view v-if="platform == 5" class="u-border-bottom u-p-v-20 u-flex u-row-between">
+					<image src="@/static/imgs/pay-zfb.png" class="pay-icon" mode="widthFix"></image>
+					<view class="flex-1">
+						<view class="u-font-30 color-333">鏀粯瀹�</view>
+						<text v-if="isNew" class="tag u-m-t-10">浼氬憳浜紭鎯�</text>
+						<text v-if="!isNew&&token&&shopInfo.use_score_flag&&shopInfo.app_pay_use_score_flag" class="u-font-24 color-999 u-m-t-10">
+							鍙敤
+							<text class="color-red">{{ integral }}</text>
+							绉垎
+						</text>
+					</view>
+					<view v-if="token&&couponInfo&&shopInfo.user_coupon_flag&&shopInfo.app_pay_use_coupon_flag" class="tag-pain">
+						婊{
+              parseFloat((couponInfo.thresholdValue / 100).toFixed(2))
+            }}鍏冨噺{{ parseFloat((couponInfo.discount / 100).toFixed(2)) }}鍏�
+					</view>
+					<u-radio @change="radioChange($event,5)" :name="5" activeColor="#D41F28" :customStyle="{ marginLeft: '10rpx' }"></u-radio>
+				</view>
+				<view v-if="platform == 2" class="u-border-bottom u-p-v-20 u-flex u-row-between">
+					<image src="@/static/imgs/pay-wx.png" class="pay-icon" mode="widthFix"></image>
+					<view class="flex-1">
+						<view class="u-font-30 color-333">寰俊</view>
+						<text v-if="isNew" class="tag u-m-t-10">浼氬憳浜紭鎯�</text>
+						<text v-if="!isNew&&token&&shopInfo.use_score_flag&&shopInfo.app_pay_use_score_flag" class="u-font-24 color-999 u-m-t-10">
+							鍙敤
+							<text class="color-red">{{ integral }}</text>
+							绉垎
+						</text>
+					</view>
+					<view v-if="token&&couponInfo&&shopInfo.user_coupon_flag&&shopInfo.app_pay_use_coupon_flag" class="tag-pain">
+						婊{
+              parseFloat((couponInfo.thresholdValue / 100).toFixed(2))
+            }}鍏冨噺{{ parseFloat((couponInfo.discount / 100).toFixed(2)) }}鍏�
+					</view>
+					<u-radio @change="radioChange($event,2)" :name="2" activeColor="#D41F28" :customStyle="{ marginLeft: '10rpx' }">
+					</u-radio>
+				</view>
+				<view  class="u-border-bottom u-p-v-20 u-flex u-row-between">
+					<image src="@/static/zjjg/yue.png" class="pay-icon" mode="widthFix"></image>
+					<view class="flex-1">
+						<view class="u-font-30 color-333">鍌ㄥ�煎崱</view>
+						<text class="u-font-24 color-999 u-m-t-10">
+							鍙敤浣欓
+							<text class="color-red">锟{ integral }}</text>
+						</text>
+					</view>
+					<u-radio @change="radioChange($event,14)" :name="14" activeColor="#D41F28" :customStyle="{ marginLeft: '10rpx' }">
+					</u-radio>
+				</view>
+<!--				<navigator v-if="shuaka&&token&&bankCard!=-1" class="shuka" url="/pages/pay/shuaKa/shuaKa">
+					<image src="/static/shuaka/shuaka.png" mode=""></image>
+				</navigator>
+				<view v-if="bankCard.id" class="u-border-bottom u-p-v-20 u-flex">
+					<view @click="bordShow=false;bankCardOpen=true" class="flex-1 u-flex">
+						<image :src="bankCardStyle.logo" class="pay-icon"></image>
+						<view>
+							<view class="u-font-30 color-333 u-flex">
+								{{ bankCard.bankName }}({{ cardType[bankCard.cardType] }})({{ bankCard.cardNo }})
+								<u-icon name="arrow-right" color="#000">
+								</u-icon>
+							</view>
+							&lt;!&ndash; <text v-if="isNew" class="tag u-m-t-10">浼氬憳浜紭鎯�</text> &ndash;&gt;
+							<text v-if="!isNew&&shopInfo.use_score_flag&&shopInfo.bank_pay_use_score_flag" class="u-font-24 color-999 u-m-t-10">
+								鍙敤
+								<text class="color-red">{{ integral }}</text>
+								绉垎
+							</text>
+						</view>
+					</view>
+					<view v-if="!isNew&&shopInfo.user_coupon_flag&&shopInfo.bank_pay_use_coupon_flag&&couponInfo" class="tag-pain">
+						婊{
+              parseFloat((couponInfo.thresholdValue / 100).toFixed(2))
+            }}鍏冨噺{{ parseFloat((couponInfo.discount / 100).toFixed(2)) }}鍏�
+					</view>
+					<u-radio @change="radioChange($event,3)" :name="bankCard.id" activeColor="#D41F28" :customStyle="{ marginLeft: '10rpx' }">
+					</u-radio>
+				</view>-->
+			</u-radio-group>
+      <navigator :url="`/pages/pay/vipEwm?cardInfo=${encodeURIComponent(JSON.stringify(cardInfo))}`" class="u-border-bottom u-p-v-20 u-flex u-row-between">
+          <image src="@/static/zjjg/cika.png" class="pay-icon" mode="widthFix"></image>
+          <view class="flex-1 u-m-l-20">
+            <view class="u-font-30 color-333">娆″崱鏀粯</view>
+            <text class="u-font-24 color-999 u-m-t-10">
+              鍙敤娆℃暟
+              <text class="color-red">{{ cardInfo.times }}娆�</text>
+            </text>
+          </view>
+      </navigator>
+<!--			<navigator v-if="bankCard==-1&&bindCard&&token&&!isNew" class="shuka" url="/pages/pay/bindCard/bindCard">
+				<image src="/static/bangka.png" mode=""></image>
+			</navigator>
+			<navigator v-if="bankCard==-1&&!isNew" url="/pages/pay/bindCard/bindCard" class="u-border-bottom u-p-v-20 u-flex u-row-between">
+				<view class="u-flex-1 u-flex ">
+					<image class="pay-icon" :src="bankCardStyle.logo" mode=""></image>
+					<view class="flex-1 u-m-l-20">
+						<view class="u-font-30 color-333">閾惰鍗�</view>
+						<view class="u-font-24 color-red">缁戝崱鍙韩鏇村浼樻儬</view>
+					</view>
+				</view>
+				<u-radio disabled activeColor="#D41F28" :customStyle="{ marginLeft: '30rpx' }">
+				</u-radio>
+			</navigator>-->
+			<navigator v-if="isNew" class="reg-btn" :url="'/pages/pay/register?cid='+cid">
+				<image src="/static/register-btn.png" mode=""></image>
+			</navigator>
+		</view>
+
+
+		<button class="pay-it" @click="pay">浠樻</button>
+		<!-- 閫夋嫨閾惰鍗� -->
+		<u-popup mode="bottom" :closeable="true" :show="bankCardOpen" :round="10" @close="bankCardOpen = false">
+			<view class="u-font-32 color-333 u-text-center u-p-30 u-border-bottom">閫夋嫨閾惰鏀粯</view>
+			<scroll-view scroll-y class="u-p-h-30 bankCard-list">
+				<block v-for="(item,i) in bankCardList" :key="i">
+					<view @click="chooseBankCard(item)" class="u-border-bottom u-p-v-30 u-flex">
+						<view class="flex-1 u-flex">
+							<image :src="bankCardStyle.logo" class="pay-icon" mode="widthFix"></image>
+							<view>
+								<view class="u-font-26 color-333">{{ item.bankName }}</view>
+								<view class="u-m-t-10 u-font-28 color-333">{{ cardType[item.cardType] }}({{ item.cardNo }})
+								</view>
+							</view>
+						</view>
+						<u-icon name="checkbox-mark" :color="bankCardId==item.id?'#D31F28':'#fff'" size="22"></u-icon>
+					</view>
+				</block>
+				<navigator url="/pages/pay/bindCard/bindCard" class="u-border-bottom u-p-v-30 u-flex">
+					<view class="add-icon">
+						<u-icon name="plus" bold color="#D31F28"></u-icon>
+					</view>
+					<view class="u-font-28 color-333 u-m-l-20">浣跨敤鏂板崱鏀粯</view>
+				</navigator>
+			</scroll-view>
+		</u-popup>
+		<!-- 鏁板瓧閿洏 -->
+		<u-popup :show="bordShow" :overlay="false" @close="bordShow = false">
+			<key-bord @changeMoney="changeMoney" :num.sync="money" @close="bordShow = false" @pay="pay"></key-bord>
+		</u-popup>
+		<!-- 鏀粯楠岃瘉鐮� -->
+		<u-popup :show="codeShow" closeable mode="center" @close="codeShow = false">
+			<view class="u-p-h-40 u-p-b-40">
+				<view class="u-text-center u-p-t-20 u-m-b-30 u-font-34">璇疯緭鍏ユ墜鏈洪獙璇佺爜</view>
+				<view class="u-text-center u-m-b-20 color-666">{{ shopInfo.shop_name }}</view>
+				<view class="u-flex u-row-center font-bold u-m-b-40">
+					<text class="u-font-42">锟�</text>
+					<text class="u-font-money">{{ money }}
+					</text>
+				</view>
+				<u-code-input @finish="bankPay" v-model="smscode" mode="box" :focus="true"></u-code-input>
+			</view>
+
+		</u-popup>
+	</view>
+</template>
+
+<script>
+	import {
+		config,
+		cardType,
+		ACCESSTOKEN
+	} from '@/common/config.js';
+	import {
+		headBand,
+		bankCardStyle,
+		myBankCard,
+		queryShop,
+		queryMyDiscount,
+		getScoreWorth,
+		userLogin,
+		queryScore,
+		queryMyUseSweepPayMaxCoupon,
+		getWechatConfigInfo,
+		saveWxOrder,
+		tlPay
+	} from '@/common/api/index'
+	import wx from 'weixin-js-sdk'; // 浣跨敤js-sdk
+	import {
+		activityInfo
+	} from '@/common/api/shuaka'
+	export default {
+		data() {
+			return {
+        cardInfo:{
+          type: 1,
+          name: '',
+          amount: 0,
+          score: 0,
+          times: 12
+        },
+				platform: this.$utils.getPlat(),
+				cardType: cardType,
+				cid: '',
+				bordShow: false, // 鏄剧ず閿洏
+				scoreWorth: 0,
+				shopInfo: {
+					shop_name: '',
+					scan_flag: '',
+					use_score_flag: 0, //鍟嗛摵鏄惁鍙敤绉垎 0鍚� 1鏄�
+					user_coupon_flag: 0, //鍟嗛摵鏄惁鍙敤浼樻儬鍒� 0鍚� 1鏄�
+					app_pay_use_score_flag: 0, //寰俊/鏀粯瀹濇槸鍚﹀彲鐢ㄧН鍒� 0鍚� 1鏄�
+					app_pay_use_coupon_flag: 0, //寰俊/鏀粯瀹濇槸鍚﹀彲鐢ㄤ紭鎯犲埜 0鍚� 1鏄�
+					bank_pay_use_score_flag: 0, //閾惰鍗℃敮浠樻槸鍚﹀彲鐢ㄧН鍒� 0鍚� 1鏄�
+					bank_pay_use_coupon_flag: 0, //閾惰鍗℃敮浠樻槸鍚﹀彲鐢ㄤ紭鎯犲埜 0鍚� 1鏄�
+				},
+				money: '', // 閲戦
+				integral: 0, // 浣跨敤绉垎
+				couponInfo: null, // 浼樻儬鍒稿唴瀹�
+				payWay: 3, //鏀粯鏂瑰紡 5 鏀粯瀹� 2 寰俊 3閾惰鍗� 15浜戦棯浠�
+				token: null,
+				isNew: false, // 鏄惁鏂扮敤鎴凤紝鏂扮敤鎴锋煡璇笉鍒扮Н鍒嗗拰閾惰鍗�
+				codeShow: false, // 閾惰鍗℃敮浠橀獙璇佺爜杈撳叆寮圭獥
+				smscode: '', // 閾惰鍗℃敮浠橀獙璇佺爜
+				thpinfo: null,
+				bankCardStyle: {
+					color: '',
+					logo: ''
+				},
+				bankCardList: [], //閾惰鍗″垪琛�
+				bankCard: -1, // 閫変腑閾惰鍗�
+				bankCardId: null, // 閫変腑閾惰鍗�
+				bankCardOpen: false,
+				canReset: false,
+				end: 0,
+				count: 0,
+				shuaka: null, //鍒峰崱娲诲姩
+				bindCard: false, // 缁戝崱鏈夌ぜ
+				discount: {
+					memberGradeName: '',
+					shopDiscount: 10
+				},
+				aLiUserId: ''
+			};
+		},
+		onLoad(opt) {
+			this.isNew = uni.getStorageSync('IS_NEW')
+			uni.showLoading()
+			this.payWay = this.platform
+			if (opt.cid) {
+				this.cid = opt.cid
+				uni.setStorageSync('CID', opt.cid)
+				this.init()
+			}
+			if (opt.code || opt.auth_code || opt.userAuthCode) {
+				let code = opt.code
+				if (this.platform == 5) {
+					code = opt.auth_code
+				}
+				if (this.platform == 15) {
+					code = opt.userAuthCode
+				}
+				this.end++
+				userLogin({
+					platform: this.platform,
+					params: {
+						code
+					}
+				}).then(res => {
+					this.getToken(res)
+				}).catch(() => {
+					uni.hideLoading()
+				})
+
+			} else {
+				if (process.env.NODE_ENV === 'development') {
+					console.log('寮�鍙戠幆澧�');
+				} else {
+					console.log('鐢熶骇鐜');
+					const redirect_uri = encodeURIComponent(window.location.href.split('?')[0] + '?cid=' + this.cid)
+					if (this.platform == 2) {
+						window.location.href =
+							`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${config.wx_appid}&redirect_uri=${redirect_uri}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`
+					} else if (this.platform == 5) {
+						window.location.href =
+							`https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=${config.ali_appid}&scope=auth_base&redirect_uri=${redirect_uri}&state=STATE`
+					}
+				}
+			}
+
+		},
+		onShow() {
+			this.token = uni.getStorageSync(ACCESSTOKEN) || null
+			this.bordShow = false
+			this.bankCardOpen = false
+			this.codeShow = false
+			this.smscode = ''
+			if (this.canReset && this.token && !this.isNew) {
+				this.end = 0
+				this.count = 0
+				uni.showLoading()
+				this.getUserInfo()
+			}
+			this.canReset = true
+		},
+		methods: {
+			getToken(res) {
+				this.count++
+				if (this.count >= this.end) {
+					uni.hideLoading()
+				}
+				this.token = res.token.accessToken
+				uni.setStorageSync(ACCESSTOKEN, res.token.accessToken)
+				uni.setStorageSync('IS_NEW', res.isNew)
+				this.isNew = res.isNew
+				if (!res.isNew) {
+					this.getUserInfo()
+				}
+			},
+			radioChange(e, item) {
+				this.bordShow = false
+				this.payWay = item
+			},
+			// 鏇存柊閲戦
+			changeMoney(str) {
+				this.money = str;
+			},
+			// 灞曠ず閿洏
+			showBord() {
+				this.bordShow = true;
+			},
+			init() {
+				this.end += 5
+				//鑾峰彇鍟嗛摵淇℃伅
+				queryShop({
+					params: {
+						cid: this.cid
+					}
+				}).then(res => {
+					this.count++
+					if (this.count >= this.end) {
+						uni.hideLoading()
+					}
+					if (res.logo_image) {
+						try {
+							let arr = JSON.parse(res.logo_image)
+							res.logo_image = config.sftpURL + arr[0].path
+						} catch (e) {
+							//TODO handle the exception
+							res.logo_image = ''
+						}
+					}
+					uni.setStorageSync('SHOP_INFO', res)
+					this.shopInfo = res
+				}).catch(() => {
+					uni.hideLoading()
+				})
+				// 鍒峰崱鏈夌ぜ
+				activityInfo().then(res => {
+					this.count++
+					if (this.count >= this.end) {
+						uni.hideLoading()
+					}
+					this.shuaka = res
+				}).catch(() => {
+					uni.hideLoading()
+				})
+				// 棣栫粦鏈夌ぜ
+				headBand().then(res => {
+					this.count++
+					if (this.count >= this.end) {
+						uni.hideLoading()
+					}
+					this.bindCard = res
+				}).catch(() => {
+					uni.hideLoading()
+				})
+				// 绉垎浠峰��
+				getScoreWorth().then(res => {
+					this.count++
+					if (this.count >= this.end) {
+						uni.hideLoading()
+					}
+					this.scoreWorth = res.settingVal
+				}).catch(() => {
+					uni.hideLoading()
+				})
+				//鑾峰彇閾惰鍗¢鏍奸厤缃�
+				bankCardStyle().then(res => {
+					this.count++
+					if (this.count >= this.end) {
+						uni.hideLoading()
+					}
+					try {
+						let arr = JSON.parse(res.logo)
+						res.logo = config.sftpURL + arr[0].path
+					} catch (e) {
+						//TODO handle the exception
+						res.logo = ''
+					}
+					this.bankCardStyle = res
+					uni.setStorageSync('bankCardStyle', res)
+				}).catch(() => {
+					uni.hideLoading()
+				})
+				if (this.platform == 2) {
+					this.end += 1
+					//鑾峰彇寰俊jsSdk閰嶇疆
+					const uri = encodeURIComponent(window.location)
+					getWechatConfigInfo({
+						url: uri
+					}).then(res => {
+						this.count++
+						if (this.count >= this.end) {
+							uni.hideLoading()
+						}
+						wx.config({
+							debug: false, // 寮�鍚皟璇曟ā寮�
+							appId: res.appId, // 蹇呭~锛屽叕浼楀彿鐨勫敮涓�鏍囪瘑
+							timestamp: res.timestamp, // 蹇呭~锛岀敓鎴愮鍚嶇殑鏃堕棿鎴�
+							nonceStr: res.noncestr, // 蹇呭~锛岀敓鎴愮鍚嶇殑闅忔満涓�
+							signature: res.signature, // 蹇呭~锛岀鍚�
+							jsApiList: ['chooseWXPay'], // 蹇呭~锛岄渶瑕佷娇鐢ㄧ殑 JS 鎺ュ彛鍒楄〃
+							openTagList: [
+								'wx-open-launch-weapp'
+							] // 鍙�夛紝闇�瑕佷娇鐢ㄧ殑寮�鏀炬爣绛惧垪琛紝渚嬪['wx-open-launch-app']
+						});
+					}).catch(() => {
+						uni.hideLoading()
+					})
+				}
+
+			},
+			// 鑾峰彇浼氬憳鐩稿叧淇℃伅
+			getUserInfo() {
+				this.end += 4
+
+				queryMyDiscount({
+					shopId: this.shopInfo.id
+				}).then(res => {
+					this.count++
+					if (this.count >= this.end) {
+						uni.hideLoading()
+					}
+					res.shopDiscount = parseFloat(res.shopDiscount / 10)
+					this.discount = res
+					uni.setStorageSync('DISCOUNT_INFO', res)
+				}).catch(() => {
+					this.count++
+					if (this.count >= this.end) {
+						uni.hideLoading()
+					}
+				})
+				//鑾峰彇鐢ㄦ埛閾惰鍗�
+				myBankCard().then(res => {
+					this.count++
+					if (this.count >= this.end) {
+						uni.hideLoading()
+					}
+					this.bankCardList = res.rows
+					if (res.rows[0]) {
+						this.bankCard = res.rows[0]
+						if (this.platform == 3) {
+							this.bankCardId = res.rows[0].id
+						}
+					} else {
+						this.bankCard = -1
+					}
+				}).catch(() => {
+					this.count++
+					if (this.count >= this.end) {
+						uni.hideLoading()
+					}
+				})
+				//鑾峰彇鐢ㄦ埛绉垎
+				queryScore().then(res => {
+					this.count++
+					if (this.count >= this.end) {
+						uni.hideLoading()
+					}
+					this.integral = res.totalScore
+				}).catch(() => {
+					this.count++
+					if (this.count >= this.end) {
+						uni.hideLoading()
+					}
+				})
+				//鑾峰彇鐢ㄦ埛浼樻儬鍒�
+				queryMyUseSweepPayMaxCoupon({
+					params: {
+						shopId: this.shopInfo.id
+					}
+				}).then(res => {
+
+					this.count++
+					if (this.count >= this.end) {
+						uni.hideLoading()
+					}
+					this.couponInfo = res
+				}).catch(() => {
+					this.count++
+					if (this.count >= this.end) {
+						uni.hideLoading()
+					}
+				})
+			},
+			// 閫夋嫨閾惰鍗�
+			chooseBankCard(item) {
+				this.payWay = 3
+				this.bankCard = item;
+				this.$nextTick(() => {
+					this.bankCardId = item.id
+					this.bankCardOpen = false
+				})
+			},
+			//璺宠浆钀ラ攢椤甸潰
+			toDiscount() {
+				if (!this.isNew) { //鏄細鍛�
+					if (this.integral > 0 || this.couponInfo) { //鏈変紭鎯犲埜鎴栫Н鍒�
+						if (this.payWay == 3 && (this.shopInfo.bank_pay_use_score_flag || this.shopInfo
+								.bank_pay_use_coupon_flag)) { //閾惰鍗℃敮浠�
+
+							uni.navigateTo({
+								url: `/pages/pay/discountpay?integral=${this.integral}&scoreWorth=${this.scoreWorth}&money=${this.money}&payWay=${this.payWay}&bankCardId=${this.bankCardId}`
+							})
+							return false
+						} else if ((this.shopInfo.use_score_flag && this.shopInfo.app_pay_use_score_flag) || (this
+								.shopInfo
+								.user_coupon_flag && this.shopInfo.app_pay_use_coupon_flag)) {
+							uni.navigateTo({
+								url: `/pages/pay/discountpay?integral=${this.integral}&scoreWorth=${this.scoreWorth}&money=${this.money}&payWay=${this.payWay}&bankCardId=${this.bankCardId}`
+							})
+							return false
+						} else if (this.discount.shopDiscount != 1) {
+							uni.navigateTo({
+								url: `/pages/pay/discountpay?integral=${this.integral}&scoreWorth=${this.scoreWorth}&money=${this.money}&payWay=${this.payWay}&bankCardId=${this.bankCardId}`
+							})
+							return false
+						} else {
+							return true
+						}
+					} else if (this.discount.shopDiscount != 1) {
+						uni.navigateTo({
+							url: `/pages/pay/discountpay?integral=${this.integral}&scoreWorth=${this.scoreWorth}&money=${this.money}&payWay=${this.payWay}&bankCardId=${this.bankCardId}`
+						})
+						return false
+					} else {
+						return true
+					}
+				} else {
+					return true
+				}
+			},
+			//纭鏀粯
+			pay() {
+				if (uni.$u.test.isEmpty(this.money)) {
+					uni.$u.toast('璇疯緭鍏ラ噾棰濓紒')
+					return
+				}
+				this.bordShow = false
+				//鍒ゆ柇鏄惁闇�瑕佽烦杞惀閿�椤甸潰
+				if (this.toDiscount()) {
+					// 閲戦 this.money
+					uni.showLoading()
+					const params = {
+						money: parseFloat((this.money * 100).toPrecision(12)),
+						shopId: this.shopInfo.id,
+						cid: this.cid,
+						payWay: this.payWay,
+						score: 0,
+						couponDetailId: ''
+					}
+					if (this.payWay == 3) {
+						params.bankCardId = this.bankCardId
+					}
+					//鐢熸垚璁㈠崟
+					saveWxOrder(params).then(res => {
+						uni.hideLoading()
+						try {
+							this.orderId = res.orderId
+							res.youHuiInfo.shopName = this.shopInfo.shop_name
+							this.youHuiInfo = res.youHuiInfo
+							if (res.toPayMethod == 1) {
+								if (this.payWay == 3) {
+									this.smscode = ''
+									this.codeShow = true
+								}
+							} else if (res.toPayMethod == 2) {
+								if (this.payWay == 2) {
+									this.wxPay(res.paymentData)
+								}
+								if (this.payWay == 5) {
+									this.aliPay(res.paymentData)
+								}
+							} else if (res.toPayMethod == 3) {
+								window.location.href = res.paymentUrl
+							}
+						} catch (e) {
+							//TODO handle the exception
+							console.error(e);
+						}
+					}).catch(() => {
+						uni.hideLoading()
+					})
+				}
+
+			},
+			// 寰俊鏀粯
+			wxPay(res) {
+				/*setTimeout(() => {
+				  wx.chooseWXPay({
+				    timestamp: res.timeStamp, // 鏀粯绛惧悕鏃堕棿鎴�
+				    nonceStr: res.nonceStr, // 鏀粯绛惧悕闅忔満涓诧紝涓嶉暱浜� 32 浣�
+				    package: res.package, // 缁熶竴鏀粯鎺ュ彛杩斿洖鐨刾repay_id鍙傛暟鍊硷紝鎻愪氦鏍煎紡濡傦細prepay_id=\*\*\*锛�
+				    signType: res.signType, // 寰俊鏀粯V3鐨勪紶鍏� RSA ,寰俊鏀粯V2鐨勪紶鍏ユ牸寮忎笌V2缁熶竴涓嬪崟鐨勭鍚嶆牸寮忎繚鎸佷竴鑷�
+				    paySign: res.paySign, // 鏀粯绛惧悕
+				    success: function (res) {
+				      // 鏀粯鎴愬姛鍚庣殑鍥炶皟鍑芥暟
+				      uni.navigateTo({
+				        url: `/pages/pay/paySuccess?orderId=${this.orderId}&youHuiInfo=${JSON
+				            .stringify(this.youHuiInfo)}`
+				      })
+				    }
+				  });
+				}, 200)*/
+
+				setTimeout(() => {
+					WeixinJSBridge.invoke(
+						'getBrandWCPayRequest', {
+							"appId": res.appId, //鍏紬鍙稩D锛岀敱鍟嗘埛浼犲叆
+							"timeStamp": res.timeStamp, //鏃堕棿鎴筹紝鑷�1970骞翠互鏉ョ殑绉掓暟
+							"nonceStr": res.nonceStr, //闅忔満涓�
+							"package": res.package,
+							"signType": res.signType, //寰俊绛惧悕鏂瑰紡锛�
+							"paySign": res.paySign //寰俊绛惧悕
+						},
+						(res) => {
+							if (res.err_msg == "get_brand_wcpay_request:ok") {
+								// 浣跨敤浠ヤ笂鏂瑰紡鍒ゆ柇鍓嶇杩斿洖,寰俊鍥㈤槦閮戦噸鎻愮ず锛�
+								//res.err_msg灏嗗湪鐢ㄦ埛鏀粯鎴愬姛鍚庤繑鍥瀘k锛屼絾骞朵笉淇濊瘉瀹冪粷瀵瑰彲闈犮��
+								/*uni.navigateTo({
+									url: `/pages/pay/paySuccess?orderId=${this.orderId}&youHuiInfo=${JSON
+                      .stringify(this.youHuiInfo)}`
+								})*/
+							}
+						});
+				}, 200)
+			},
+			//鏀粯瀹濇敮浠�
+			aliPay(res) {
+				ap.tradePay({
+					tradeNO: res.tradeNO
+				}, (res) => {
+					if (res.resultCode == 9000) {
+						/*uni.navigateTo({
+							url: `/pages/pay/paySuccess?orderId=${this.orderId}&youHuiInfo=${JSON
+                .stringify(this.youHuiInfo)}`
+						})*/
+						// 鏀粯鎴愬姛
+					} else if (res.resultCode == 8000 || res.resultCode == 6001) {
+						// 姝e湪澶勭悊涓� || 鍙栨秷
+					} else {
+						// 鏀粯澶辫触
+					}
+				});
+			},
+			//閾惰鍗℃敮浠�
+			bankPay(e) {
+				uni.showLoading()
+				tlPay({
+					orderId: this.orderId,
+					payWay: 3,
+					bankCardId: this.bankCardId,
+					smscode: e,
+				}).then(res => {
+					uni.hideLoading()
+					uni.hideKeyboard()
+					this.codeShow = false
+					uni.navigateTo({
+						url: `/pages/pay/paySuccess?orderId=${this.orderId}&youHuiInfo=${JSON
+              .stringify(this.youHuiInfo)}`
+					})
+				}).catch(() => {
+					uni.hideLoading()
+				})
+			}
+		}
+	};
+</script>
+
+<style scoped lang="scss">
+	.page {
+		height: calc(100vh - 0px);
+		display: flex;
+		flex-direction: column;
+	}
+
+	.shop {
+		padding: 50rpx 64rpx;
+	}
+
+	.avg-img {
+		width: 94rpx;
+		height: 94rpx;
+		border-radius: 10rpx;
+		background-color: #ffffff;
+	}
+
+	.content {
+		border-radius: 40rpx 40rpx 0 0;
+	}
+
+	.money {
+		font-size: 40rpx;
+		color: #333;
+	}
+
+	.money-icon {
+		font-size: 70rpx;
+		// font-weight: bold;
+		margin-right: 20rpx;
+	}
+
+	.money-num {
+		font-size: 96rpx;
+		// font-weight: bold;
+	}
+
+	.pay-it {
+		position: absolute;
+		width: 686rpx;
+		height: 98rpx;
+		bottom: 0;
+		border-radius: 10rpx;
+		font-size: 34rpx;
+		color: #ffffff;
+		background-color: #de2d35;
+		margin: 32rpx;
+	}
+
+	.bank-card-ad {
+		padding-top: 50rpx;
+		background-image: url(~@/static/bank-card-ad1.png);
+		background-size: 100% auto;
+		background-position: top center;
+		background-repeat: no-repeat;
+	}
+
+	.pay-icon {
+		align-self: flex-start;
+		width: 48rpx;
+		margin-right: 20rpx;
+	}
+
+	.tag {
+		background-color: #F35656;
+		font-size: 20rpx;
+		color: #fff;
+		border-radius: 4rpx;
+		line-height: 1;
+		padding: 4rpx;
+	}
+
+	.tag-pain {
+		border: 1px solid #D31F28;
+		font-size: 22rpx;
+		color: #D31F28;
+		border-radius: 4rpx;
+		line-height: 1;
+		padding: 8rpx 4rpx;
+	}
+
+	.mask {
+		position: absolute;
+		width: 100%;
+		height: 100%;
+		left: 0;
+		bottom: 0;
+		z-index: 101;
+		background-color: rgba(0, 0, 0, 0);
+	}
+
+	@keyframes cursor-blinks {
+		0% {
+			opacity: 1;
+			display: block;
+		}
+
+		50% {
+			opacity: 0;
+			display: none;
+		}
+
+		100% {
+			opacity: 1;
+			display: block;
+		}
+	}
+
+	.cursor {
+		border-left: 1px solid transparent;
+		height: 80rpx;
+	}
+
+	.cursor-act {
+		border-left: 1px solid #333;
+		animation: cursor-blinks 1s infinite steps(1, start);
+	}
+
+	.reg-btn {
+		display: block;
+		margin-top: 30rpx;
+		width: 654rpx;
+		height: 198rpx;
+
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+
+	.u-font-money {
+		font-size: 60rpx;
+	}
+
+	.bankCard-list {
+		height: 50vh;
+		width: 750rpx;
+		box-sizing: border-box;
+
+		.pay-icon {
+			align-self: center;
+		}
+	}
+
+	.add-icon {
+		width: 50rpx;
+		height: 50rpx;
+		border-radius: 25rpx;
+		background: #ffc0c38f;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+
+	.shuka {
+		width: 678rpx;
+		height: 45rpx;
+		position: relative;
+		left: -10rpx;
+
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+
+	.btn {
+		/* position: fixed;
+  bottom: 100rpx; */
+		margin: 0 auto;
+		margin-top: 120rpx;
+		position: relative;
+		width: 680rpx;
+		height: 100rpx;
+	}
+
+	.wx-app {
+		position: absolute;
+		width: 680rpx;
+		height: 100rpx;
+	}
+</style>

--
Gitblit v1.9.1