const app = getApp(); const util = require('../../utils/util.js'); const utils = require('../../utils/utils.js'); const loginApi = require('../../utils/loginApi.js'); const card = require('../../utils/card.js'); Page({ /** * 页面的初始数据 */ data: { hidden: true, amount: 0, totalAmount: 0.0, tagsList: [], schemeData: { minAmount: 0, maxAmount: 0, inputFlag: 1 }, }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { var that = this; card.WxRechargeScheme(function(json) { console.log(json); var result = json.data; var schemeData = {}; if (result.status == 1) { var data = result.data; schemeData.schemeId = data.schemeId; schemeData.schemeNo = data.schemeNo; schemeData.minAmount = data.minAmount; schemeData.maxAmount = data.maxAmount; schemeData.inputFlag = data.inputFlag; var discountContent = data.discountContent; var details = data.detail; var detailsList = []; var desList = []; if (discountContent && discountContent != "" && discountContent != "{}") { console.log("----------------"); for (var value of details) { var des = {}; des.amount = value.startAmount; des.desc = value.giftAmountValue; des.imgurl = "../../images/icon-coupon-one.png"; desList.push(des); } } else { for (var detail of details) { var detailData = {}; var startAmountCn = detail.startAmount; // 起始金额 var startAmount = parseFloat(startAmountCn).toFixed(2); var giftAmountType = detail.giftAmountType; // 赠送类型 0按比例 1固定值 var giftAmountValue = detail.giftAmountValue; // 赠送值 var giftAmount = giftAmountValue; if (giftAmountType == 0) { giftAmount = parseFloat(parseFloat(startAmount) * (parseFloat(giftAmountValue) / 100)).toFixed(2); } else if (giftAmountType == 1) { giftAmount = parseFloat(giftAmountValue).toFixed(2); } detailData.startAmountCn = startAmountCn; detailData.startAmount = startAmount; detailData.giftAmount = giftAmount; detailData.giftAmountCn = parseInt(giftAmount); detailsList.push(detailData); } } that.setData({ schemeData: schemeData, desList: desList, detailsList: detailsList, totalAmount: app.cardInfo.totalAmount, }); } else { that.setData({ totalAmount: app.cardInfo.totalAmount, }); } }); }, /** * */ cy_rechargeRecord: function(e) { var url = "recharge_record" wx.navigateTo({ url: url, }) }, /** * */ cy_memberEquity: function(e) { var url = "cardEquity" wx.navigateTo({ url: url, }) }, /** * */ cy_consumeRecord: function(e) { var url = "consume_record" wx.navigateTo({ url: url, }) }, /** * 选择充值方案 */ cy_rechargeScheme: function(e) { var index = e.currentTarget.dataset.index; for (var map of this.data.desList) { map.imgurl = "../../images/icon-coupon-one.png"; } var map = this.data.desList[index]; map.imgurl = "../../images/icon-coupon-two.png"; this.setData({ amount: map.amount, desList: this.data.desList }); }, /** * 确认充值 */ cy_onceRecharge: function(e) { this.cy_recharge(); }, /** * */ cy_selectAmount: function(e) { var index = e.currentTarget.dataset.index; for (var i = 0; i < this.data.tagsList.length; i++) { var map = this.data.tagsList[i]; map.checked = false; if (index == i) { map.checked = true; this.data.amount = map.amount; } } this.setData({ tagsList: this.data.tagsList, }) }, /** * */ cy_recharge: function() { var that = this; var rechargeAmount = parseFloat(that.data.amount); if (rechargeAmount <= 0) { utils.alertErrorMsg('错误提示', '充值金额不合法'); return; } var totalFee = parseInt(parseFloat(rechargeAmount) * 100); // 先创建充值订单 var date = new Date(); var createTime = app.utils.getFormatTime(date, 1); var params = { "method": "weixin.recharge.order.create", "wid": app.memberWid, "openid": app.openId, "outTradeNo": card.getTradeNo(), "createTime": createTime, rechargeNo: that.data.schemeData.schemeNo, requestAmount: totalFee, cardNo: app.cardNo }; var ignores = []; app.jsapi.memberApi(app.globalData.appMemberKey, app.globalData.appMemberSecret, app.globalData.serverMemberUrl).ajax(params, ignores, function(json) { console.log(json); var result = json.data; if (result.status == 1) { var outTradeNo = result.data.outTradeNo; // // 微信统一下单 that.wxUnifiedorder(outTradeNo, totalFee); } else { that.setData({ hidden: true }); app.msg.showMsg("提示", "微信下单失败"); } }, function(error) { app.msg.showMsg("提示", "网络连接失败"); } ); }, /** * 微信统一下单 */ wxUnifiedorder: function(outTradeNo, totalFee) { var that = this; var params = { "method": 'weixin.unifiedorder', "wid": app.memberWid, "deviceInfo": app.sourceSign, "body": "微信小程序充值", "detail": "微信小程序充值", "attach": app.memberWid, "outTradeNo": outTradeNo, "totalFee": totalFee, "spbillCreateIp": "0.0.0.0", "openid": app.openId, } var ignores = []; ignores.push('deviceInfo'); ignores.push('body'); ignores.push('detail'); ignores.push('attach'); ignores.push('deviceInfo'); app.jsapi.memberApi(app.globalData.appMemberKey, app.globalData.appMemberSecret, app.globalData.serverMemberUrl).ajax(params, ignores, function(json) { var result = json.data; console.log(" =============== ", result); if (result.status == 1) { var data = result.data; var saobeiOrderNo = data.saobeiOrderNo; // 微信支付查询 var timer = setInterval(function() { console.log("定时器查询支付结果"); that.wxQueryOrder(outTradeNo, saobeiOrderNo, function(json) { console.log(json); var result = json.data; if (result.status == 1) { var data = result.data; if (data.status == 1) { clearInterval(timer); // 微信扣款成功 var outTradeNo = data.outTradeNo; var transactionId = data.transactionId; var payMode = data.payMode; if (payMode == "fuyou") { that.cy_selectCardInfo(); app.msg.showMsg("提示", "会员卡充值成功"); } else { that.wxRechargeOrderUpdate(outTradeNo, transactionId); } } } }, function(error) { wx.showModal({ title: '提示', content: '微信支付失败', }) }); }, 2000); wx.requestPayment({ timeStamp: data.timeStamp, nonceStr: data.nonceStr, package: data.package, signType: data.signType, paySign: data.paySign, "success": function(res) { console.log("成功=============" + res); console.log(res); }, "fail": function(res) { console.log("失败=============" + res); console.log(res); clearInterval(timer); that.setData({ hidden: true }); app.msg.showMsg("提示", "微信支付取消"); }, "complete": function(res) { console.log("结束=============" + res); console.log(res); } }); } else { that.setData({ hidden: true }); app.msg.showMsg("提示", "微信支付失败"); } }, function(error) { app.msg.showMsg("提示", "网络连接失败"); } ); }, // 微信订单查询 wxQueryOrder: function(outTradeNo, saobeiOrderNo, success, fail) { var params = { "wid": app.memberWid, 'outTradeNo': outTradeNo, 'method': 'weixin.unifiedorder.query' } if (saobeiOrderNo){ params.saobeiOrderNo = saobeiOrderNo; } console.log(params); var ignores = []; app.jsapi.memberApi(app.globalData.appMemberKey, app.globalData.appMemberSecret, app.globalData.serverMemberUrl).ajax(params, ignores, function(json) { success(json); }, function(error) { fail(error); } ); }, /** * 更新订单状态 */ wxRechargeOrderUpdate: function(outTradeNo, transactionId) { var that = this; var date = new Date(); var payTime = app.utils.getFormatTime(date, 1); var params = { "wid": app.memberWid, "outTradeNo": outTradeNo, "payTime": payTime, "transactionId": transactionId, 'method': 'weixin.recharge.order.update' } var ignores = []; app.jsapi.memberApi(app.globalData.appMemberKey, app.globalData.appMemberSecret, app.globalData.serverMemberUrl).ajax(params, ignores, function(json) { console.log("会员卡充值成功", json); var result = json.data; if (result.status == 1) { that.setData({ hidden: true }); that.cy_selectCardInfo(); app.msg.showMsg("提示", "会员卡充值成功"); } }, function(error) { fail(error); } ); }, /** * 查询卡信息 */ cy_selectCardInfo: function() { var that = this; card.wx_cardInfo(app.cardNo, function(json) { var result = json.data; if (result.status == 1) { app.cardInfo = result.data; that.setData({ totalAmount: app.cardInfo.totalAmount, }); } }, function(err) { }); }, })