You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

557 lines
15 KiB
JavaScript

9 months ago
const app = getApp();
const card = require('../../utils/card.js');
const util = require("../../utils/util.js")
Page({
/**
* 页面的初始数据
*/
data: {
selectRecharge: null,
showUpWindow: false,
hidden: true,
msg: "加载中...",
color: "#FFC639",
isRegister:true,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.setData({
availableAmount: app.globalData.cardInfo.availableAmount,
color: app.globalData.color
});
console.log("----------------会员卡号", app.globalData.cardNo);
},
onShow:function(){
console.log("查询会员信息" + app.globalData.user);
this.setData({ color: app.globalData.color })
this.cy_queryMemberInfo();
},
/**
* 查询会员信息
*/
cy_queryMemberInfo(){
var that = this;
var user = that.data.user;
var params = {
"method": "small.weixin.member.info.wid1",
"wid": app.globalData.memberWid,
"openId": app.openId,
};
// 忽略签名参数
var ignores = ["openId", "nickName", "gender", "avatarUrl", "country", "province", "city"];
app.jsapi.api(app.globalData.memberAppKey, app.globalData.memberAppSecret,app.globalData.memberUrl ).ajax(params, ignores,
function(json) {
console.log(json);
var result = json.data;
if (result.status == 1) {
var data = result.data;
if(data.cardNo){
wx.setStorageSync("cardNo", data.cardNo);
wx.setStorageSync("memberId", data.memberId);
app.globalData.cardNo = data.cardNo;
app.globalData.memberId = data.memberId;
that.cy_selectCardInfo();
that.cy_getRechargeScheme();
}else{
wx.navigateTo({
url: 'memberRegister',
})
}
}
});
},
/**
* 查询卡信息
*/
cy_selectCardInfo: function() {
var that = this;
card.wx_cardInfo(app.globalData.cardNo, function(json) {
console.log(json);
var result = json.data;
if (result.status == 1) {
var cardInfo = result.data;
wx.setStorageSync("cardInfo", cardInfo);
app.globalData.cardInfo = cardInfo;
that.setData({
availableAmount: cardInfo.availableAmount,
totalPoint: cardInfo.totalPoint,
level: cardInfo.level,
couponNum: cardInfo.couponNum
});
} else {
// wx.showToast({
// title: result.errMessage,
// icon: "none"
// })
}
}, function(err) {
wx.showToast({
title: "网络链接失败",
icon: "none"
})
});
},
/**
* 获取充值方案
*/
cy_getRechargeScheme: function () {
var that = this;
card.WxRechargeScheme(function (json) {
console.log(json.data);
var data = json.data;
if (data.status == 1) { //
var result = data.data;
var discountContent = JSON.parse(result.discountContent);
var list = [];
for (var key in discountContent) {
var item = {};
item.select = false;
item.rechargeNo = result.schemeNo;
item.des = discountContent[key];
item.amount = key;
list.push(item);
}
that.setData({
list: list
});
} else {
wx.showToast({
title: data.message,
icon: "none"
})
}
}, function (err) {
console.log(err);
});
},
/**
* 余额明细
*/
cy_tapBalanceDetail: function () {
wx.navigateTo({
url: 'balanceDetail',
})
},
/**
* 充值
*/
cy_selectReacharge: function (e) {
var index = e.currentTarget.dataset.index;
for (var item of this.data.list) {
item.select = false;
}
var item = this.data.list[index];
item.select = true;
this.setData({
selectRecharge: item,
list: this.data.list
});
},
/**
* 去充值
*/
cy_clickRecharge: function () {
var that = this;
var recharge = that.data.selectRecharge;
if (!recharge) {
wx.showToast({
title: '请选择充值方案',
icon: 'none'
})
return;
}
that.setData({
hidden: false
})
var totalFee = parseInt(parseFloat(recharge.amount) * 100);
// 先创建充值订单
var createTime = app.utils.getFormatTime(new Date(), 1);
var params = {
"method": "weixin.recharge.order.create",
"wid": app.globalData.memberWid,
"openid": app.openId,
"outTradeNo": card.getTradeNo(),
"createTime": createTime,
rechargeNo: recharge.rechargeNo,
requestAmount: totalFee,
cardNo: app.globalData.cardNo
};
if(app.storeId){
params.shopId = app.storeId;
}
var ignores = [];
console.log("-----------------", params);
//
app.jsapi.memberApi(app.globalData.memberAppKey, app.globalData.memberAppSecret, app.globalData.memberUrl).ajax(params, ignores,
function (json) {
console.log(json);
var result = json.data;
if (result.status == 1) {
recharge.cardNo = result.data.cardNo; // 充值卡号
recharge.outTradeNo = result.data.outTradeNo; // 充值单号
recharge.rechargeNo = result.data.rechargeNo; // 充值方案编号
recharge.requestAmount = result.data.requestAmount; // 充值金额
that.cy_wxUnifiedOrder();
} else {
that.setData({
hidden: true
});
app.msg.showMsg("提示", "微信下单失败 " + result.message);
}
},
function (error) {
app.msg.showMsg("提示", "网络连接失败");
}
);
},
/**
* 微信JSAPI下单
*/
cy_wxUnifiedOrder: function () {
var that = this;
var recharge = that.data.selectRecharge;
var params = {
"method": 'weixin.unifiedorder',
"wid": app.globalData.memberWid,
"deviceInfo": app.sourceSign,
"body": "微信小程序充值",
"detail": "微信小程序充值",
"attach": app.globalData.memberWid,
"outTradeNo": recharge.outTradeNo,
"totalFee": recharge.requestAmount,
"spbillCreateIp": "0.0.0.0",
"openid": app.openId,
}
console.log(params);
var ignores = ["deviceInfo", "body", "detail", "attach"];
app.jsapi.memberApi(app.globalData.memberAppKey, app.globalData.memberAppSecret, app.globalData.memberUrl).ajax(params, ignores,
function (json) {
console.log(json);
var data = json.data;
if (data.status == 1) {
that.setData({
hidden: true
});
that.cy_wxRequestPayMent(data.data);
} else {
that.setData({
hidden: true
});
var message = "";
if (data.message) {
message = data.message;
}
if (data.errMessage) {
message = data.errMessage;
}
wx.showToast({
title: message,
icon: "none"
})
}
},
function (err) {
wx.showToast({
title: '网络状态不稳定,请重试',
icon: "none"
})
});
},
/**
* 微信支付
*/
cy_wxRequestPayMent: function (data) {
var that = this;
wx.requestPayment({
timeStamp: data.timeStamp,
nonceStr: data.nonceStr,
package: data.package,
signType: data.signType,
paySign: data.paySign,
success: function (res) {
console.log("成功=============");
that.cy_wxQueryOrder(data);
},
fail: function (res) {
console.log("失败=============1111", res);
},
complete: function (res) {
if (res.errMsg == "requestPayment:fail cancel") {
wx.showToast({
title: '您已经取消会员充值',
icon: "none"
})
}
}
});
},
/**
* 查询支付结果
*/
cy_wxQueryOrder: function (data) {
var that = this;
var params = {
'method': 'weixin.unifiedorder.query',
"wid": app.globalData.memberWid,
'outTradeNo': data.outTradeNo,
}
if (data.saobeiOrderNo) {
params.saobeiOrderNo = data.saobeiOrderNo;
}
var ignores = [];
app.jsapi.memberApi(app.globalData.memberAppKey, app.globalData.memberAppSecret, app.globalData.memberUrl).ajax(params, ignores,
function (json) {
console.log( json);
var data = json.data;
if (data.status == 1) {
wx.showToast({
title: '充值成功',
icon: "none",
})
that.cy_selectCardInfo();
that.cy_queryTopUpWindowList();
wx.requestSubscribeMessage({
tmplIds: app.globalData.templateMsgList,
success: function (params) {
console.error(" success ", params)
var data = {
'openId': wx.getStorageSync('openId'),
'formId': "1234566",
'wid': app.globalData.memberWid,
'sendType': "recharge",
'method': 'get.smweixin.formId',
'memberName': wx.getStorageSync('cardInfo').name,
'cardNo': wx.getStorageSync('cardInfo').cardNo,
'mobile': wx.getStorageSync('cardInfo').mobile,
'memberId': wx.getStorageSync('memberId'),
'rechargeNo': that.data.selectRecharge.outTradeNo,
}
var ignores = ["memberName"];
app.jsapi.memberApi(app.globalData.memberAppKey, app.globalData.memberAppSecret, app.globalData.memberUrl).ajax(data, ignores,
function (json) { },
function (error) { })
},
fail: function (params) {
console.error(" error ", params)
}
})
} else {
wx.showToast({
title: data.errMessage,
icon: "none"
})
}
},
function (err) {
wx.showToast({
title: '网络连接异常,已扣款请联系商家',
icon: "none"
})
});
},
/**
* 查询卡信息
*/
cy_selectCardInfo: function () {
var that = this;
card.wx_cardInfo(app.globalData.cardNo, function (json) {
console.log(json);
var result = json.data;
if (result.status == 1) {
var cardInfo = result.data;
wx.setStorageSync("cardInfo", cardInfo);
app.globalData.cardInfo = cardInfo;
that.setData({
availableAmount: cardInfo.availableAmount,
totalPoint: cardInfo.totalPoint,
level: cardInfo.level,
couponNum: cardInfo.couponNum
});
} else {
wx.showModal({
title: '提示',
content: result.errMsg,
});
}
}, function (err) {
wx.showModal({
title: '提示',
content: '网络链接失败',
})
});
},
cy_queryTopUpWindowList: function () {
var that = this;
card.judgeUpWindown(function (success) {
var result = success.data;
if (result.code != 1) {
if (result.data.status == 1) {
if (result.data.schemeId) {
that.setData({
schemeId: result.data.schemeId
})
}
var upWindowList = [];
var items = {};
for (var item of result.data.list) {
items.title = item.title;
items.id = item.id;
items.logoUrl = "http://imgv1.jwsaas.com/" + item.logoUrl;
if (item.quantity) {
items.quantity = item.quantity
} else {
items.quantity = 0
}
if (item.dateType == 0) {
var startTime = "";
var endTime = "";
if (item.beginTimestamp) {
startTime = util.formatTimeV(new Date(parseInt(item.beginTimestamp)), "yyyy-MM-dd");
}
if (item.endTimestamp) {
endTime = util.formatTimeV(new Date(parseInt(item.endTimestamp)), "yyyy-MM-dd");
}
items.time = startTime + " 至 " + endTime;
} else if (item.dateType == 1) {
if (item.fixedBeginTerm || item.fixedBeginTerm == 0) {
var pre = "";
if (item.fixedBeginTerm == 0) {
pre = "立即生效";
} else {
pre = item.fixedBeginTerm + "天后生效";
}
var sup = "";
if (item.fixedTerm) {
sup = " 有效期" + item.fixedTerm + "天";
}
items.time = pre + sup;
}
}
items.cardTypeCn = item.cardType == "CASH" ? "代金券" : item.cardType == "DISCOUNT" ? "折扣券" : item.cardType == "GIFT" ? "兑换券" : item.cardType == "PRODUCT" ? "单品券" : "";
var content = "";
if (items.cardTypeCn == "兑换券") {
if (item.subTitle) {
content = item.subTitle
}
} else if (items.cardTypeCn == "代金券") {
var leastCost = 0;
var reduceCost = 0;
if (item.leastCost) leastCost = item.leastCost
if (item.reduceCost) reduceCost = item.reduceCost
content = "满" + leastCost + "元 减 " + reduceCost + " 元";
} else if (items.cardTypeCn == "折扣券") {
if (item.discount) {
content = item.discount + "折";
}
} else if (items.cardTypeCn == "单品券") {
if (item.grantType == '1') content = item.discount + "折"
if (item.grantType == '2') content = "满" + item.leastCost + "元 减" + item.reduceCost + "元"
}
items.content = content;
upWindowList.push(items)
items = {};
}
var showUpWindow = false;
if (upWindowList.length > 0) {
showUpWindow = true;
}
that.setData({
upWindowList: upWindowList,
showUpWindow: showUpWindow
})
}
}
}, function (err) {
wx.showModal({
title: '提示',
content: '网络链接失败',
})
}, 3)
},
receiveUpWindow: function () {
var that = this;
that.setData({
receive: false
})
var cardNo = wx.getStorageSync("memberInfo").cardNo;
var schemeId = that.data.schemeId;
card.receive(schemeId, function (success) {
var result = success.data;
that.setData({
receive: true
})
if (result.status == 1) {
that.setData({
showUpWindow: false
})
util.showSuccessMsg("领取成功快去使用吧", "none")
} else {
util.showWaring("领取失败!", "none")
}
}, function fail(err) {
console.log(err);
wx.showToast({
title: "网络连接不稳定, 请重试",
icon: "none"
})
})
},
//关闭弹窗
closeUpWindows: function () {
this.setData({
showUpWindow: false
})
card.closeUpWindow(this.data.schemeId, function (success) { }, function fail(err) {
console.log(err);
wx.showToast({
title: "网络连接不稳定, 请重试",
icon: "none"
})
})
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
},
})