From 87f34aa6e95d08d1b061bfa201813af34b677a1b Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期二, 23 七月 2024 14:07:42 +0800
Subject: [PATCH] feat(支付): 去除无用api
---
/dev/null | 218 -------
pay/login.vue | 36
common/http.interceptor.js | 2
pay/paySuccess.vue | 2
index.html | 2
pages.json | 16
pay/scanpay.vue | 1339 ++++++++++++++++++++++++----------------------
App.vue | 5
common/api/index.js | 71 --
9 files changed, 730 insertions(+), 961 deletions(-)
diff --git a/App.vue b/App.vue
index 508e61e..7d6db53 100644
--- a/App.vue
+++ b/App.vue
@@ -2,11 +2,16 @@
import {
config,
} from 'common/config.js';
+import Vconsole from 'vconsole';
import {
getPlat
} from 'common/util.js';
export default {
onLaunch: function(opt) {
+ uni.setStorageSync('DEBUG', opt.query?.debug == 'true');
+ if (uni.getStorageSync('DEBUG')) {
+ new Vconsole();
+ }
/*console.log(opt)
let platform = 2
const redirect_uri = encodeURIComponent(`${config.webURL}/pay/scanpay?cid=${opt.query.cid}`)
diff --git a/common/api/index.js b/common/api/index.js
index 53ac3a7..f899fb6 100644
--- a/common/api/index.js
+++ b/common/api/index.js
@@ -8,31 +8,15 @@
export const queryShop = (params, config = {}) => http.get(URL +
'/payfour-merchant/v1/web/aggregatePayAllin/queryShopById', params, config)
-/* 鑾峰彇鎴愬姛椤甸潰閰嶇疆 */
-export const getPayCompleteUrl = (params, config = {}) => http.get(URL +
- '/payfour-base/v1/base/pc/global/config/getPayCompleteUrl', params, config)
-
/* 鑾峰彇绉垎浠峰�� */
export const getScoreWorth = (params, config = {}) => http.get(URL +
'/payfour-merchant/v1/web/aggregatePayAllin/getScoreWorth', params, config)
-/* 鑾峰彇鐢ㄦ埛閾惰鍗� */
-export const myBankCard = (params, config = {}) => http.get(URL +
- '/payfour-shop/v1/shop/wechat/h5/bankCard/myBankCard', params, config)
-/* 鑾峰彇鍟嗛摵寰俊閰嶇疆 */
-export const getWechatInfo = (params, config = {}) => http.get(URL +
- '/payfour-merchant/v1/web/aggregatePayAllin/getWechatInfo', params, config = {});
/* 闈欓粯鎺堟潈鐧诲綍 */
export const getOpenIdBase = (params, config = {}) => http.get(URL +
'/payfour-merchant/v1/web/aggregatePayAllin/getOpenIdBase', params, config = {});
-/* 寰俊鏅�氭巿鏉冪櫥褰� */
-export const getOpenId = (params, config = {}) => http.get(URL + '/payfour-merchant/v1/web/aggregatePayAllin/getOpenId',
- params, config = {});
-/* 鏀粯瀹濇櫘閫氭巿鏉冪櫥褰� */
-export const getUserId = (params, config = {}) => http.get(URL + '/payfour-merchant/v1/web/h5PayAli/getUserIdByCode',
- params, config = {});
export const userLogin = (params, config = {}) => {
let path = '/payfour-merchant/v1/web/aggregatePayAllin/getOpenId'
if(params.platform==5){
@@ -41,9 +25,7 @@
return http.get(URL + path,
params, config = {})
};
-/* 鑾峰彇鐢ㄦ埛绉垎 */
-export const queryScore = (params, config = {}) => http.get(URL +
- '/payfour-merchant/v1/web/aggregatePayAllin/queryScore', params, config = {});
+
/* 鑾峰彇鐢ㄦ埛鍙敤浼樻儬鍒� 闈㈠�兼渶澶х殑*/
export const queryMyUseSweepPayMaxCoupon = (params, config = {}) => http.get(URL +
'/payfour-merchant/v1/web/aggregatePayAllin/queryMyUseSweepPayMaxCoupon', params, config = {});
@@ -55,9 +37,6 @@
export const getWechatConfigInfo = (params, config = {}) => http.post(URL +
'/payfour-merchant/v1/web/aggregatePayAllin/getWechatConfigInfo', params, config = {});
-/* 寰俊鏀粯 */
-export const saveWxOrder = (params, config = {}) => http.post(URL +
- '/payfour-merchant/v1/web/aggregatePayAllin/saveWxOrder', params, config = {});
/*缁熶竴鏀粯*/
export const saveOrder = (params, config = {}) => http.post(URL +
'/payfour-merchant/v1/web/aggregatePayAllin/saveOrder', params, config = {});
@@ -66,31 +45,9 @@
export const closeOrder = (params, config = {}) => http.get(URL +
'/payfour-merchant/v1/web/aggregatePayAllin/scanPayOrderClose', params, config = {});
-/* 鍥惧舰楠岃瘉鍚� */
-export const getVerify = (params, config = {}) => http.get(URL +
- '/payfour-merchant/v1/web/aggregatePayAllin/getVerify', params, config = {});
-
-/* 鐭俊楠岃瘉鐮� */
-export const getH5PayCheckVerifyCode = (params, config = {}) => http.post(URL +
- '/payfour-merchant/v1/web/aggregatePayAllin/getH5PayCheckVerifyCode', params, config = {});
-
-/* 寰俊鏀粯 */
-export const h5PayLogin = (params, config = {}) => http.post(URL + '/payfour-shop/v1/shop/web/wechat/h5PayLogin',
- params, config = {});
-
-/* 閫氳仈蹇嵎鏀粯 */
-export const tlPay = (params, config = {}) => http.post(URL +
- '/payfour-merchant/v1/web/aggregatePayAllin/pay/scanpayagreeconfirm',
- params, config = {});
-
/* 寰俊鏀粯缁撴灉 */
export const getWxOrderInfo = (params, config = {}) => http.post(URL +
'/payfour-merchant/v1/web/aggregatePayAllin/getWxOrderInfo',
- params, config = {});
-
-/* 鍒ゆ柇鏄惁鍦ㄥ崱娈靛唴 */
-export const isContain = (params, config = {}) => http.get(URL +
- '/payfour-base/v1/base/pc/bankCardPeriod/isContain',
params, config = {});
/* 鑾峰彇閾惰鍗¢厤缃� */
@@ -98,29 +55,3 @@
'/payfour-base/v1/base/pc/global/config/bankCardStyle',
params, config = {});
-/* 鑾峰彇鐢ㄦ埛淇℃伅 */
-export const getUserInfo = (params, config = {}) => http.post(URL +
- '/payfour-shop/v1/shop/wechat/h5/bankCard/noEnc',
- params, config = {});
-/* 鑾峰彇搴楅摵浼樻儬淇℃伅 */
-export const queryMyDiscount = (params, config = {}) => http.get(URL +
- '/payfour-merchant/v1/web/aggregatePayAllin/queryMyDiscount',
- params, config = {});
-/* 绛剧害鐢宠缁戝崱 */
-export const signUpToApply = (params, config = {}) => http.post(URL +
- '/payfour-shop/v1/shop/wechat/h5/bankCard/signUpToApply',
- params, config = {});
-
-/* 绛剧害鐢宠纭 */
-export const bindCard = (params, config = {}) => http.post(URL +
- '/payfour-shop/v1/shop/wechat/h5/bankCard/bindCard',
- params, config = {});
-
-/* 鑾峰彇缁戝崱娲诲姩璧犻�佺殑浼樻儬鍒� */
-export const getMyCoupUseDetail = (params, config = {}) => http.get(URL +
- '/payfour-merchant/v1/web/aggregatePayAllin/headBand/getMyCoupUseDetail',
- params, config = {});
-/* 鑾峰彇棣栫粦鏈夌ぜ */
-export const headBand = (params, config = {}) => http.get(URL +
- '/payfour-shop/v1/shop/wechat/activity/headBand/detail',
- params, config = {});
diff --git a/common/api/shuaka.js b/common/api/shuaka.js
deleted file mode 100644
index 3872998..0000000
--- a/common/api/shuaka.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import {
- config
-} from '@/common/config.js';
-const http = uni.$u.http;
-const URL = config.baseURL;
-
-/* 鑾峰彇鍒峰崱娲诲姩淇℃伅 */
-export const activityInfo = (params, config = {}) => http.get(URL +
- '/payfour-merchant/v1/web/monthBrush/info', params, config)
-/* 鍙備笌娲诲姩 */
-export const signActivity = (params, config = {}) => http.get(URL +
- '/payfour-merchant/v1/web/monthBrush/sign', params, config)
-/* 鑾峰彇鐢ㄦ埛鍙備笌淇℃伅 */
-export const myBrushDetail = (params, config = {}) => http.get(URL +
- '/payfour-merchant/v1/web/monthBrush/myBrushDetail', params, config)
-/* 鏌ヨ浼樻儬鍒� */
-export const orderRefBrushNode = (params, config = {}) => http.get(URL +
- '/payfour-merchant/v1/web/monthBrush/orderRefBrushNode', params, config)
\ No newline at end of file
diff --git a/common/http.interceptor.js b/common/http.interceptor.js
index 2ebb5dd..16bdfd5 100644
--- a/common/http.interceptor.js
+++ b/common/http.interceptor.js
@@ -69,7 +69,7 @@
} else if (res.code == 10002) {
return Promise.reject(res)
} else {
- vm.$u.toast(res.description || res.msg ||res.info ||"璇锋眰寮傚父锛�"); //閿欒鎻愮ず淇℃伅
+ // vm.$u.toast(res.description || res.msg ||res.info ||"璇锋眰寮傚父锛�"); //閿欒鎻愮ず淇℃伅
return Promise.reject(res)
}
}, (response) => {
diff --git a/index.html b/index.html
index 285d568..b7f7362 100644
--- a/index.html
+++ b/index.html
@@ -10,7 +10,7 @@
</title>
<link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css"/>
<script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.min.js"></script>
- <script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
+<!-- <script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>-->
</head>
<body>
<noscript>
diff --git a/pages.json b/pages.json
index 63f4dd7..90db23e 100644
--- a/pages.json
+++ b/pages.json
@@ -15,18 +15,6 @@
}
},
{
- "path": "pay/register",
- "style": {
- "navigationBarTitleText": "娉ㄥ唽",
- "enablePullDownRefresh": false
- // #ifdef H5
- ,
- "navigationStyle": "custom"
- // #endif
- }
-
- },
- {
"path": "pay/paySuccess",
"style": {
"navigationBarTitleText": "鏀粯鎴愬姛",
@@ -54,8 +42,8 @@
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "浣版儬浠�",
- "navigationBarBackgroundColor": "#FFFFFF",
- "backgroundColor": "#FFFFFF"
+ "navigationBarBackgroundColor": "#EDEDED",
+ "backgroundColor": "#EDEDED"
},
"uniIdRouter": {}
}
diff --git a/pay/login.vue b/pay/login.vue
index 9204bd8..70d0ba6 100644
--- a/pay/login.vue
+++ b/pay/login.vue
@@ -11,29 +11,33 @@
export default {
data() {
return {
+ opt: {},
platform: this.$utils.getPlat()
};
},
onLoad(opt) {
- const redirect_uri = encodeURIComponent(`${config.webURL}/pay/scanpay?cid=${opt.cid}`)
- if(uni.getStorageSync('UNIONID'+this.platform)){
+ this.opt = opt
+ },
+ onShow() {
+ let redirect_uri = `${config.webURL}/pay/scanpay?cid=${this.opt.cid||''}&shopId=${this.opt.shopId||''}&smoney=${this.opt.smoney||''}`
+ if(uni.getStorageSync('OPENID'+this.platform)){
window.location.href = redirect_uri
return
}
- uni.clearStorage()
- 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_base&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`
- } else {
- uni.reLaunch({
- url: `/pay/scanpay?cid=${opt.cid}`
- })
- }
-
- }
+ redirect_uri = encodeURIComponent(redirect_uri)
+ uni.clearStorage()
+ 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_base&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`
+ } else {
+ uni.reLaunch({
+ url: `/pay/scanpay?cid=${this.opt.cid}`
+ })
+ }
+ },
}
</script>
diff --git a/pay/paySuccess.vue b/pay/paySuccess.vue
index 4f8062e..3afcd17 100644
--- a/pay/paySuccess.vue
+++ b/pay/paySuccess.vue
@@ -112,7 +112,7 @@
<script>
import {
getWxOrderInfo,
- } from '@/common/api/index'
+ } from 'common/api/index'
export default {
data() {
return {
diff --git a/pay/register.vue b/pay/register.vue
deleted file mode 100644
index f4065e1..0000000
--- a/pay/register.vue
+++ /dev/null
@@ -1,218 +0,0 @@
-<template>
- <view class="u-p-h-50">
- <view class="title">鎮ㄥソ锛屾杩庢敞鍐岋紒</view>
- <u-form labelPosition="top" :model="form" :rules="rules" labelWidth="200"
- :labelStyle="{fontSize:'34rpx',fontWeight:'bold'}" ref="uForm">
- <u-form-item label="濮撳悕" prop="memberName" borderBottom>
- <u-input v-model="form.memberName" border="none" placeholder="璇疯緭鍏ュ鍚�"></u-input>
- </u-form-item>
- <u-form-item label="韬唤璇佸彿" prop="idcard" borderBottom>
- <u-input v-model="form.idcard" border="none" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�"></u-input>
- </u-form-item>
- <u-form-item label="鎵嬫満鍙�" prop="mobile" borderBottom>
- <u-input v-model="form.mobile" border="none" placeholder="璇疯緭鍏ユ墜鏈哄彿"></u-input>
- </u-form-item>
- <u-form-item label="鍥惧舰楠岃瘉鐮�" prop="captchaCode" borderBottom>
- <u-input v-model="form.captchaCode" border="none" placeholder="璇疯緭鍏ュ浘褰㈤獙璇佺爜"></u-input>
- <image @click="getImgCode" class="img-code" slot="right" :src="imgCode.bg" mode=""></image>
- </u-form-item>
- <u-form-item label="鐭俊楠岃瘉鐮�" prop="verificationCode" borderBottom>
- <u-input v-model="form.verificationCode" maxlength="6" border="none" placeholder="璇疯緭鍏ョ煭淇¢獙璇佺爜"></u-input>
- <u-button slot="right" @tap="getCode" color="#de2d35" plain>{{tips}}</u-button>
- </u-form-item>
- </u-form>
- <view class="u-text-center u-m-t-40 color-999 u-font-24">
- <label @click="checked = !checked" class="radio">
- <radio style="transform: scale(0.7);" color="#de2d35" :checked="checked" /><text>鎴戝凡闃呰骞跺悓鎰�</text>
- <text style="color: #de2d35;" @click.stop="show = true">銆婇噾铻嶇敓鎬佸湀骞冲彴浼氬憳娉ㄥ唽鍗忚銆�</text>
- </label>
-
- </view>
- <u-modal confirmText="闃呰骞跺悓鎰�" confirmColor="#de2d35" @confirm="show = false;checked = true" :show="show" title="閲戣瀺鐢熸�佸湀骞冲彴浼氬憳娉ㄥ唽鍗忚">
- <scroll-view scroll-y style="height: 60vh;">
- <user-agreement></user-agreement>
- </scroll-view>
- </u-modal>
- <u-code :seconds="seconds" ref="uCode" @change="codeChange"></u-code>
- <view class="btn-box">
- <u-button @click="submit" text="娉ㄥ唽" type="error" color="#de2d35" shape="circle"></u-button>
- </view>
- </view>
-</template>
-
-<script>
- import {
- getVerify,
- getH5PayCheckVerifyCode,
- h5PayLogin
- } from '@/common/api/index'
- export default {
- data() {
- return {
- show: false,
- checked: true,
- cid: '',
- imgCode: {},
- tips: '',
- // refCode: null,
- seconds: 60,
- form: {
- memberName: '',
- idcard: '',
- mobile: '',
- captchaCode: '',
- verificationCode: '',
- },
- rules: {
- memberName: [{
- type: 'string',
- required: true,
- message: '濮撳悕涓嶈兘涓虹┖',
- trigger: ['blur']
- }],
- idcard: [{
- type: 'string',
- required: true,
- message: '韬唤璇佸彿涓嶈兘涓虹┖',
- trigger: ['blur']
- }, {
- validator: (rule, value, callback) => {
- return uni.$u.test.idCard(value);
- },
- message: '韬唤璇佸彿涓嶆纭�',
- // 瑙﹀彂鍣ㄥ彲浠ュ悓鏃剁敤blur鍜宑hange
- trigger: ['blur'],
- }],
- mobile: [{
- type: 'string',
- required: true,
- message: '鎵嬫満鍙蜂笉鑳戒负绌�',
- trigger: ['blur']
- },
- {
- validator: (rule, value, callback) => {
- return uni.$u.test.mobile(value);
- },
- message: '鎵嬫満鍙风爜涓嶆纭�',
- // 瑙﹀彂鍣ㄥ彲浠ュ悓鏃剁敤blur鍜宑hange
- trigger: ['change'],
- }
- ],
- captchaCode: [{
- type: 'string',
- required: true,
- message: '鍥惧舰楠岃瘉鐮佷笉鑳戒负绌�',
- trigger: ['blur', 'change']
- }],
- verificationCode: [{
- type: 'string',
- required: true,
- message: '鐭俊楠岃瘉鐮佷笉鑳戒负绌�',
- trigger: ['blur', 'change']
- }],
- },
- };
- },
- onLoad(opt) {
- this.cid = opt.cid
- this.getImgCode()
- },
- methods: {
- codeChange(text) {
- this.tips = text;
- },
- getCode() {
- if (!this.form.captchaCode) {
- uni.showToast({
- icon: 'none',
- title: '璇疯緭鍏ュ浘褰㈤獙璇佺爜'
- })
- return
- }
- if (!this.form.mobile) {
- uni.showToast({
- icon: 'none',
- title: '璇疯緭鍏ユ墜鏈哄彿'
- })
- return
- }
- if (this.$refs.uCode.canGetCode) {
- // 妯℃嫙鍚戝悗绔姹傞獙璇佺爜
- uni.showLoading({
- title: '姝e湪鑾峰彇楠岃瘉鐮�'
- })
- getH5PayCheckVerifyCode({
- mobile: this.form.mobile,
- captchaCode: this.form.captchaCode,
- verifyToken: this.imgCode.token
- }).then(res => {
- uni.hideLoading();
- // 杩欓噷姝ゆ彁绀轰細琚玹his.start()鏂规硶涓殑鎻愮ず瑕嗙洊
- uni.$u.toast('楠岃瘉鐮佸凡鍙戦��');
- // 閫氱煡楠岃瘉鐮佺粍浠跺唴閮ㄥ紑濮嬪�掕鏃�
- this.$refs.uCode.start();
- }).catch(() => {
- // uni.hideLoading();
- this.getImgCode()
- })
- } else {
- uni.$u.toast('鍊掕鏃剁粨鏉熷悗鍐嶅彂閫�');
- }
- },
- getImgCode() {
- uni.showLoading()
- getVerify().then(res => {
- uni.hideLoading();
- res.bg = 'data:image/jpeg;base64,' + res.bg
- this.imgCode = res
- }).catch(() => {
- uni.hideLoading();
- })
- },
- submit() {
- if(!this.checked){
- uni.showToast({
- icon: 'none',
- title: '璇峰厛闃呰骞跺悓鎰忕敤鎴峰崗璁�'
- })
- return
- }
- this.$refs.uForm.validate().then(res => {
- uni.showLoading()
- h5PayLogin(this.form).then(res => {
- uni.hideLoading();
- uni.setStorageSync('IS_NEW', false)
- uni.redirectTo({
- url: '/pay/scanpay?cid=' + this.cid
- })
- }).catch(() => {
- uni.hideLoading();
- })
- }).catch(errors => {
- // uni.$u.toast('鏍¢獙澶辫触')
- })
- }
- },
- }
-</script>
-<style>
- page {
- background-color: #fff;
- }
-</style>
-<style lang="scss">
- .title {
- font-size: 44rpx;
- font-weight: bold;
- padding: 50rpx 0;
- }
-
- .btn-box {
- margin-top: 40rpx;
- }
-
- .img-code {
- width: 140rpx;
- height: 70rpx;
- }
-</style>
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