From 87f34aa6e95d08d1b061bfa201813af34b677a1b Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期二, 23 七月 2024 14:07:42 +0800
Subject: [PATCH] feat(支付): 去除无用api
---
pay/scanpay.vue | 1339 ++++++++++++++++++++++++++++++---------------------------
1 files changed, 699 insertions(+), 640 deletions(-)
diff --git a/pay/scanpay.vue b/pay/scanpay.vue
index d4222fa..398e1d7 100644
--- a/pay/scanpay.vue
+++ b/pay/scanpay.vue
@@ -1,708 +1,767 @@
<!-- 鎵爜鏀粯 -->
<template>
- <view class="page">
- <u-loading-page :loading="loading"></u-loading-page>
- <block v-if="shopInfo.scanFlag==1">
- <view class="shop u-flex u-row-between">
- <view class="u-m-r-30">
- <view class="u-font-26 color-666 u-m-b-10">浠樻缁�</view>
- <view class="u-font-34 color-333">{{ shopInfo.shopName }}</view>
- </view>
- <u-image width="88rpx" height="88rpx" shape="circle" errorIcon="/static/store-logo.png" loadingIcon="/static/store-logo.png" :src="shopInfo.logoImage||'/static/store-logo.png'" bgColor="#fff"></u-image>
- </view>
- <view class="u-p-24 bg-fff u-m-32 u-br-10">
- <view class="u-flex u-row-between">
- <view class="u-font-28 color-666">閲戦</view>
- <view @click="showRemark=true" class="remark">娣诲姞澶囨敞</view>
- </view>
- <view class="u-p-v-20 u-flex u-col-bottom u-border-bottom u-relative money-box">
- <view class="money-icon color-333 lh-1">楼</view>
- <view class="u-flex-1 u-flex u-col-bottom u-m-l-10" style="height: 80rpx;">
- <view v-if="money" class="money-num lh-1">{{ money }}</view>
- <view :class="['cursor',{'cursor-act':!money&&bordShow}]"></view>
- <view v-if="!money" class="u-font-50 color-999 lh-1">璇疯緭鍏ラ噾棰�</view>
- <view :class="['cursor',{'cursor-act':money&&bordShow}]"></view>
- </view>
- <view class="mask" @click="showBord"></view>
- </view>
- <!-- <image v-if="isNew&&(this.payWay == 2&&!UNIONID)" @click="toRegister" class="reg-btn" src="/static/register-btn.png" mode=""></image>-->
- <view v-if="shopInfo.userCouponFlag==0" class="u-font-26 u-tips-color u-p-t-24">寰俊鎼滅储鎴栫洿鎺ョ偣鍑绘墦寮�
- <text style="color: #1E8BE0">銆愬唨浼橀偖銆�</text>
- 灏忕▼搴忥紝浜彈鏇村浼樻儬
- </view>
- </view>
- <block v-if="shopInfo.userCouponFlag==1">
- <view class="bg-fff u-m-32 u-br-10">
- <view class="u-flex u-p-24 u-border-bottom">
- <!-- <u-icon name="coupon-fill" size="60rpx" color="#D31F28"></u-icon>-->
- <view class="u-font-32 u-flex-1 u-m-h-16">浼樻儬鍒�</view>
- <view @click="showCoupon" class="u-flex">
- <view v-if="couponInfo.id" class="tag-pain">
- 婊{ parseFloat((couponInfo.thresholdValue / 100).toFixed(2)) }}鍏冨噺{{ parseFloat((couponInfo.discount / 100).toFixed(2)) }}鍏�
- </view>
- <view v-else class="u-font-28 lh-1 u-tips-color">璇烽�夋嫨</view>
- <u-icon class="u-m-l-10" name="arrow-right" color="#999" size="16"></u-icon>
- </view>
- </view>
- <view class="u-font-26 u-tips-color u-p-24">寰俊鎼滅储鎴栫洿鎺ョ偣鍑绘墦寮�
+ <view class="page">
+ <u-loading-page :loading="loading"></u-loading-page>
+ <block v-if="shopInfo.scanFlag==1">
+ <view class="shop u-flex u-row-between">
+ <view class="u-m-r-30">
+ <view class="u-font-26 color-666 u-m-b-10">浠樻缁�</view>
+ <view class="u-font-34 color-333">{{ shopInfo.shopName }}</view>
+ </view>
+ <u-image width="88rpx" height="88rpx" shape="circle" errorIcon="/static/store-logo.png" loadingIcon="/static/store-logo.png" :src="shopInfo.logoImage||'/static/store-logo.png'" bgColor="#fff"></u-image>
+ </view>
+ <view class="u-p-24 bg-fff u-m-32 u-br-10">
+ <view class="u-flex u-row-between">
+ <view class="u-font-28 color-666">閲戦</view>
+ <view @click="showRemark=true" class="remark">娣诲姞澶囨敞</view>
+ </view>
+ <view v-if="smoney" class="u-p-v-20 u-flex u-col-bottom u-border-bottom u-relative money-box">
+ <view class="money-icon color-333 lh-1">楼</view>
+ <view class="u-flex-1 u-flex u-col-bottom u-m-l-10" style="height: 80rpx;">
+ <view class="money-num lh-1">{{ smoney }}</view>
+ </view>
+ </view>
+ <view v-else class="u-p-v-20 u-flex u-col-bottom u-border-bottom u-relative money-box">
+ <view class="money-icon color-333 lh-1">楼</view>
+ <view class="u-flex-1 u-flex u-col-bottom u-m-l-10" style="height: 80rpx;">
+ <view v-if="money" class="money-num lh-1">{{ money }}</view>
+ <view :class="['cursor',{'cursor-act':!money&&bordShow}]"></view>
+ <view v-if="!money" class="u-font-50 color-999 lh-1">璇疯緭鍏ラ噾棰�</view>
+ <view :class="['cursor',{'cursor-act':money&&bordShow}]"></view>
+ </view>
+ <view class="mask" @click="showBord"></view>
+ </view>
+ <!-- <image v-if="isNew&&(this.payWay == 2&&!UNIONID)" @click="toRegister" class="reg-btn" src="/static/register-btn.png" mode=""></image>-->
+ <block v-if="shopInfo.userCouponFlag==0">
+ <view class="u-font-26 u-tips-color u-p-t-24">寰俊鎼滅储鎴栫洿鎺ョ偣鍑绘墦寮�
<text style="color: #1E8BE0">銆愬唨浼橀偖銆�</text>
灏忕▼搴忥紝浜彈鏇村浼樻儬
</view>
- </view>
- </block>
- <block v-if="shopInfo.userCouponFlag==1&&discount">
- <view class="u-m-32 u-br-10 bg-fff">
- <view class="u-p-24 u-flex u-row-between u-border-bottom">
- <view class="u-font-32 color-333">鎶垫墸閲戦</view>
- <view class="color-green">- {{ discount }}</view>
+ </block>
+
+ </view>
+ <block v-if="shopInfo.userCouponFlag==1">
+ <view class="bg-fff u-m-32 u-br-10">
+ <view class="u-flex u-p-24 u-border-bottom">
+ <!-- <u-icon name="coupon-fill" size="60rpx" color="#D31F28"></u-icon> -->
+ <view class="u-font-32 u-flex-1 u-m-h-16">浼樻儬鍒�</view>
+ <view @click="showCoupon" class="u-flex">
+ <view v-if="couponInfo.id" class="tag-pain">
+ 婊{ parseFloat((couponInfo.thresholdValue / 100).toFixed(2)) }}鍏冨噺{{ parseFloat((couponInfo.discount / 100).toFixed(2)) }}鍏�
+ </view>
+ <view v-else class="u-font-28 lh-1 u-tips-color">璇烽�夋嫨</view>
+ <u-icon class="u-m-l-10" name="arrow-right" color="#999" size="16"></u-icon>
+ </view>
+ </view>
+ <view>
+
+ <wx-open-launch-weapp
+ id="launch-btn"
+ appid="wx47b3b5ca64bc7d5d"
+ path="pages/index/index"
+ >
+ <script type="text/wxtag-template">
+ <style>.btn { padding: 12px }</style>
+ <button class="btn">鎵撳紑灏忕▼搴�</button>
+ </script>
+ </wx-open-launch-weapp>
</view>
- <view class="u-p-24 u-flex u-row-between u-br-10 bg-fff">
- <view class="u-font-32 color-333">瀹炰粯閲戦</view>
- <view class="color-red">
- <text class="u-font-26 u-m-r-6">楼</text>
- <text class="u-font-34">{{ payMoney }}</text>
- </view>
- </view>
- </view>
- </block>
- <button class="pay-it" @click="pay">浠樻</button>
- <!-- 鏁板瓧閿洏 -->
- <u-popup zIndex="500" :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 zIndex="800" mode="bottom" :closeable="true" :show="couponShow" @close="couponShow = false" :round="10">
- <view class="u-font-32 color-333 u-text-center u-p-t-30">浼樻儬鍒�</view>
- <view v-if="checkCoupon.id" class="choose-coupon">
- 宸查�夋嫨浼樻儬鍒�1寮狅紝鍏辨姷鎵o骏{{ parseFloat((checkCoupon.discount / 100).toFixed(2)) }}
- </view>
- <scroll-view scroll-y class="u-p-30 coupon-list">
- <view @click="clickCoupon(item)" class="u-m-b-24 u-flex coupon" v-for="(item, index) in couponList" :key="index">
- <view style="color: #D31F28;" class="u-p-h-28">
- <view class="font-bold">
- <text class="u-font-36">锟�</text>
- <text class="money">{{ parseFloat(item.discount / 100) }}</text>
- </view>
- <view class="u-font-24 u-m-t-20">婊{ parseFloat(item.thresholdValue / 100) }}鍏冧娇鐢�</view>
- </view>
- <view class="butt"></view>
- <view class="u-p-30 u-flex-1 u-flex">
- <view class="u-flex-1">
- <view class="u-font-28 color-333 u-line-2">{{ item.name }}</view>
- <view class="u-font-22 color-999 u-m-t-20">
- 鏈夋晥鏈熻嚦锛歿{ $u.timeFormat(item.outTime, 'yyyy-mm-dd hh:MM') }}
- </view>
- </view>
- <u-icon v-if="item.id==checkCoupon.id" name="checkmark-circle-fill" color="#D31F28" size="20">
- </u-icon>
- </view>
- </view>
- </scroll-view>
- <view @click="getCoupon" class="coupon-btn">纭畾</view>
- </u-popup>
- <u-modal showCancelButton :show="showRemark" title="澶囨敞" confirmColor="#D31F28" @close="showRemark = false" @cancel="showRemark = false" @confirm="showRemark = false">
- <u--textarea v-model="buyerNote" placeholder="璇疯緭鍏ュ娉ㄥ唴瀹�" count></u--textarea>
- </u-modal>
- </block>
- <view v-if="shopInfo.scanFlag==0" class="empty-box">
- <image src="/static/empty.png" class="empty"></image>
- <view class="tips">{{tips}}</view>
- <view @click="clickDone" class="clickDone">鍏抽棴</view>
- </view>
- </view>
+ <view class="u-font-26 u-tips-color u-p-24">寰俊鎼滅储鎴栫洿鎺ョ偣鍑绘墦寮�
+ <text style="color: #1E8BE0">銆愬唨浼橀偖銆�</text>
+ 灏忕▼搴忥紝浜彈鏇村浼樻儬
+ </view>
+ </view>
+ </block>
+ <block v-if="shopInfo.userCouponFlag==1&&discount">
+ <view class="u-m-32 u-br-10 bg-fff">
+ <view class="u-p-24 u-flex u-row-between u-border-bottom">
+ <view class="u-font-32 color-333">鎶垫墸閲戦</view>
+ <view class="color-green">- {{ discount }}</view>
+ </view>
+ <view class="u-p-24 u-flex u-row-between u-br-10 bg-fff">
+ <view class="u-font-32 color-333">瀹炰粯閲戦</view>
+ <view class="color-red">
+ <text class="u-font-26 u-m-r-6">楼</text>
+ <text class="u-font-34">{{ payMoney }}</text>
+ </view>
+ </view>
+ </view>
+ </block>
+ <button class="pay-it" @click="pay">浠樻</button>
+ <!-- 鏁板瓧閿洏 -->
+ <u-popup zIndex="500" :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 mode="bottom" :closeable="true" :show="couponShow" @close="couponShow = false" :round="10">
+ <view class="u-font-32 color-333 u-text-center u-p-t-30">浼樻儬鍒�</view>
+ <view v-if="checkCoupon.id" class="choose-coupon">
+ 宸查�夋嫨浼樻儬鍒�1寮狅紝鍏辨姷鎵o骏{{ parseFloat((checkCoupon.discount / 100).toFixed(2)) }}
+ </view>
+ <scroll-view scroll-y class="u-p-30 coupon-list">
+ <view @click="clickCoupon(item)" class="u-m-b-24 u-flex coupon" v-for="(item, index) in couponList" :key="index">
+ <view style="color: #D31F28;" class="u-p-h-28">
+ <view class="font-bold">
+ <text class="u-font-36">锟�</text>
+ <text class="money">{{ parseFloat(item.discount / 100) }}</text>
+ </view>
+ <view class="u-font-24 u-m-t-20">婊{ parseFloat(item.thresholdValue / 100) }}鍏冧娇鐢�</view>
+ </view>
+ <view class="butt"></view>
+ <view class="u-p-30 u-flex-1 u-flex">
+ <view class="u-flex-1">
+ <view class="u-font-28 color-333 u-line-2">{{ item.name }}</view>
+ <view class="u-font-22 color-999 u-m-t-20">
+ 鏈夋晥鏈熻嚦锛歿{ $u.timeFormat(item.outTime, 'yyyy-mm-dd hh:MM') }}
+ </view>
+ </view>
+ <u-icon v-if="item.id==checkCoupon.id" name="checkmark-circle-fill" color="#D31F28" size="20">
+ </u-icon>
+ </view>
+ </view>
+ </scroll-view>
+ <view @click="getCoupon" class="coupon-btn">纭畾</view>
+ </u-popup>
+ <u-modal showCancelButton :show="showRemark" title="澶囨敞" confirmColor="#D31F28" @close="showRemark = false" @cancel="showRemark = false" @confirm="showRemark = false">
+ <u--textarea v-model="buyerNote" placeholder="璇疯緭鍏ュ娉ㄥ唴瀹�" count></u--textarea>
+ </u-modal>
+ </block>
+ <view v-if="shopInfo.scanFlag==0" class="empty-box">
+ <image src="/static/empty.png" class="empty"></image>
+ <view class="tips">{{tips}}</view>
+ <view @click="clickDone" class="clickDone">鍏抽棴</view>
+ </view>
+ </view>
</template>
<script>
-import {
- config,
- ACCESSTOKEN
-} from 'common/config.js';
-import {
- queryShop,
- userLogin,
- queryUseSweepPayCoupon,
- closeOrder,
- saveOrder,
-} from 'common/api/index'
+ import {
+ config,
+ ACCESSTOKEN
+ } from 'common/config.js';
+ import {
+ queryShop,
+ userLogin,
+ queryUseSweepPayCoupon,
+ getWechatConfigInfo,
+ closeOrder,
+ saveOrder,
+ } from 'common/api/index'
-export default {
- data() {
- return {
- tips: '璇ュ晢鎴锋殏鏈紑閫氭敮浠樺姛鑳�',
- loading: true,
- remark: '',
- buyerNote: '',
- showRemark: false,
- UNIONID: null,
- payWay: this.$utils.getPlat(),
- cid: '',
- bordShow: true, // 鏄剧ず閿洏
- shopInfo: {
- cusid: '',
- shopName: '',
- logoImage: '',
- scanFlag: -1,
- useScoreFlag: -1, //鍟嗛摵鏄惁鍙敤绉垎 0鍚� 1鏄�
- userCouponFlag: -1, //鍟嗛摵鏄惁鍙敤浼樻儬鍒� 0鍚� 1鏄�
- },
- money: '', // 閲戦
- token: null,
- isNew: false, // 鏄惁鏂扮敤鎴凤紝鏂扮敤鎴锋煡璇笉鍒扮Н鍒嗗拰閾惰鍗�
- canReset: false,
- couponShow: false, // 浼樻儬鍒稿脊绐�
- couponList: [], // 浼樻儬鍒�
- couponInfo: {
- id: '',
- discount: 0,
- thresholdValue: 0
- }, // 浼樻儬鍒稿唴瀹�
- checkCoupon: {
+ import wx from 'weixin-js-sdk'; // 浣跨敤js-sdk
+
+ export default {
+ data() {
+ return {
+ smoney: '',
+ tips: '璇ュ晢鎴锋殏鏈紑閫氭敮浠樺姛鑳�',
+ loading: false,
+ remark: '',
+ buyerNote: '',
+ showRemark: false,
+ UNIONID: null,
+ payWay: this.$utils.getPlat(),
+ cid: '',
+ bordShow: false, // 鏄剧ず閿洏
+ shopInfo: {
+ cusid: '',
+ shopName: '',
+ logoImage: '',
+ scanFlag: -1,
+ useScoreFlag: -1, //鍟嗛摵鏄惁鍙敤绉垎 0鍚� 1鏄�
+ userCouponFlag: -1, //鍟嗛摵鏄惁鍙敤浼樻儬鍒� 0鍚� 1鏄�
+ },
+ money: '', // 閲戦
+ token: null,
+ isNew: false, // 鏄惁鏂扮敤鎴凤紝鏂扮敤鎴锋煡璇笉鍒扮Н鍒嗗拰閾惰鍗�
+ canReset: false,
+ couponShow: false, // 浼樻儬鍒稿脊绐�
+ couponList: [], // 浼樻儬鍒�
+ couponInfo: {
+ id: '',
+ discount: 0,
+ thresholdValue: 0
+ }, // 浼樻儬鍒稿唴瀹�
+ checkCoupon: {
id: null,
discount: 0,
thresholdValue: 0
},
- };
- },
- computed: {
- discount() {
- let num = 0;
- num = (this.couponInfo.discount / 100).toFixed(2);
- return parseFloat(num);
- },
- payMoney() {
- let num = 0;
- num = Number((this.money || 0) * 100) - this.couponInfo.discount;
- num = num > 0 ? (num / 100).toFixed(2) : '0.00';
- return parseFloat(num);
- }
- },
- onLoad(opt) {
- this.isNew = uni.getStorageSync('IS_NEW')
- if (opt.cid) {
- this.cid = opt.cid
- this.init()
- }
- if (opt.code || opt.auth_code) {
- let code = opt.code
- if (this.payWay == 5) {
- code = opt.auth_code
+ };
+ },
+ computed: {
+ discount() {
+ let num = 0;
+ num = (this.couponInfo.discount / 100).toFixed(2);
+ return parseFloat(num);
+ },
+ payMoney() {
+ let num = 0;
+ num = Number((this.money || 0) * 100) - this.couponInfo.discount;
+ num = num > 0 ? (num / 100).toFixed(2) : '0.00';
+ return parseFloat(num);
+ }
+ },
+ onLoad(opt) {
+ this.isNew = uni.getStorageSync('IS_NEW')
+ if (opt.smoney) {
+ this.smoney = opt.smoney
+ this.money = opt.smoney
+ }else{
+ this.bordShow = true
}
- userLogin({
- platform: this.payWay,
- params: {
- code
+ if (opt.cid) {
+ this.cid = opt.cid
+ this.init()
+ }
+ if (opt.code || opt.auth_code) {
+ let code = opt.code
+ if (this.payWay == 5) {
+ code = opt.auth_code
+ }
+ const cd = uni.getStorageSync('cd')
+ if(code===cd){
+ return
}
- }).then(res => {
- this.getToken(res)
- })
- }
+ uni.setStorageSync('cd',code)
+ userLogin({
+ platform: this.payWay,
+ params: {
+ code
+ }
+ }).then(res => {
+ this.getToken(res)
+ })
+ }
- },
- methods: {
- clickDone() {
- let browser = navigator.userAgent.toLowerCase();
- if (browser.match(/Alipay/i) == "alipay") {
- //杩欎釜鍙互鍏抽棴瀹夊崜绯荤粺鐨勬墜鏈�
- document.addEventListener("AlipayJSBridgeReady", function () {
- AlipayJSBridge.call("closeWindow");
- },
- false
- );
- //杩欎釜鍙互鍏抽棴ios绯荤粺鐨勬墜鏈�
- AlipayJSBridge.call('closeWebview'); //鏀粯瀹�
- } else if (browser.match(/MicroMessenger/i) == "micromessenger") {
- //杩欎釜鍙互鍏抽棴瀹夊崜绯荤粺鐨勬墜鏈�
- document.addEventListener("WeixinJSBridgeReady", function () {
- WeixinJSBridge.call("closeWindow");
- },
- false
- );
- //杩欎釜鍙互鍏抽棴ios绯荤粺鐨勬墜鏈�
- WeixinJSBridge.call("closeWindow");
- } else {
- window.opener = null; //濡傛灉娌℃湁杩欒鍜屼笅闈㈢殑涓�琛屽垯浼氬嚭鐜颁笂闈㈢殑绗簩涓闂銆�
- window.open(' ', '_self', ' ');
- window.close()
- }
- },
- getToken(res) {
- this.token = res.token
- if (res.openid) {
- uni.setStorageSync('OPENID' + this.payWay, res.token)
- }
- if (res.unionid) {
- uni.setStorageSync('UNIONID' + this.payWay, res.token)
- }
- uni.setStorageSync(ACCESSTOKEN, res.token)
- uni.setStorageSync('IS_NEW', res.isNew)
- this.isNew = res.isNew
- if (!res.isNew) {
- this.showCoupon()
- }
- },
- toRegister() {
- if (this.UNIONID) {
- uni.navigateTo({
- url: '/pay/register?cid=' + this.cid
- })
- }
- if (this.payWay == 2) {
- const redirect_uri = encodeURIComponent(`${config.webURL}/pay/scanpay?cid=${opt.query.cid}`)
- 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`
- }
+ },
+ methods: {
+ clickDone() {
+ let browser = navigator.userAgent.toLowerCase();
+ if (browser.match(/Alipay/i) == "alipay") {
+ //杩欎釜鍙互鍏抽棴瀹夊崜绯荤粺鐨勬墜鏈�
+ document.addEventListener("AlipayJSBridgeReady", function() {
+ AlipayJSBridge.call("closeWindow");
+ },
+ false
+ );
+ //杩欎釜鍙互鍏抽棴ios绯荤粺鐨勬墜鏈�
+ AlipayJSBridge.call('closeWebview'); //鏀粯瀹�
+ } else if (browser.match(/MicroMessenger/i) == "micromessenger") {
+ //杩欎釜鍙互鍏抽棴瀹夊崜绯荤粺鐨勬墜鏈�
+ document.addEventListener("WeixinJSBridgeReady", function() {
+ WeixinJSBridge.call("closeWindow");
+ },
+ false
+ );
+ //杩欎釜鍙互鍏抽棴ios绯荤粺鐨勬墜鏈�
+ WeixinJSBridge.call("closeWindow");
+ } else {
+ window.opener = null; //濡傛灉娌℃湁杩欒鍜屼笅闈㈢殑涓�琛屽垯浼氬嚭鐜颁笂闈㈢殑绗簩涓闂銆�
+ window.open(' ', '_self', ' ');
+ window.close()
+ }
+ },
+ getToken(res) {
+ this.token = res.token
+ if (res.openid) {
+ uni.setStorageSync('OPENID' + this.payWay, res.token)
+ }
+ if (res.unionid) {
+ uni.setStorageSync('UNIONID' + this.payWay, res.token)
+ }
+ uni.setStorageSync(ACCESSTOKEN, res.token)
+ uni.setStorageSync('IS_NEW', res.isNew)
+ this.isNew = res.isNew
+ if (!res.isNew) {
+ this.showCoupon()
+ }
+ },
+ toRegister() {
+ if (this.UNIONID) {
+ uni.navigateTo({
+ url: '/pay/register?cid=' + this.cid
+ })
+ }
+ if (this.payWay == 2) {
+ const redirect_uri = encodeURIComponent(`${config.webURL}/pay/scanpay?cid=${opt.query.cid}`)
+ 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`
+ }
- },
- // 鏇存柊閲戦
- changeMoney(str) {
- this.money = str;
- },
- // 灞曠ず閿洏
- showBord() {
- this.bordShow = true;
- },
- init() {
- let timer = setTimeout(() => {
- this.shopInfo.scanFlag = 0
- this.tips = '褰撳墠鐢ㄦ埛杩囧锛岃绋嶅悗閲嶈瘯锝瀇锝�'
- this.loading = false
- }, 2000)
- //鑾峰彇鍟嗛摵淇℃伅
- queryShop({
- params: {
- cid: this.cid
- }
- }).then(res => {
- clearTimeout(timer)
- this.loading = false
- if (!uni.$u.test.isEmpty(res.logoImage)) {
- res.logoImage = config.baseURL + res.logoImage
- }
- this.shopInfo = res
- }).catch(()=>{
- clearTimeout(timer)
- this.shopInfo.scanFlag = 0
- this.tips = '褰撳墠鐢ㄦ埛杩囧锛岃绋嶅悗閲嶈瘯锝瀇锝�'
- this.loading = false
- })
- },
- // 鑾峰彇浼氬憳鐩稿叧淇℃伅
- showCoupon() {
- //鑾峰彇鐢ㄦ埛浼樻儬鍒�
- queryUseSweepPayCoupon({
- params: {
- cusid: this.shopInfo.cusid,
- cid: this.cid,
- money: Number(this.money * 100),
- }
- }).then(res => {
- this.couponList = res
- this.couponShow = true
- })
- },
- //閫夋嫨浼樻儬鍒�
- clickCoupon(item) {
- if (this.checkCoupon.id == item.id) {
- this.checkCoupon = {
- id: '',
- discount: 0,
- thresholdValue: 0
- }
- } else {
- this.checkCoupon = item
- }
- },
- //纭浼樻儬鍒�
- getCoupon() {
- // item 涓轰紭鎯犲埜淇℃伅
- this.couponInfo = this.checkCoupon;
- this.couponShow = false;
- },
- //纭鏀粯
- pay() {
- if (uni.$u.test.isEmpty(this.money)) {
- uni.$u.toast('璇疯緭鍏ラ噾棰濓紒')
- return
- }
- this.bordShow = false
- // 閲戦 this.money
- uni.showLoading()
- const params = {
- money: Number(this.money * 100),
- shopId: this.shopInfo.id,
- cid: this.cid,
- payWay: this.payWay,
- buyerNote: this.buyerNote,
- score: 0,
- couponDetailId: this.couponInfo.id
- }
- //鐢熸垚璁㈠崟
- saveOrder(params).then(res => {
- uni.hideLoading()
- try {
- this.orderId = res.orderId
- res.youHuiInfo.shopName = this.shopInfo.shopName
- this.youHuiInfo = res.youHuiInfo
- if (this.payWay == 2) {
- this.wxPay(res.paymentData)
- }
- if (this.payWay == 5) {
- this.aliPay(res.paymentData)
- }
- } catch (e) {
- //TODO handle the exception
- console.error(e);
- }
- }).catch(() => {
- uni.hideLoading()
- })
- },
- // 寰俊鏀粯
- wxPay(res) {
- 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: `/pay/paySuccess?orderId=${this.orderId}&youHuiInfo=${JSON.stringify(this.youHuiInfo)}`
- })*/
- } else {
- this.closeOrder()
- }
+ },
+ // 鏇存柊閲戦
+ changeMoney(str) {
+ this.money = str;
+ },
+ // 灞曠ず閿洏
+ showBord() {
+ this.bordShow = true;
+ },
+ init() {
+ this.loading = true
+ let timer = setTimeout(() => {
+ this.shopInfo.scanFlag = 0
+ this.tips = '褰撳墠鐢ㄦ埛杩囧锛岃绋嶅悗閲嶈瘯锝瀇锝�'
+ this.loading = false
+ }, 2000)
+ //鑾峰彇鍟嗛摵淇℃伅
+ queryShop({
+ params: {
+ cid: this.cid
+ }
+ }).then(res => {
+ clearTimeout(timer)
+ this.loading = false
+ if (!uni.$u.test.isEmpty(res.logoImage)) {
+ res.logoImage = config.baseURL + res.logoImage
+ }
+ this.shopInfo = res
+ }).catch(() => {
+ clearTimeout(timer)
+ this.shopInfo.scanFlag = 0
+ this.tips = '褰撳墠鐢ㄦ埛杩囧锛岃绋嶅悗閲嶈瘯锝瀇锝�'
+ this.loading = false
+ })
+
+ if (this.payWay == 2) {
+ const uri = encodeURIComponent(window.location)
+ getWechatConfigInfo({
+ url: uri
+ }).then(res => {
+ wx.config({
+ debug: false, // 寮�鍚皟璇曟ā寮�
+ appId: res.appId, // 蹇呭~锛屽叕浼楀彿鐨勫敮涓�鏍囪瘑
+ timestamp: res.timestamp, // 蹇呭~锛岀敓鎴愮鍚嶇殑鏃堕棿鎴�
+ nonceStr: res.nonceStr, // 蹇呭~锛岀敓鎴愮鍚嶇殑闅忔満涓�
+ signature: res.signature, // 蹇呭~锛岀鍚�
+ openTagList: ['wx-open-launch-weapp'] //鍙�夛紝闇�瑕佷娇鐢ㄧ殑寮�鏀炬爣绛惧垪琛�
});
- }, 200)
- },
- //鏀粯瀹濇敮浠�
- aliPay(res) {
- ap.tradePay({
- tradeNO: res.tradeNO
- }, (res) => {
- if (res.resultCode == 9000) {
- uni.navigateTo({
- url: `/pay/paySuccess?orderId=${this.orderId}&youHuiInfo=${JSON
- .stringify(this.youHuiInfo)}`
+ wx.ready(function () {
+ wx.hideAllNonBaseMenuItem();
+ })
})
- // 鏀粯鎴愬姛
- } else if (res.resultCode == 8000) {
- // 姝e湪澶勭悊涓� || 鍙栨秷
- } else if (res.resultCode == 6001) {
- // 鍙栨秷
- this.closeOrder()
- } else {
- this.closeOrder()
- // 鏀粯澶辫触
}
- });
- },
- closeOrder() {
- closeOrder({
- id: this.orderId,
- }).then(res => {
+ },
+ // 鑾峰彇浼氬憳鐩稿叧淇℃伅
+ showCoupon() {
+ //鑾峰彇鐢ㄦ埛浼樻儬鍒�
+ queryUseSweepPayCoupon({
+ params: {
+ cusid: this.shopInfo.cusid,
+ cid: this.cid,
+ money: Number(this.money * 100),
+ }
+ }).then(res => {
+ this.couponList = res
+ this.couponShow = true
})
- }
- }
-};
+ },
+ //閫夋嫨浼樻儬鍒�
+ clickCoupon(item) {
+ if (this.checkCoupon.id == item.id) {
+ this.checkCoupon = {
+ id: '',
+ discount: 0,
+ thresholdValue: 0
+ }
+ } else {
+ this.checkCoupon = item
+ }
+ },
+ //纭浼樻儬鍒�
+ getCoupon() {
+ // item 涓轰紭鎯犲埜淇℃伅
+ this.couponInfo = this.checkCoupon;
+ this.couponShow = false;
+ },
+ //纭鏀粯
+ pay() {
+ if (uni.$u.test.isEmpty(this.money)) {
+ uni.$u.toast('璇疯緭鍏ラ噾棰濓紒')
+ return
+ }
+ this.bordShow = false
+ // 閲戦 this.money
+ uni.showLoading()
+ const params = {
+ money: Number(this.money * 100),
+ shopId: this.shopInfo.id,
+ cid: this.cid,
+ payWay: this.payWay,
+ buyerNote: this.buyerNote,
+ score: 0,
+ couponDetailId: this.couponInfo.id
+ }
+ //鐢熸垚璁㈠崟
+ saveOrder(params).then(res => {
+ uni.hideLoading()
+ try {
+ this.orderId = res.orderId
+ res.youHuiInfo.shopName = this.shopInfo.shopName
+ this.youHuiInfo = res.youHuiInfo
+ if (this.payWay == 2) {
+ this.wxPay(res.paymentData)
+ }
+ if (this.payWay == 5) {
+ this.aliPay(res.paymentData)
+ }
+ } catch (e) {
+ //TODO handle the exception
+ console.error(e);
+ }
+ }).catch(() => {
+ uni.hideLoading()
+ })
+ },
+ // 寰俊鏀粯
+ wxPay(res) {
+ 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: `/pay/paySuccess?orderId=${this.orderId}&youHuiInfo=${JSON.stringify(this.youHuiInfo)}`
+ })*/
+ } else {
+ this.closeOrder()
+ }
+ });
+ }, 200)
+ },
+ //鏀粯瀹濇敮浠�
+ aliPay(res) {
+ ap.tradePay({
+ tradeNO: res.tradeNO
+ }, (res) => {
+ if (res.resultCode == 9000) {
+ uni.navigateTo({
+ url: `/pay/paySuccess?orderId=${this.orderId}&youHuiInfo=${JSON
+ .stringify(this.youHuiInfo)}`
+ })
+ // 鏀粯鎴愬姛
+ } else if (res.resultCode == 8000) {
+ // 姝e湪澶勭悊涓� || 鍙栨秷
+ } else if (res.resultCode == 6001) {
+ // 鍙栨秷
+ this.closeOrder()
+ } else {
+ this.closeOrder()
+ // 鏀粯澶辫触
+ }
+ });
+ },
+ closeOrder() {
+ closeOrder({
+ id: this.orderId,
+ }).then(res => {})
+ }
+ }
+ };
</script>
<style scoped lang="scss">
-.page {
- height: calc(100vh - 0px);
-}
+ .page {
+ height: calc(100vh - 0px);
+ background-color: #EDEDED;
+ border-top: 1px solid #EDEDED;
+ box-sizing: border-box;
+ }
-.shop {
- padding: 50rpx 32rpx 10px;
-}
+ .shop {
+ padding: 50rpx 32rpx 10px;
+ }
-.avg-img {
- width: 88rpx;
- height: 88rpx;
- border-radius: 44rpx;
- background-color: #ffffff;
-}
+ .avg-img {
+ width: 88rpx;
+ height: 88rpx;
+ border-radius: 44rpx;
+ background-color: #ffffff;
+ }
-.money {
- font-size: 40rpx;
- color: #333;
-}
+ .money {
+ font-size: 40rpx;
+ color: #333;
+ }
-.money-icon {
- position: relative;
- bottom: 6rpx;
- font-size: 42rpx;
- color: #666;
- margin-right: 10rpx;
-}
+ .money-icon {
+ position: relative;
+ bottom: 6rpx;
+ font-size: 42rpx;
+ color: #666;
+ margin-right: 10rpx;
+ }
-.money-num {
- font-size: 72rpx;
-}
+ .money-num {
+ font-size: 72rpx;
+ }
-.pay-it {
- position: absolute;
- width: 686rpx;
- height: 98rpx;
- bottom: 0;
- border-radius: 10rpx;
- font-size: 34rpx;
- color: #ffffff;
- background-color: #de2d35;
- margin: 32rpx;
-}
+ .pay-it {
+ position: absolute;
+ width: 686rpx;
+ height: 98rpx;
+ bottom: 0;
+ border-radius: 10rpx;
+ font-size: 34rpx;
+ color: #ffffff;
+ background-color: #de2d35;
+ margin: 32rpx;
+ }
-.item-icon {
- width: 38rpx;
- height: 38rpx;
-}
+ .item-icon {
+ width: 38rpx;
+ height: 38rpx;
+ }
-.pay-icon {
- align-self: flex-start;
- width: 48rpx;
- height: 48rpx;
- margin-right: 20rpx;
-}
+ .pay-icon {
+ align-self: flex-start;
+ width: 48rpx;
+ height: 48rpx;
+ margin-right: 20rpx;
+ }
-.tag {
- background-color: #F35656;
- font-size: 20rpx;
- color: #fff;
- border-radius: 4rpx;
- line-height: 1;
- padding: 4rpx;
-}
+ .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;
-}
+ .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);
-}
+ .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;
- }
+ @keyframes cursor-blinks {
+ 0% {
+ opacity: 1;
+ display: block;
+ }
- 50% {
- opacity: 0;
- display: block;
- }
+ 50% {
+ opacity: 0;
+ display: block;
+ }
- 100% {
- opacity: 1;
- display: block;
- }
-}
+ 100% {
+ opacity: 1;
+ display: block;
+ }
+ }
-.cursor {
- width: 1px;
- height: 70rpx;
-}
+ .cursor {
+ width: 1px;
+ height: 70rpx;
+ }
-.cursor-act {
- width: 1px;
- background-color: #999;
- animation: cursor-blinks 1s infinite steps(1, start);
-}
+ .cursor-act {
+ width: 1px;
+ background-color: #999;
+ animation: cursor-blinks 1s infinite steps(1, start);
+ }
-.reg-btn {
- display: block;
- margin-top: 30rpx;
- width: 654rpx;
- height: 198rpx;
+ .reg-btn {
+ display: block;
+ margin-top: 30rpx;
+ width: 654rpx;
+ height: 198rpx;
- image {
- width: 100%;
- height: 100%;
- }
-}
+ image {
+ width: 100%;
+ height: 100%;
+ }
+ }
-.u-font-money {
- font-size: 60rpx;
-}
+ .u-font-money {
+ font-size: 60rpx;
+ }
-.bankCard-list {
- height: 50vh;
- width: 750rpx;
- box-sizing: border-box;
+ .bankCard-list {
+ height: 50vh;
+ width: 750rpx;
+ box-sizing: border-box;
- .pay-icon {
- align-self: center;
- }
-}
+ .pay-icon {
+ align-self: center;
+ }
+ }
-.add-icon {
- width: 50rpx;
- height: 50rpx;
- border-radius: 25rpx;
- background: #ffc0c38f;
- display: flex;
- align-items: center;
- justify-content: 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;
+ .shuka {
+ width: 678rpx;
+ height: 45rpx;
+ position: relative;
+ left: -10rpx;
- image {
- width: 100%;
- height: 100%;
- }
-}
+ image {
+ width: 100%;
+ height: 100%;
+ }
+ }
-.btn {
- margin: 120rpx auto 0;
- position: relative;
- width: 680rpx;
- height: 100rpx;
-}
+ .btn {
+ margin: 120rpx auto 0;
+ position: relative;
+ width: 680rpx;
+ height: 100rpx;
+ }
-.wx-app {
- position: absolute;
- width: 680rpx;
- height: 100rpx;
-}
+ .wx-app {
+ position: absolute;
+ width: 680rpx;
+ height: 100rpx;
+ }
-.coupon {
- background-color: rgba(255, 241, 241, 0.47);
- height: 171rpx;
- border: solid 1rpx #f85d64;
- border-radius: 10rpx;
- position: relative;
- overflow: hidden;
-}
+ .coupon {
+ background-color: rgba(255, 241, 241, 0.47);
+ height: 171rpx;
+ border: solid 1rpx #f85d64;
+ border-radius: 10rpx;
+ position: relative;
+ overflow: hidden;
+ }
-.choose-coupon {
- margin: 32rpx 32rpx 0;
- border-radius: 10rpx;
- background: #fff1f1;
- padding: 26rpx 16rpx;
- color: #D31F28;
- font-size: 28rpx;
-}
+ .choose-coupon {
+ margin: 32rpx 32rpx 0;
+ border-radius: 10rpx;
+ background: #fff1f1;
+ padding: 26rpx 16rpx;
+ color: #D31F28;
+ font-size: 28rpx;
+ }
-.coupon-list {
- box-sizing: border-box;
- height: calc(50vh - 44px);
-}
+ .coupon-list {
+ box-sizing: border-box;
+ height: calc(50vh - 44px);
+ }
-.butt {
- width: 1rpx;
- height: 100%;
- position: relative;
- z-index: 9;
- border-left: 1rpx dashed #f85d64;
-}
+ .butt {
+ width: 1rpx;
+ height: 100%;
+ position: relative;
+ z-index: 9;
+ border-left: 1rpx dashed #f85d64;
+ }
-.butt:before {
- z-index: 10;
- box-sizing: border-box;
- position: absolute;
- content: "";
- width: 24rpx;
- height: 12rpx;
- border-bottom: 1rpx solid #f85d64;
- border-right: 1rpx solid #f85d64;
- border-left: 1rpx solid #f85d64;
- border-radius: 0 0 24rpx 24rpx;
- left: -12rpx;
- background-color: #ffffff;
-}
+ .butt:before {
+ z-index: 10;
+ box-sizing: border-box;
+ position: absolute;
+ content: "";
+ width: 24rpx;
+ height: 12rpx;
+ border-bottom: 1rpx solid #f85d64;
+ border-right: 1rpx solid #f85d64;
+ border-left: 1rpx solid #f85d64;
+ border-radius: 0 0 24rpx 24rpx;
+ left: -12rpx;
+ background-color: #ffffff;
+ }
-.butt:after {
- box-sizing: border-box;
- position: absolute;
- content: "";
- width: 24rpx;
- height: 12rpx;
- bottom: 0;
- border-bottom: 1rpx solid #ffff;
- border-right: 1rpx solid #f85d64;
- border-left: 1rpx solid #f85d64;
- border-top: 1rpx solid #f85d64;
- border-radius: 24rpx 24rpx 0 0;
- left: -12rpx;
- background-color: #ffffff;
-}
+ .butt:after {
+ box-sizing: border-box;
+ position: absolute;
+ content: "";
+ width: 24rpx;
+ height: 12rpx;
+ bottom: 0;
+ border-bottom: 1rpx solid #ffff;
+ border-right: 1rpx solid #f85d64;
+ border-left: 1rpx solid #f85d64;
+ border-top: 1rpx solid #f85d64;
+ border-radius: 24rpx 24rpx 0 0;
+ left: -12rpx;
+ background-color: #ffffff;
+ }
-.remark {
- color: #1E8BE0
-}
+ .remark {
+ color: #1E8BE0
+ }
-.lh-1 {
- line-height: 1;
-}
+ .lh-1 {
+ line-height: 1;
+ }
-.coupon-btn {
- margin: 0 30rpx 30rpx;
- height: 98rpx;
- border-radius: 10rpx;
- background-color: #D31F28;
- font-size: 34rpx;
- color: #fff;
- line-height: 98rpx;
- text-align: center;
-}
+ .coupon-btn {
+ margin: 0 30rpx 30rpx;
+ height: 98rpx;
+ border-radius: 10rpx;
+ background-color: #D31F28;
+ font-size: 34rpx;
+ color: #fff;
+ line-height: 98rpx;
+ text-align: center;
+ }
-.empty-box {
- height: calc(80vh - 64rpx);
- margin: 32rpx;
- background-color: #fff;
- border-radius: 10rpx;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
+ .empty-box {
+ height: calc(80vh - 64rpx);
+ margin: 32rpx;
+ background-color: #fff;
+ border-radius: 10rpx;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
- .tips {
- font-size: 28rpx;
- color: #999;
- margin: 60rpx 0;
- }
+ .tips {
+ font-size: 28rpx;
+ color: #999;
+ margin: 60rpx 0;
+ }
- .empty {
- width: 291rpx;
- height: 302rpx;
- }
+ .empty {
+ width: 291rpx;
+ height: 302rpx;
+ }
- .clickDone {
- font-size: 34rpx;
- color: #fff;
- width: 331rpx;
- height: 88rpx;
- display: flex;
- align-items: center;
- justify-content: center;
- border-radius: 61rpx;
- background: linear-gradient(0deg, #D31F28 0%, #D31F28 100%), linear-gradient(270deg, #F62B20 13.24%, #FC4E0B 111.68%), #D9D9D9;
- }
-}
+ .clickDone {
+ font-size: 34rpx;
+ color: #fff;
+ width: 331rpx;
+ height: 88rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 61rpx;
+ background: linear-gradient(0deg, #D31F28 0%, #D31F28 100%), linear-gradient(270deg, #F62B20 13.24%, #FC4E0B 111.68%), #D9D9D9;
+ }
+ }
</style>
--
Gitblit v1.9.1