diff --git a/app.json b/app.json index c739c3f..4809728 100644 --- a/app.json +++ b/app.json @@ -39,6 +39,8 @@ "pages/freeBannerDetail/index", "pages/user/scoreHistory/index", "pages/scanPay/scanPay", + "pages/paySuccess/paySuccess", + "pages/ConsumeDetail/ConsumeDetail", "pages/externallinks/index" ], "navigateToMiniProgramAppIdList": [ diff --git a/assets/images/success.png b/assets/images/success.png new file mode 100644 index 0000000..aa6a130 Binary files /dev/null and b/assets/images/success.png differ diff --git a/components/discountCard/index.wxss b/components/discountCard/index.wxss index a361325..2dc0e6c 100644 --- a/components/discountCard/index.wxss +++ b/components/discountCard/index.wxss @@ -2,4 +2,5 @@ display: block; margin: 30rpx auto 0; border: 1px solid red; + height: 100rpx; } \ No newline at end of file diff --git a/config/config.js b/config/config.js index b85b3ac..5ecef5f 100755 --- a/config/config.js +++ b/config/config.js @@ -181,7 +181,7 @@ var config = { /** * C端扫B端储值卡支付订单 */ - orderCreate:"/carday/order_create", + cardPayOrder:"/cardPay/order_create", /** * 兑换历史列表 */ @@ -189,12 +189,18 @@ var config = { /** * 获取用户折扣率 */ - getDiscount:"/user/getDiscount" + getDiscount:"/user/getDiscount", + /** + * C端扫B端储值卡交易流水列表接口 + */ + cardpayList:"/cardPay/list" }, weapp: { - AppId: "wxea71200db93d756b" + AppId: "wxea71200db93d756b", + baseUrl:'https://s3.cn-northwest-1.amazonaws.com.cn/iformall-net/cimg/' }, + ErrorCode: { NICK_NOT_AUTH: 11004, PHONE_NOT_AUTH: 11005, diff --git a/ext.json b/ext.json new file mode 100644 index 0000000..45c1911 --- /dev/null +++ b/ext.json @@ -0,0 +1,44 @@ +{ + "extEnable": true, + "extAppid": "wxea71200db93d756b", + "directCommit": false, + "navigateToMiniProgramAppIdList": [ + "wx192b7d2e8dcbefd0", + "wxc07f9d67923d676d" + ], + "tabBar": { + "color": "#9F9F9F", + "selectedColor": "#00C0FF", + "list": [ + { + "pagePath": "pages/index/index", + "iconPath": "assets/images/home-n.png", + "selectedIconPath": "assets/images/home-y.png", + "text": "首页" + }, + { + "pagePath": "pages/passCar/passCar", + "iconPath": "assets/images/pass1.png", + "selectedIconPath": "assets/images/pass0.png", + "text": "停车" + }, + { + "pagePath": "pages/user/index", + "iconPath": "assets/images/user-n.png", + "selectedIconPath": "assets/images/user-y.png", + "text": "我的" + } + ] + }, + "window": { + "backgroundTextStyle": "red", + "navigationBarBackgroundColor": "#02C0FF", + "navigationBarTitleText": "WeChat", + "navigationBarTextStyle": "white" + }, + "networkTimeout": { + "request": 30000, + "downloadFile": 10000 + }, + "debug": false +} \ No newline at end of file diff --git a/pages/ConsumeDetail/ConsumeDetail.js b/pages/ConsumeDetail/ConsumeDetail.js new file mode 100644 index 0000000..28c36be --- /dev/null +++ b/pages/ConsumeDetail/ConsumeDetail.js @@ -0,0 +1,386 @@ +var config = require("../../config/config.js"); +var app = getApp(); +const Http = require("../../utils/HttpBasics"); +const util = require("../../utils/util"); +const imgurl = require("../../utils/imgurl"); +Page({ + data: { + fenxiangUrl:imgurl.fenxiang.url, + clockUrl:imgurl.clock.url, + teljpgUrl:imgurl.teljpg.url, + closedUrl:imgurl.closed.url, + quesGouUrl:imgurl.ques_gou.url, + headbgUrl:imgurl.headbg.url, + quesBgUrl:imgurl.ques_bg.url, + data: { + title: null + }, + showPage:false, + questions1: null, + questions2: null, + carList: [], + couponChannelId: null, + couponId: null, + orderId: "", + hour: null, + minute: "", + tempFilePaths: null, + userInfo: {}, + hasUserInfo: false, + canIUse: wx.canIUse('button.open-type.getUserInfo'), + id: null, + result: [], + end_time: null, + checked:false, + clock: "已经截止", + questionnaire: {}, + questionId: null, + widthScreen: null, + moveData: null, + rotateData: null, + alphaData: null, + scaleData: null, + skewData: null, + matrixData: null, + opacity:0, + queueData:null, + zIndex:11, + display:"none", + showbutton:false + }, + phone: function (e) { + let that = this; + wx.makePhoneCall({ + phoneNumber: e.target.dataset.merchantlinkphone + }); + }, + onLoad(options) { + console.log(config.api.cardpayList); + let that = this; + wx.showLoading({ + title: "加载中..." + }); + var parmer = { + url: config.api.cardpayList, + data: { + cardId: options.cardId, + pageNum:1, + pageSize:10 + } + }; + Http.get(parmer) + .then(res => { + if(res.code==200){ + that.setData({ + showPage:true + }) + } + if (res.data.endTime) { + that.countdown(res.data.endTime); + //当前时间与优惠券下架时间做计算 + var endTime = util.formatTime(res.data.endTime, "yyyy-MM-dd hh:mm:ss"); + if (util.timechuo(endTime).indexOf('-') == 0) { + that.setData({ + endtime: "活动已结束", + }); + } else { + that.setData({ + endtime: util.timechuo(endTime) + }); + } + } + wx.hideLoading(); + that.setData({ + data: res.data + }); + + if (res.data.validType == 1) { + that.setData({ + validStartDate: util.formatTime(res.data.validStartDate, "yyyy-MM-dd"), + validEndDate: util.formatTime(res.data.validEndDate, "yyyy-MM-dd"), + }); + } else { + that.setData({ + validDays: res.data.validDays + }); + } + }).catch(err => { + wx.showToast({ + title: err.message, + icon: 'none', + duration: 2000, + mask: false + }); + }) + }, + /** + * 支付订单更新 + */ + payOrderUpdate: (orderId, payOrderId, status, reason, type, _this) => { + let that = this; + // 支付成功 + Http.post({ + url: config.api.payOrderUpdate, + data: { + payOrderId: payOrderId, + orderId: orderId, + status: status, + reason: reason + } + }) + .then(res => { + wx.hideLoading() + // 有价券 + if (!type&&type!='free') { + wx.navigateTo({ + url: `/pages/order/detail/index?orderId=${ + orderId + }` + }); + }else if(type=='free'){ + wx.navigateTo({ + url: `/pages/order/detail/index?orderId=${ + orderId + }` + }); + } + }) + .catch(err => { + console.log(err); + if (!type) { + setTimeout(function () { + _this.payOrderUpdate(orderId, payOrderId, status, reason, type, _this); + }, 2000) + } + }) + }, + /** + * 发起支付 + */ + orderFunc(flag) { + var that = this; + // wx.showLoading({ + // title: "加载中..." + // }); + Http.post({ + url: config.api.checkPhoneStatus, + data: {} + }) + .then(res => { + var data = { + couponChannelId: "" + that.data.couponChannelId, + couponId: "" + that.data.couponId + }; + if (that.data.couponChannelId == null) { + var data = { + couponId: "" + that.data.couponId + }; + } + /** + * orderSave 下单 + */ + return Http.post({ + url: config.api.orderSave, + data: data + }); + }) + .catch(err => { + if (err.code == "2011") { + wx.showToast({ + title: "商户信息没找到", + image:imgurl.fail.url, + duration: 2000, + mask: false + }); + } else if (err.code == "2013") { + wx.showToast({ + title: "商户信息禁用", + image:imgurl.fail.url, + duration: 2000, + mask: false + }); + } else if (err.code == "3000") { + wx.showToast({ + title: "库存不足", + image:imgurl.fail.url, + duration: 2000, + mask: false + }); + } else if (err.code == "3001") { + wx.showToast({ + title: "领取达到上限", + image:imgurl.fail.url, + duration: 2000, + mask: false + }); + } else if (err.code == "3002") { + wx.showToast({ + title: "订单失败", + image:imgurl.fail.url, + duration: 2000, + mask: false + }); + } else if (err.code == "3003") { + wx.showToast({ + title: "订单不存在", + image:imgurl.fail.url, + duration: 2000, + mask: false + }); + } else if (err.code == "3004") { + wx.showToast({ + title: "订单不存在", + image:imgurl.fail.url, + duration: 2000, + mask: false + }); + } else if (err.code == "4003") { + wx.showToast({ + title: "卡券已作废", + image:imgurl.fail.url, + duration: 2000, + mask: false + }); + } else if (err.code == 11005) { + /** + * 将值传到用户手机号授权的页面 + * + */ + wx.redirectTo({ + url: "/pages/getphoneInfo/index?couponChannelId=" + + that.data.couponChannelId + + "&couponId=" + + that.data.couponId + }); + } else if (err.code == 11006) { + // 用户手机已加密 + wx.redirectTo({ + url: "/pages/phoneinput/phoneinput?couponChannelId=" + + that.data.couponChannelId + + "&couponId=" + + that.data.couponId + }); + } else { + wx.showToast({ + title: err.message, + icon: 'none', + duration: 2000, + mask: false + }); + } + }) + .then(res => { + if (typeof (res) != "undefined") { + let orderId = "" + res.data.id; + that.setData({ + orderId: orderId + }); + if (res.data.payment > 0) { + // 支付金额不为0 + /** + * 支付订单创建 + */ + Http.post({ + url: config.api.payOrderCreate, + data: { + orderId: orderId + } + }).then(res => { + var payOrderId = "" + res.data.payOrderId; + wx.hideLoading(); + wx.requestPayment({ + timeStamp: res.data.timeStamp, + nonceStr: res.data.nonceStr, + package: res.data.package, + signType: (res.data.signType) ? res.data.signType : "MD5", + paySign: res.data.paySign, + success: res => { + wx.showLoading({ + title: '订单正在处理中...', + }) + setTimeout(function(){ + wx.hideLoading() + },5000) + that.payOrderUpdate(that.data.orderId, payOrderId, 1, '', '', that); + if (res.errMsg == "requestPayment:ok") { + setTimeout(function () { + wx.hideLoading(); + }, 2000); + /** + * 用户支付成功以后跳转到券包列表 + */ + wx.setStorage({ + key: 'couponNum', + data: "couponNum", + }) + } + }, + fail: res => { + /** + * 支付失败,需要更新订单的状态 + */ + that.payOrderUpdate(that.data.orderId, payOrderId, 2, '', 'fail', that); + that.setData({ + showbutton: false + }) + return; + }, + complete: res => {} + }); + /// End payment -------- + }) + .catch(err => { + wx.showToast({ + title: err.message, + icon: 'none', + duration: 2000, + mask: false + }); + }) + } else { + // 免费券 + that.payOrderUpdate(orderId, "0", 1, '', 'free'); + wx.setStorage({ + key: 'couponNum', + data: "couponNum" + }) + } + } + }) + .catch(err => { + wx.showToast({ + title: err.message, + icon: 'none', + duration: 2000, + mask: false + }); + }) + }, + onShow(){ + this.setData({ + showbutton:false + }) + }, + onShareAppMessage: function (options) { + var that = this; + var shareObj = { + title: that.data.data.title, + path: `/pages/index/index?couponChannelId=${that.data.couponChannelId}&couponId=${that.data.couponId}`, + success: function (res) { + if (res.errMsg == 'shareAppMessage:ok') {} + }, + fail: function (error) { + if (res.errMsg == 'shareAppMessage:fail cancel') {} else if (res.errMsg == 'shareAppMessage:fail') {} + } + }; + // 来自页面内的按钮的转发 + if (options.from == 'button') { + var eData = options.target.dataset.id; + var couponId = options.target.dataset.couponid; + shareObj.path = `/pages/index/index?couponChannelId=${eData}&couponId=${couponId}`; + } + // 返回shareObj + return shareObj; + }, + +}); \ No newline at end of file diff --git a/pages/ConsumeDetail/ConsumeDetail.json b/pages/ConsumeDetail/ConsumeDetail.json new file mode 100644 index 0000000..96c4fcf --- /dev/null +++ b/pages/ConsumeDetail/ConsumeDetail.json @@ -0,0 +1,3 @@ +{ + "navigationBarTitleText": "券详情" +} \ No newline at end of file diff --git a/pages/ConsumeDetail/ConsumeDetail.wxml b/pages/ConsumeDetail/ConsumeDetail.wxml new file mode 100644 index 0000000..3fb198c --- /dev/null +++ b/pages/ConsumeDetail/ConsumeDetail.wxml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + 距结束还剩 : + + + {{day}}天 + {{hour}}: + {{min}}: + {{sec}} + + + {{day}}天 + {{hour}}: + {{min}}: + {{sec}} + + + {{data.title}}电子卡 + {{data.subTitle}} + + 售价: + {{data.salePriceStr}} + + {{data.priceStr}}元 + {{data.priceStr}}小时 + + 剩余{{data.remainInventory}}件 + + 有效期:自领取之日起 + {{validDays}}天内有效 + 有效期: + {{validStartDate}}至{{validEndDate}} + + + 当次有效 + + + 使用条件: + 满{{data.usePriceStr}}元可用 + + + 限购条件: + 每人{{data.useLimitQuantity}}张 + + + + + + + + + 购买须知 + + + {{data.remark}} + + + + + \ No newline at end of file diff --git a/pages/ConsumeDetail/ConsumeDetail.wxss b/pages/ConsumeDetail/ConsumeDetail.wxss new file mode 100644 index 0000000..8bf4468 --- /dev/null +++ b/pages/ConsumeDetail/ConsumeDetail.wxss @@ -0,0 +1,446 @@ +@import "../../app.wxss"; +page { + background: #fff; +} + +.coupons { + width: 100%; + position: relative; + overflow: hidden; + padding-bottom: 170rpx; +} + +.banner { + position: relative; + width: 750rpx; + height: 534.5rpx; +} + +.banner image { + width: 100%; + height: 100%; +} + +.coupons_info { + width: 92%; + padding: 0 4%; + background: #fff; + border-top-left-radius: 20rpx; + border-top-right-radius: 20rpx; + margin-top: -25rpx; +} + +.fenxiang { + position: absolute; + right: 36rpx; + top: 27rpx; + width: 77rpx; +} + +.fenxiang image { + width: 50rpx; + position: absolute; + top: 0; + right: 0; +} + +.user-motto { + width: 100rpx; + border: 0; + background: none; + height: 60rpx; + color: #fff; +} + +.user-motto::after { + border: none; +} + +.title { + display: block; + font-size: 32rpx; + color: #000; + letter-spacing: 1.09rpx; + line-height: 45rpx; + width: 542rpx; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + padding-top: 30rpx; +} + +.subTitle { + display: block; + width: 588rpx; + /* height: 37rpx; */ + font-size: 26rpx; + color: #999; + letter-spacing: 1.16rpx; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + padding: 6rpx 0; +} + +.rest { + font-size: 24rpx; + color: #919191; + letter-spacing: 0; + height: 70rpx; + line-height: 70rpx; + /* border-bottom: 1px solid #eee; */ + border-bottom: 1px solid #f9f9f9; +} + +.restNum { + font-size: 24rpx; + color: #999; + letter-spacing: 1.16rpx; + text-align: right; +} + +.time { + font-size: 24rpx; + color: #333; + letter-spacing: 0; + line-height: 33rpx; + display: inline-block; +} + +.txt01 { + font-size: 24rpx; + color: #919191; + letter-spacing: 0; +} + +.price { + font-size: 24rpx; + color: #999; + letter-spacing: 0; +} + +.salePriceStr { + font-size: 24rpx; + color: #999; + letter-spacing: 0; +} + +.salePriceStr .pri01 { + font-size: 40rpx; + color: #ff4949; + letter-spacing: 0; + margin-left: 10rpx; +} + +.salePriceStr .yuan { + font-size: 24rpx; + color: #ff4949; + letter-spacing: 0; +} + +.price text { + font-size: 24rpx; + color: #333; + letter-spacing: 0; +} + +.throgh { + text-decoration: line-through; + margin-left: 10rpx; +} + +.posi { + position: relative; + width: 92%; + margin: 0 auto; +} + +.fl { + float: left; +} + +.fr { + float: right; +} + +.posi>view:nth-child(2) { + width: 100%; + height: 87rpx; + display: flex; + justify-content: space-between; + border-top: 1px solid #f6f6f6; + line-height: 87rpx; +} + +.posi>view:nth-child(2) text:nth-child(1) { + font-size: 30rpx; + color: #a9a9a9; +} + +.posi>view:nth-child(2) text:nth-child(2) { + font-size: 30rpx; + color: #a9a9a9; +} + +.posi_logo { + width: 100%; + display: flex; + padding: 20rpx 0; + background: #fff; + height: 100rpx; + margin-bottom: 20rpx; +} + +.posi_logo view:nth-child(1) { + width: 100rpx; + height: 100rpx; + border-radius: 16rpx; +} + +.posi_logo view:nth-child(1) image { + display: block; + width: 100rpx; + height: 100rpx; + border-radius: 16rpx; + border: 1px solid #e5e5e5; +} + +.posi_logo view:nth-child(2) { + display: flex; + flex-direction: column; + flex: 8; + padding-left: 30rpx; +} + +.posi_logo view:nth-child(2) text:nth-child(1) { + font-size: 32rpx; + color: #333; + letter-spacing: 0; +} + +.posi_logo view:nth-child(2) text:nth-child(2) { + font-size: 24rpx; + color: #b8b8b8; + padding-top: 3rpx; + width: 450rpx; + height: 36rpx; + overflow: hidden; +} + +.notes view:nth-child(1) { + width: 92%; + height: 87rpx; + padding: 0 4%; + line-height: 87rpx; + background: #fff; +} + +.active { + opacity: 0.6; +} + +.notes view:nth-child(1) text { + font-size: 24rpx; + color: #333; + letter-spacing: 0; +} + +.notes view:nth-child(2) { + width: 92%; + padding: 0 4%; + background: #fff; + display: flex; + flex-direction: column; +} + +.notes view:nth-child(2)>text { + font-size: 24rpx; + color: #919191; + letter-spacing: 0; + line-height: 42rpx; +} + +.buy-view { + background: #fff; + height: 96rpx; + bottom: 0; + left: 0; + right: 0; + padding-bottom: 22rpx; + padding-top: 22rpx; +} + +.buy { + position: relative; + background: #00c0ff; + height: 94rpx; + width: 670rpx; + margin: 0 auto 30rpx; + color: #fff; + font-size: 36rpx; + line-height: 94rpx; + border-radius: 61rpx; +} + +.tel { + right: 0; + top: 0; + bottom: 0; + margin: auto; + width: 50rpx; + height: 50rpx; +} + +.txt { + margin-right: 30rpx; +} +.distance{ + border: none; + border-radius:16rpx; + width: 600rpx; + padding: 16rpx 6rpx 0 0; +} +.distance .txt01{ + display: block; + font-size: 26rpx; + color: #ff4949; +} +.clock{ + width: 116rpx!important; + vertical-align: middle; + margin-right: 10rpx; + margin-top: -4rpx; +} +.qiang{ + position: inline-block; + width: 60rpx; + height: 40rpx; + line-height: 40rpx; + color: #ff4949; + text-align: center; + font-size: 28rpx; + margin-right: 10rpx; +} +.times{ + display: inline-block; + color: #ff4949; + font-weight:bold; + font-size: 26rpx; + text-align:center; +} +.times text{ + display: inline-block; + margin: 6rpx; + width: 46rpx; + height: 56rpx; + text-align: center; + font-size: 28rpx; + line-height: 60rpx; + border-radius:12rpx; + color: #fff; + font-weight:bold; + background: #ff4949; +} + +.b1 { + position: fixed; + top: 0px; + bottom: 0px; + left: 0px; + right: 0px; + background: rgba(0, 0, 0, 0.8); + overflow: hidden; + z-index: 10; +} + +.con { + position: absolute; + top: 35rpx; + right: 0; + bottom: 0; + left: 0; + margin: auto; + width: 587rpx; +} + +.con .image{ + display: block; + width: 100%; +} + +.img { + margin-top: -50rpx; +} +.question { + display: block; + width: 587rpx; + background: #fff; + border-bottom-left-radius: 22rpx; + border-bottom-right-radius: 22rpx; + overflow: hidden; +} + +.ques { + display: block; + width: 511rpx; + margin: 0 auto; + height: 95rpx; + line-height: 95rpx; + font-size: 30rpx; + color: #333; + border-bottom: 1rpx solid #eee; +} + +.titles { + width: 511rpx; + display: block; + text-align: center; + height: 50rpx; + margin: 0 auto; + padding-top:10rpx; + padding-bottom:20rpx; + font-size: 32rpx; + font-weight: bold; + line-height: 41rpx; + border-bottom: 1rpx solid #eee; +} +.quessss >view:last-child{ + border-bottom:0; +} +.close{ + position: relative; + z-index: 10000; + display: block; + width: 70rpx; +} +.ques_gou{ + position: absolute; + width: 20rpx; + top: 160rpx; + left: 23rpx; +} +.btns{ + color: #f8755b; + font-weight: bold; + font-size: 30rpx!important; + text-align: center!important; +} +.radios{ + display: block; + font-size:28rpx; + height: 95rpx; + line-height: 95rpx; + color: #333; + text-indent: .5em; +} +.elecard{ + display: inline-block; + margin-left: 6rpx; + color: #00c0ff; + border: 1px solid #00c0ff; + border-radius:8rpx; + font-style: normal; + font-size: 30rpx; + line-height: 40rpx; + padding: 0 6rpx; +} \ No newline at end of file diff --git a/pages/cardorder/index/index.js b/pages/cardorder/index/index.js index 718771b..7f9e81c 100644 --- a/pages/cardorder/index/index.js +++ b/pages/cardorder/index/index.js @@ -54,7 +54,13 @@ Page({ } }) }, - + // 跳转到详情 + gotoConsumeDetail:function(e){ + console.log(e.currentTarget.dataset.id) + wx.navigateTo({ + url: `/pages/ConsumeDetail/ConsumeDetail?cardId=${e.currentTarget.dataset.id}`, + }) + }, //点击跳转到券详情页面 gotouse: function (e) { if (this.data.mystatus == '' || this.data.mystatus == 'undefined') { diff --git a/pages/cardorder/index/index.wxml b/pages/cardorder/index/index.wxml index d2fbb9d..483df4a 100644 --- a/pages/cardorder/index/index.wxml +++ b/pages/cardorder/index/index.wxml @@ -19,11 +19,11 @@ {{item.title}} - + {{item.expiredTime}}到期 - 金额{{item.remainingAmount/10000}} + 金额{{item.remainingAmount/100}} 扫一扫付款 已失效 diff --git a/pages/couponorder/index/index.json b/pages/couponorder/index/index.json index 85a5c31..704fc2d 100644 --- a/pages/couponorder/index/index.json +++ b/pages/couponorder/index/index.json @@ -3,5 +3,5 @@ "i-tab": "../../../dist/tab/index", "i-tabs": "../../../dist/tabs/index" }, - "navigationBarTitleText": "我的优惠劵" + "navigationBarTitleText": "我的券包" } \ No newline at end of file diff --git a/pages/discountCardList/discountCardList.wxml b/pages/discountCardList/discountCardList.wxml index 54f0f06..dd054ff 100644 --- a/pages/discountCardList/discountCardList.wxml +++ b/pages/discountCardList/discountCardList.wxml @@ -27,6 +27,6 @@ - {{content}} + {{content}} \ No newline at end of file diff --git a/pages/order/detail/index.wxml b/pages/order/detail/index.wxml index fcdf3d2..f1a4653 100644 --- a/pages/order/detail/index.wxml +++ b/pages/order/detail/index.wxml @@ -51,8 +51,9 @@ 下单时间 - {{createDate}} + {{createDate}} + 订单编号 {{order.orderNumber}} diff --git a/pages/paySuccess/paySuccess.js b/pages/paySuccess/paySuccess.js new file mode 100644 index 0000000..5464e5d --- /dev/null +++ b/pages/paySuccess/paySuccess.js @@ -0,0 +1,70 @@ +// pages/paySuccess/paySuccess.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, + goIndex:function(){ + wx.switchTab({ + url: '/pages/index/index', + }) + }, + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/pages/paySuccess/paySuccess.json b/pages/paySuccess/paySuccess.json new file mode 100644 index 0000000..3d262cb --- /dev/null +++ b/pages/paySuccess/paySuccess.json @@ -0,0 +1,3 @@ +{ + "navigationBarTitleText": "支付成功" +} \ No newline at end of file diff --git a/pages/paySuccess/paySuccess.wxml b/pages/paySuccess/paySuccess.wxml new file mode 100644 index 0000000..1918973 --- /dev/null +++ b/pages/paySuccess/paySuccess.wxml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/pages/paySuccess/paySuccess.wxss b/pages/paySuccess/paySuccess.wxss new file mode 100644 index 0000000..793451d --- /dev/null +++ b/pages/paySuccess/paySuccess.wxss @@ -0,0 +1,18 @@ +.content image{ + display: block; + width: 468rpx; + margin: 100rpx auto 0; +} +button::after{ border: none; } +.content button{ + width: 670rpx; + height: 95rpx; + line-height: 95rpx; + text-align: center; + color: #333; + font-size: 36rpx; + background: #fff!important; + border-radius:60rpx!important; + margin-top: 169rpx; + border: 1px solid #C4C4C4; +} \ No newline at end of file diff --git a/pages/scanPay/scanPay.js b/pages/scanPay/scanPay.js index 2133317..9959f60 100644 --- a/pages/scanPay/scanPay.js +++ b/pages/scanPay/scanPay.js @@ -1,14 +1,14 @@ const util = require("../../utils/util.js"); const config = require("../../config/config.js"); const Http = require("../../utils/HttpBasics"); +const AUTH_MODE = 'fingerPrint'; let app = getApp(); Page({ - /** * 页面的初始数据 */ data: { - merChant:{}, + merChant: {}, focus: true, inputValue: '' }, @@ -16,12 +16,12 @@ Page({ /** * 生命周期函数--监听页面加载 */ - onLoad: function (options) { + onLoad: function(options) { console.log(options) let that = this; that.setData({ merChant: JSON.parse(options.merChant), - cardid:options.cardid + cardid: options.cardid }) }, bindKeyInput(e) { @@ -29,114 +29,129 @@ Page({ this.setData({ inputValue: e.detail.value }) - console.log(this.data.inputValue) }, - gotoPayMoney:function(){ + gotoPayMoney: function() { let that = this; Http.post({ - url: config.api.orderCreate, - data: { - cardId: that.data.cardid, - merchantCode: that.data.merChant.merchant_id, - totalFee: that.data.inputValue - } - }) - .then(res => { - console.log(res) - }) - .catch(err => { - wx.showModal({ - title: "抱歉", - content: err.message, - showCancel: false + url: config.api.cardPayOrder, + data: { + cardId: that.data.cardid, + merchantCode: that.data.merChant.merchant_id, + totalFee: that.data.inputValue + } + }) + .then(res => { + console.log(res); + wx.navigateTo({ + url: '/pages/paySuccess/paySuccess', + }) + }) + .catch(err => { + wx.showModal({ + title: "抱歉", + content: err.message, + showCancel: false + }) }) - }) }, - gotoPayMoneys(e) { - var that = this; - if (wx.canIUse("checkIsSupportSoterAuthentication")) { - //判断此接口是否可用 - console.log(e) - wx.checkIsSupportSoterAuthentication({ - success: function (res) { - console.log('本机支持的 SOTER 生物认证', res); - var keys = []; - for (var key in res) { - keys.push(res[key]) + // 指纹识别 + startAuth() { + let that = this; + if (that.data.inputValue != "") { + const startSoterAuthentication = () => { + wx.startSoterAuthentication({ + requestAuthModes: [AUTH_MODE], + challenge: 'test', + authContent: '小程序支付', + success: (res) => { + this.gotoPayMoney(); + }, + fail: (err) => { + } + }) + } + const checkIsEnrolled = () => { + wx.checkIsSoterEnrolledInDevice({ + checkAuthMode: AUTH_MODE, + success: (res) => { + console.log(res) + if (parseInt(res.isEnrolled) <= 0) { + wx.showModal({ + title: '错误', + content: '您暂未录入指纹信息,请录入后重试', + showCancel: false + }) + return + } + startSoterAuthentication(); + }, + fail: (err) => { + console.error(err) + } + }) + } + wx.checkIsSupportSoterAuthentication({ + success: (res) => { console.log(res) - that.setData({ - print: keys//页面中输出支持情况 + checkIsEnrolled() + }, + fail: (err) => { + console.error(err); + wx.showModal({ + title: '错误', + content: '您的设备不支持指纹识别', + showCancel: false }) - if (res.supportMode == "fingerPrint") { - wx.startSoterAuthentication({ - requestAuthModes: ['fingerPrint'], - challenge: '123456', - authContent: "请用指纹解锁", - success: function (res) { - console.log('js', res); - }, - fail: function (res) { - that.setData({ - c: "用户取消了指纹识别,或调用出现错误" - }) - } - }) - } else { - that.setData({ - b: "当前该设备不支持指纹识别" - }) - } } }) + } else { + wx.showModal({ + title: '抱歉', + content: '请输入金额', + showCancel: false + }) } }, - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady: function () { - - }, - /** * 生命周期函数--监听页面显示 */ - onShow: function () { + onShow: function() { }, /** * 生命周期函数--监听页面隐藏 */ - onHide: function () { + onHide: function() { }, /** * 生命周期函数--监听页面卸载 */ - onUnload: function () { + onUnload: function() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ - onPullDownRefresh: function () { + onPullDownRefresh: function() { }, /** * 页面上拉触底事件的处理函数 */ - onReachBottom: function () { + onReachBottom: function() { }, /** * 用户点击右上角分享 */ - onShareAppMessage: function () { + onShareAppMessage: function() { } }) \ No newline at end of file diff --git a/pages/scanPay/scanPay.wxml b/pages/scanPay/scanPay.wxml index 8178506..703be04 100644 --- a/pages/scanPay/scanPay.wxml +++ b/pages/scanPay/scanPay.wxml @@ -7,6 +7,6 @@ ¥ - + \ No newline at end of file diff --git a/pages/scanPay/scanPay.wxss b/pages/scanPay/scanPay.wxss index 3ecf88c..f8e8a5b 100644 --- a/pages/scanPay/scanPay.wxss +++ b/pages/scanPay/scanPay.wxss @@ -45,4 +45,7 @@ height: 60rpx; margin-top: 20rpx; line-height: 60rpx; +} +.active{ + opacity: .6; } \ No newline at end of file diff --git a/project.config.json b/project.config.json index 2ad7024..4e30ca0 100644 --- a/project.config.json +++ b/project.config.json @@ -8,7 +8,8 @@ "es6": true, "postcss": true, "minified": true, - "newFeature": true + "newFeature": true, + "autoAudits": false }, "compileType": "miniprogram", "libVersion": "2.0.9",