const navigationBarHeight = (getApp().statusBarHeight + 50) + 'px' 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: { couponIds: "", showPhoem: false, couponChannelId: "", showPage: false, data: {}, spuIdObj: {}, priceAndStockObj: {}, mallTenantId: '' }, onLoad: function (options) { console.log(options, 'options'); if (options.mallTenantId) { this.setData({ mallTenantId: options.mallTenantId, }) } else { this.setData({ mallTenantId: tt.getStorageSync('mallTenantId'), }) } console.log(this.data.mallTenantId, 'mallTenantId'); tt.showLoading({ title: "加载中..." }); let that = this if (app.globalData.token) { if (options && options.couponChannelId) { that.setData({ couponChannelId: options.couponChannelId }) that.getDetail(options.couponChannelId, 'notendclock'); } } else { app.tokenCallback = token => { that.setData({ couponChannelId: options.couponChannelId }) if (options && options.couponChannelId) { that.getDetail(options.couponChannelId, 'notendclock'); } } } }, goInstructions() { tt.navigateTo({ url: '/pages/coupon/instructions/instructions?couponChannelId=' + this.data.couponChannelId, success: (res) => { }, fail: (res) => { }, }); }, getSupId(id) { Http.get({ url: config.api.getSpuid, data: { id: id } }).then(res => { if (res.data) { this.setData({ spuIdObj: res.data }) } }).catch(err => { // tt.showToast({ // title: err.message, // icon: 'none', // duration: 2000, // mask: false // }); }) }, setPhone(paramData) { //子组件调用这个方法说明手机号已经授权成功 this.setData({ showPhoem: paramData.detail, }) tt.showToast({ title: '授权成功', // 内容 icon: 'none', // 图标 success: (res) => { }, fail: (res) => { }, }); }, setBox(paramData) { this.setData({ showPhoem: paramData.detail }) tt.showToast({ title: '取消授权', // 内容 icon: 'none', // 图标 success: (res) => { tt.reLaunch({ url: "/index/index", success(res) { console.log(`${res}`); app.globalData.selected = 0 }, fail(err) { console.log(`navigateTo调用失败`, err); }, }); }, fail: (res) => { }, }); }, getCouponPriceAndStock(couponChannelId) { //获取券价格与库存 Http.get({ url: config.api.couponPriceAndStock, data: { couponChannelId, mallTenantId: this.data.mallTenantId || '' } }).then(res => { let tempBoj = JSON.parse(res.data) console.log(tempBoj, "$"); this.setData({ priceAndStockObj: tempBoj }) }) }, getDetail: function (couponChannelId, flag) { let that = this; let data = {}; that.getCouponPriceAndStock(couponChannelId); //获取券价格和库存 if (that.data.couponIds) { data.couponId = couponChannelId } else { data.couponChannelId = couponChannelId } var parmer = { url: config.api.newCouponDetail, data: data }; Http.get(parmer).then(res => { that.setData({ couponId: res.data.couponId }) /** * activityStatus==0 活动未开始 * activityStatus==1 活动已开始 * flag == endclock 说明倒计时已经结束 */ if (res.data.endTime && res.data.beginTime) { that.setData({ begin_time: res.data.beginTime, end_time: res.data.endTime, activityStatus: res.data.actStatus ? res.data.actStatus : '' }) if (res.data.actStatus == 0 && flag != 'endclock') { that.countdown(res.data.beginTime); } else if (res.data.actStatus != 0 && flag != 'endclock') { that.countdown(res.data.endTime); } else { clearInterval(that.data.setInterval) } if (res.data.actStatus == 0) { var beginTime = util.formatTime(res.data.beginTime, "yyyy-MM-dd hh:mm:ss"); if (util.timechuo(beginTime).indexOf('-') == 0) { that.setData({ beginTime: "活动已结束", }); } else { that.setData({ beginTime: util.timechuo(beginTime) }); } } else { 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) }); } } } tt.hideLoading(); that.setData({ data: res.data, }); if (res.data.type == 10) { that.setData({ salePriceStr: res.data.salePriceStr, pickEndDate: util.formatTime(res.data.pickEndDate, "yyyy-MM-dd"), pickStartDate: util.formatTime(res.data.pickStartDate, "yyyy-MM-dd"), priceStr: res.data.priceStr, tailPriceStr: res.data.tailPriceStr, origPriceStr: res.data.origPriceStr }) } 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"), pickStartDate: util.formatTime(res.data.pickStartDate, "yyyy-MM-dd"), pickEndDate: util.formatTime(res.data.pickEndDate, "yyyy-MM-dd"), }); } else { if (res.data.validDays) { that.setData({ validDays: res.data.validDays }); } } if (res.data.itemGroup) { let tempObj = this.data.data tempObj.itemGroup = JSON.parse(tempObj.itemGroup) this.setData({ data: tempObj }) console.log(this.data.data, "data"); } if (res.data.productAttrs && res.data.skuAttrs) { let tempObj = this.data.data tempObj.productAttrs = JSON.parse(tempObj.productAttrs) tempObj.skuAttrs = JSON.parse(tempObj.skuAttrs) tempObj.productAttrs.map(item => { if (item.key == "Notification") { if (item.data != '') { tempObj.curLsit = JSON.parse(item.data) } } if (item.key == "bring_out_meal") { tempObj.besides = item.data } if (item.key == "free_pack") { tempObj.pack = item.data } if (item.key == "superimposed_discounts") { tempObj.superimposed_discounts = item.data } if (item.key == "private_room") { tempObj.private_room = item.data } if (item.key == "rec_person_num_max") { tempObj.rec_person_num_max = item.data } if (item.key == 'Description') { tempObj.Description = JSON.parse(item.data) } if (item.key == "can_no_use_date") { tempObj.can_no_use_date = JSON.parse(item.data) } }) tempObj.skuAttrs.map(item => { if (item.key == "commodity") { if (item.data != '') { tempObj.itemGroup = JSON.parse(item.data) } } }) this.setData({ data: tempObj }) console.log(this.data.data, "data"); } }).catch(err => { tt.showToast({ title: err.message, icon: 'none', duration: 2000, mask: false }); }) }, /** * 支付订单更新 */ payOrderUpdate(orderId, payOrderId, status, reason, type, _this, composeOrderType) { let that = this; console.log(orderId, 'orderId'); // 支付成功 Http.post({ url: config.api.payOrderUpdate, data: { payOrderId: payOrderId, composeOrderId: orderId, status: status, reason: reason, mallTenantId: that.data.mallTenantId } }) .then(res => { tt.hideLoading() // 有价券 if (!type && type != 'free') { setTimeout(() => { let url = "" if (_this.data.orderFlag) { tt.redirectTo({ url: `/pages/order/detail/index?orderId=${orderId}&dingdan=order&mallTenantId=${that.data.mallTenantId}` }); } else { tt.redirectTo({ url: `/pages/order/detail/index?orderId=${orderId}&mallTenantId=${that.data.mallTenantId}` }); } }, 1600); } else if (type == 'free') { tt.navigateTo({ url: `/pages/order/detail/index?orderId=${orderId }&mallTenantId=${that.data.mallTenantId}` }); } }) .catch(err => { console.log(err); if (!type) { setTimeout(function () { _this.payOrderUpdate(orderId, payOrderId, status, reason, type, _this, composeOrderType); }, 2000) } }) }, // 获得未支付的订单 getUnPaidOrder(couponId) { let that = this; Http.get({ url: config.api.getUnPaidOrder, data: { couponId: couponId, mallTenantId: this.data.mallTenantId || '' } }).then(res => { that.setData({ disOrderNumber: res.data.orderNumber, composeOrderType: res.data.composeOrderType }) if (res.data && res.data.pressEndDate) { that.setData({ dispressEndDate: true }) } else { that.setData({ dispressEndDate: false }) } if (that.data.dispressEndDate) { tt.showModal({ title: '提示', content: "您有未支付订单,请到“我的-我的砍价”进行支付", confirmText: "我的砍价", success: function (res) { if (res.confirm) { tt.navigateTo({ url: `/pages/bargain/bargainDatail/bargainDatail?orderId=${that.data.disOrderNumber}&composeOrderType=${that.data.composeOrderType}`, }) } } }) } else { tt.showModal({ title: '提示', content: '您有未支付订单,请先进行支付', confirmText: "去支付", success: function (res1) { if (res1.confirm) { if (that.data.composeOrderType > 0) { //券包 tt.navigateTo({ url: `/pages/order/detail/index?orderId=${res.data.composeOrderId}&mallTenantId=${that.data.mallTenantId}`, }) } else { tt.navigateTo({ url: `/pages/order/detail/index?orderId=${res.data.composeOrderId}&mallTenantId=${that.data.mallTenantId}`, }) } } } }) } }).catch(error => { tt.showToast({ title: error.message, icon: "none", duration: 3000 }) }) }, /** * 发起支付 */ orderFunc(discount) { if (this.data.showbutton) return; let that = this; tt.showLoading({ title: "加载中..." }); that.setData({ showbutton: true, }) Http.get({ url: config.api.checkUserStatus, data: { token: app.globalData.token, } }).then(res => { Http.get({ url: config.api.checkPhoneStatus, data: {} }).then(res => { // // if (!tt.canIUse('createOrder') || that.data.data.type == 50 || that.data.priceAndStockObj.salePrice == 0) { //积分券和免费券 // 发起砍价 if (discount == 'discount') { var data = { couponChannelId: "" + that.data.couponChannelId, couponId: "" + that.data.couponId, formId: "" + that.data.formId, press: true } } else if (discount == 'discount1') { var data = { couponChannelId: "" + that.data.couponChannelId, couponId: "" + that.data.couponId, formId: "" + that.data.formId, press: false } } else if (that.data.couponChannelId == null) { var data = { couponId: "" + that.data.couponId, formId: "" + that.data.formId, }; } else { var data = { couponChannelId: "" + that.data.couponChannelId, couponId: "" + that.data.couponId, formId: "" + that.data.formId, } } console.log(data, "data") let url = "" let tempObj; let tempArr = [] if (that.data.data.type == 12) { url = config.api.couponPackageSave tempObj = { signleOrder: { couponChannelId: "" + that.data.couponChannelId, couponId: "" + that.data.couponId, formId: "" + that.data.formId, }, count: "1" } tempArr.push(tempObj) } else { url = config.api.orderSave data.mallTenantId = that.data.mallTenantId || '' } /** * orderSave 下单 */ Http.post({ url: url, data: that.data.data.type == 12 ? JSON.stringify(tempArr) : data }).then(res => { if (discount != 'discount') { if (typeof (res) != "undefined") { let orderId = "" + res.data.mainOrderId; that.setData({ orderId: orderId, composeOrderType: res.data.composeOrderType }); if (res.data.payment > 0) { // 支付金额不为0 if (tt.canIUse('createOrder')) { Http.post({ url: config.api.payOrderCreate_2, data: { orderId: orderId, composeOrderType: res.data.composeOrderType, mallTenantId: that.data.mallTenantId } }).then(res => { console.log(res, "789789"); let tempCallbackData = res.data.callbackData // tempCallbackData[that.data.data.couponChannel.ttSpuId] = that.data.data.couponChannel.id let options = { callbackData: tempCallbackData, goodsList: res.data.goodsList, payment: res.data.payment, success: res => { console.log('save,success!'); tt.hideLoading(); that.setData({ showbutton: false, }) const { orderId, outOrderNo } = res; that.setData({ orderId, outOrderNo }); that.payOrderUpdate(outOrderNo, outOrderNo, 1, '', '', that, ''); }, fail: res => { console.log('save,fail!'); const { orderId, outOrderNo, errNo, errMsg, errLogId } = res; if (errLogId) { tt.hideLoading(); that.setData({ showbutton: false, }) console.log('预下单失败', errNo, errMsg, errLogId); let tempErrmsg = errMsg.split('开发者拒绝交易:'); tt.showToast({ title: tempErrmsg[tempErrmsg.length - 1], icon: 'none', duration: 2000, mask: false }); } if (orderId || outOrderNo) { tt.hideLoading(); that.setData({ showbutton: false, }) console.log('支付失败', errNo, errMsg, orderId, outOrderNo); console.log(that.payOrderUpdate, "payOrderUpdate"); tt.showToast({ title: "取消支付", icon: 'none', duration: 2000, mask: false }); that.payOrderUpdate(outOrderNo, outOrderNo, 2, '', 'fail') } }, } console.log(options, "options"); tt.createOrder(options) }) } else { //不支持2.0支付 /** * 支付订单创建 */ tt.showToast({ title: '请升级抖音', // 内容 icon: "none" }); return Http.post({ url: config.api.payOrderCreate, data: { orderId: orderId, composeOrderType: res.data.composeOrderType } }).then(res => { var payOrderId = "" + res.data.outOrderNo; tt.hideLoading(); tt.pay({ service: 5, orderInfo: { order_id: res.data.payOrderId, order_token: res.data.payOrderToken, }, success: res => { tt.showLoading({ title: '订单正在处理中...', }) if (res.code === 0) { that.payOrderUpdate(that.data.orderId, payOrderId, 1, '', '', that, that.data.composeOrderType); if (res.errMsg == "requestPayment:ok") { /** * 用户支付成功以后跳转到券包列表 */ if (that.data.cardType == 100) { tt.setStorage({ key: 'couponNum2', data: "couponNum2" }) } else if (that.data.data.type != 5 && that.data.cardType != 100) { tt.setStorage({ key: 'couponNum', data: "couponNum" }) } } } else if (res.code === 1) { that.setData({ showbutton: false }) tt.hideLoading(); tt.showToast({ title: '支付超时', // 内容 icon: "none" }); } else if (res.code === 2) { that.setData({ showbutton: false }) tt.hideLoading(); tt.showToast({ title: '支付失败', // 内容 icon: "none" }); } else if (res.code === 3) { that.setData({ showbutton: false }) tt.hideLoading(); tt.showToast({ title: '支付关闭', // 内容 icon: "none" }); } else if (res.code === 4) { that.setData({ showbutton: false }) tt.hideLoading(); tt.showToast({ title: '支付取消', // 内容 icon: "none" }); } else if (res.code === 9) { that.setData({ showbutton: false }) tt.hideLoading(); tt.showToast({ title: '订单状态开发者自行获取', // 内容 icon: "none" }); } }, fail: res => { tt.hideLoading(); /** * 支付失败,需要更新订单的状态 */ that.payOrderUpdate(that.data.orderId, payOrderId, 2, '', 'fail', that, that.data.composeOrderType); that.setData({ showbutton: false }) return; }, complete: res => {} }); /// End payment -------- }) .catch(err => { tt.hideLoading(); tt.showToast({ title: err.message, icon: 'none', duration: 2000, mask: false }); }) } } else { // 免费券 that.payOrderUpdate(orderId, "0", 1, '', 'free', that, that.data.composeOrderType); if (that.data.cardType == 100) { tt.setStorage({ key: 'couponNum2', data: "couponNum2" }) } else if (that.data.data.type != "5" && that.data.cardType != 100) { tt.setStorage({ key: 'couponNum', data: "couponNum" }) } } } } else { if (res) { tt.navigateTo({ url: `/pages/bargain/bargainDatail/bargainDatail?orderId=${res.data.mainOrderId}&composeOrderType=${res.data.composeOrderType}`, }) } } }).catch(err => { tt.hideLoading(); that.setData({ showbutton: false, }) if (err.code == 3012) { that.getUnPaidOrder(that.data.couponId); } else { tt.showToast({ title: err.message ? err.message : err.data, icon: 'none', duration: 2000, success(res) { console.log(res); }, fail(res) { console.log("showToast 调用失败", res); }, }); } }) // } else { // //有价券 // console.log(tt.canIUse('createOrder'), "是否支持2.0js-api"); // if (tt.canIUse('createOrder')) { // //支持 支付2.0 js-api // let tempCallbackData = {} // tempCallbackData[that.data.data.couponChannel.ttSpuId] = that.data.data.couponChannel.id // let options = { // callbackData: tempCallbackData, // goodsList: [ // { // quantity: 1, // 购买数量 必填 // price: that.data.priceAndStockObj.salePrice, // 商品价格 必填 // goodsName: that.data.data.title, // 商品名称 必填 // goodsPhoto: that.data.data.coverImg, // 商品图片链接 必填 // goodsId: that.data.data.couponChannel.ttSpuId, // 商品ID 必填 // goodsType: 1, // 商品类型 必填 // goodsLabels: ['过期退', '随时退', '免预约'], // 商品标签 非必填 // dateRule: '', // 使用规则 非必填 // }, // ], // payment: { // totalAmount: that.data.priceAndStockObj.salePrice, // 订单总价 必填 // }, // success: res => { // tt.hideLoading(); // that.setData({ // showbutton: false, // }) // const { orderId, outOrderNo } = res; // that.setData({ orderId, outOrderNo }); // that.payOrderUpdate(outOrderNo, outOrderNo, 1, '', '', that, ''); // }, // fail: res => { // const { orderId, outOrderNo, errNo, errMsg, errLogId } = res; // if (errLogId) { // tt.hideLoading(); // that.setData({ // showbutton: false, // }) // console.log('预下单失败', errNo, errMsg, errLogId); // let tempErrmsg = errMsg.split('开发者拒绝交易:'); // tt.showToast({ // title: tempErrmsg[tempErrmsg.length - 1], // icon: 'none', // duration: 2000, // mask: false // }); // } // if (orderId || outOrderNo) { // tt.hideLoading(); // that.setData({ // showbutton: false, // }) // console.log('支付失败', errNo, errMsg, orderId, outOrderNo); // console.log(that.payOrderUpdate, "payOrderUpdate"); // tt.showToast({ // title: "取消支付", // icon: 'none', // duration: 2000, // mask: false // }); // that.payOrderUpdate(outOrderNo, outOrderNo, 2, '', 'fail') // } // }, // } // console.log(options, "options"); // tt.createOrder(options) // } else { // //不支持 支付2.0 js -api // } // } }).catch(err => { tt.hideLoading() that.setData({ showbutton: false, }) if (err.code == 2011) { tt.showToast({ title: "商户信息没找到", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 2013) { tt.showToast({ title: "商户信息禁用", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 3000) { tt.showToast({ title: "库存不足", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 3001) { tt.showToast({ title: "您已超过限购", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 3002) { tt.showToast({ title: "订单失败", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 3003) { tt.showToast({ title: "订单不存在", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 3004) { tt.showToast({ title: "订单不存在", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 4003) { tt.showToast({ title: "卡券已作废", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 3012) { that.getUnPaidOrder(that.data.couponId); } else if (err.code == 11005) { /** * 将值传到用户手机号授权的页面 * */ if (app.globalData.ifCongPh == 1) { tt.navigateTo({ url: `/pages/getPhone/getPhone?couponChannelId=${that.data.couponChannelId}&mallTenantId=${that.data.mallTenantId}&path=qr`, }); } else { this.setData({ showPhoem: true }) } } else if (err.code == 11006) { // 用户手机已加密 tt.navigateTo({ url: `/pages/getPhone/getPhone?couponChannelId=${that.data.couponChannelId}&mallTenantId=${that.data.mallTenantId}&path=qr` }); } else { tt.showToast({ title: err.message, icon: 'none', duration: 2000, mask: false }); } }) }).catch(err => { tt.hideLoading() that.setData({ showbutton: false, }) console.log(err) if (err.code == 11004) { tt.navigateTo({ url: `/pages/getuserinfo/getuserinfo?fromflag=confirmation&confirmationFlag=${that.data.couponChannelId}`, }) } else { tt.showToast({ title: err.message, icon: "none", duration: 2500 }) } }) }, })