confirmPayment.js 10.7 KB
// pack-activity/pack/confirmPayment.js
import util, {
    unixtoTime
} from '../../utils/util';
import App from '../../utils/api';
Page({

    /**
     * 页面的初始数据
     */
    data: {
        opt: {
            detail: {},
            combine_out_trade_no: '',
            totalize: '',
            types: '',
        },
        type: '',
        time: 300,
        countdown: '',
        name: "",
        date: "",
        phone: "",
        calendarData: '',
        sex: "先生",
        indexs: 0,
        sexList: [{
                sex: '先生',
                value: '1',
            },
            {
                sex: '女士',
                value: '2',
            },
            {
                sex: '公司',
                value: '3',
            }
        ]
    },
    modal: '',
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        this.setData({
            opt: {
                detail: options.detail ? JSON.parse(options.detail) : '',
                combine_out_trade_no: options.combine_out_trade_no,
                totalize: options.totalize ? options.totalize : '',
                sid: options.sid ? options.sid : '',
                types: options.types,
                oid: options.oid ? options.oid : '',
                rid: options.rid ? options.rid : '',
                sellerName: options.sellerName ? options.sellerName : '',
            },
            type: options.type,
        })
        console.log('onLoad',{...this.data.opt});
        let obj = wx.getStorageSync('info')
        console.log('objobjobjobj',{...obj})
        if (obj) {
            this.setData({
                name: obj.name,
                date: obj.date,
                phone: obj.phone,
                indexs: obj.sex * 1 - 1,
                calendarData: obj.calendarData,
            })
        }
        this.countdown()
        this.modal = this.selectComponent("#payModal"); //通过给组件所起的id调用组件
    },
    // 购买完成券之后关注公众号
    wananchi() {
        this.closeModal()
        wx.navigateTo({
            url: `/pages/me/wananchi?type=1&oid=${this.data.opt.detail.oid}`
        })
    },
    showModal() {
        this.modal.showModal() //调用组件中打开模态框方法
    },
    confirmPayment() {
        App.PayOnline.CombineTransactionsByNewRecharge({
            combine_out_trade_no: this.data.opt.combine_out_trade_no
        }).then(res => {
            console.log(res.data);
            let that = this;
            if (res.ret != '200') {
                wx.showToast({
                    title: res.msg,
                    duration: 1000,
                    icon: 'none',
                    success: function () {
                        console.log('支付失败', that.data.opt.types);
                        that.callbackFun()
                    }
                })
            }
            if (res.ret == '200') {
                console.log(res.ret);
                wx.requestPayment({
                    timeStamp: res.data.timeStamp + '',
                    nonceStr: res.data.nonceStr,
                    package: res.data.package,
                    signType: res.data.signType,
                    paySign: res.data.paySign,
                    success(ress) {
                        if (ress.errMsg == 'requestPayment:ok') {
                            console.log('支付成功', ress);
                            return that.showModal()
                        }
                        console.log('支付失败', ress);
                        wx.showToast({
                            title: '支付失败,请重新下单',
                            duration: 1000,
                            success: function () {
                                that.callbackFun()
                            }
                        })
                    },
                    fail(ress) {
                        console.log('支付失败', ress);
                        wx.showToast({
                            title: '支付失败,请重新下单',
                            duration: 1000,
                            icon: 'none',
                            success: function () {
                                console.log('支付失败', that.data.opt.types);
                                that.callbackFun()
                            }
                        })
                    },
                })
            }
        })
    },
    // 支付失败回调 types 1邀请函  2提前点餐  3商家端app分享
    callbackFun() {
        let url = '';
        let that = this;
        if (that.data.opt.types == '1') {
            url = '/pages/customer/detail_owner_invitation_new?id=' + that.data.opt.detail.oid;
        }
        if (that.data.opt.types == '2') {
            let cookbookObj = {
                sid: that.data.opt.sid,
                sellerName: that.data.opt.sellerName,
                oid: that.data.opt.oid,
                hasSuccess: '1',
                rid: that.data.opt.rid?that.data.opt.rid:''
            }
            url = `/pack-cookbook/pages/success_new?cookbookObj=${JSON.stringify(cookbookObj)}`;
        }
        if (that.data.opt.types == '3') {
            url = '/pages/reserve/index';
        }
        setTimeout(function () {
            wx.reLaunch({
                url
            })
        }, 1000);
    },
    // 充值后跳转
    recharge() {
        console.log('充值完成跳转', this.data.opt.detail.oid);
        this.closeModal()
        wx.reLaunch({
            url: `/pages/customer/detail_owner_invitation_new?id=${this.data.opt.detail.oid}&hasInvitation=1&hasSellerShare=1&tplid=1`
        })
    },
    // 绑定名称
    bindKeyNameInput(event) {
        const value = event.detail.value.replace(/\s+/g, "");
        this.setData({
            name: value
        })
        console.log(value);
    },
    // 绑定电话
    bindKeyPhoneInput(event) {
        const value = event.detail.value.replace(/\s+/g, "");
        this.setData({
            phone: value
        })
        console.log(value);
    },
    // 购买代金券后跳转
    certificate() {
        console.log({...this.data.opt.detail});
        wx.reLaunch({
            url: '/pages/me/coupon_news'
        })
    },
    closeModal() {
        this.modal.closeModal() //调用组件中关闭模态框方法
    },
    // 点击确认支付
    formSubmit() {
        if (this.data.time == 0) {
            return util.toast('当前订单已过期,请重新进入优惠券购买页面下单', 'none');
        }
        if (this.data.type == '2') {
            let data = this.data
            if (!data.name) {
                util.toast('未填写姓名', 'none')
                return;
            }
            if (!data.phone) {
                util.toast('未填写手机号码', 'none')
                return;
            }
            if (!/^1\d{10}$/.test(data.phone)) {
                util.toast('手机号码错误', 'none')
                return;
            }
            let recharge_money = this.data.opt.detail.recharge_money * 1;
            if (recharge_money == 0) {
                setTimeout(() => {
                    util.toast('您的会员充值已经在办理中,到店消费时请和收银核实,谢谢!', 'none', 3000);
                    wx.navigateBack(1)
                }, 3500);
                return
            }
            this.addInfo()
        } else {
            this.confirmPayment()
        }
    },
    addInfo() {
        let params = {
            sellerid: this.data.opt.sid,
            rname: this.data.name,
            sex: this.data.indexs * 1 + 1, //1男  2女 3公司
            phone: this.data.phone,
            c_day: this.data.calendarData
        }
        console.log({...params});
        App.GuestManage.InsGuest(params).then(res => {
            console.log(res);
            if (res.ret == '200') {
                this.confirmPayment()
                let obj = {
                    name: this.data.name,
                    phone: this.data.phone,
                    sex: this.data.indexs * 1 + 1,
                    calendarData: this.data.calendarData,
                    date: this.data.date,
                }
                wx.setStorageSync('info', obj)
            }
        })
    },
    // 选择日期
    bind_ChangeDate(event) {
        let date = event.detail.value
        var calendarData = new Date(date) * 1/1000;
        this.setData({
            date,
            calendarData
        })
    },
    // 选择性别
    bind_Changesex(event) {
        console.log('event.detail',{...event.detail});
        let indexs = event.detail.value;
        this.setData({
            indexs
        })
        console.log('indexs',indexs);
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },
    // 倒计时
    countdown() {
        var minute = Math.floor(this.data.time * 1 / 60);
        var second = this.data.time % 60;
        second < 10 ? second = '0' + second : '';
        this.setData({
            countdown: minute + ':' + second,
            time: this.data.time - 1
        })
        if (this.data.time == 0) {
            this.setData({
                countdown: '0:00'
            })
            return false;
        }
        setTimeout(this.countdown, 1000);
    },
    // 返回
    navEvent() {
        // 1 邀请函  2 提前点餐  3商家端分享
        if (this.data.opt.types == '1') {
            return wx.reLaunch({
                url: '/pages/customer/detail_owner_invitation_new?id=' + this.data.opt.detail.oid,
            })
        }
        if (this.data.opt.types == '2') {
            let cookbookObj = {
                sid: this.data.opt.sid,
                sellerName: this.data.opt.sellerName,
                oid: this.data.opt.oid,
                hasSuccess: '1',
                rid: this.data.opt.rid?this.data.opt.rid:''
            }
            let url = `/pack-cookbook/pages/success_new?cookbookObj=${JSON.stringify(cookbookObj)}`;
            return wx.reLaunch({
                url
            })
        }
        if (this.data.opt.types == '3') {
            return wx.reLaunch({
                url: '/pages/reserve/index',
            })
        }
    },
    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})