let num = $('#num'),
wpContent = $('.wxPayContent'),
shade = $('.shade'),
$content = $('.pop .content'),
cancel = $('#cancel'),
confirm = $('#confirm'),
api = locateJudge(),
$pop = $('.pop'),
lock = false;
let locateObj = getQueryString();
let browser = checkVersion();
const productUrl = 'https://api.pekolive.com'; // 正式环境
const testUrl = 'https://beta.api.pekolive.com'; // 测试环境
//获取域名前缀
function getUrlPrefix() {
if (!EnvCheck()) return undefined;
return EnvCheck() === 'live' ? productUrl : testUrl;
}
const urlPrefix = getUrlPrefix()
// 鉆石比例
var amountPercentage;
// 自定义充值id
var custom_charge_prod;
const toastMsg = (content = '操作完成', time = 2) => {
layer.open({
content,
skin: 'msg',
time
});
}
const showLoading = () => {
layer.open({ type: 2, shadeClose: false });
}
const hideLoading = () => {
layer.closeAll();
}
if (EnvCheck() == 'test') {
let vConsole = new VConsole();
}
//弹窗的函数
function mess(str) {
$('.pop1 .message_').html(str);
$('.pop1').fadeIn(100)
}
//payType = "wx_wap" =>微信支付参数 : payType = "alipay_wap" =>支付宝支付参数
//defaultPayH5 => 决定H5支付页面的payType,由后台配置
let payType = "wx_wap" //默认微信选中
let cerruntIndex = 0 //选中的支付方式的索引
let defaultPayH5 //不再由其配置,貌似已经没用了
let chargeList = [] //微信充值列表
let aLiChargeList = [] //支付宝充值列表(高额)
const getChargeList = () => {
showLoading();
$.ajax({
type: 'GET',
url: urlPrefix + '/chargeprod/listV2?channelType=1&position=web',
success: function (res) {
hideLoading()
if (res.code == 200) {
// defaultPayH5 = res.data.defaultPayH5
custom_charge_prod = res.data.customChargeProd[0].chargeProdId;
chargeList = res.data.list
const { bigList } = res.data
aLiChargeList = chargeList.concat(bigList)
//defaultPayH5:1是支付宝,2是微信,微信支付要过滤掉money大于9998的,支付宝不用过滤
// rebuilidList = rebuildData();
renderList(chargeList);
}
if (browser.weixin) {
if (locateObj.code) {
if (browser.ios) {
window.location.href = window.location.href.split('?')[0]
} else {
getOpenId()
}
}
if (browser.ios) {
$('.tips-tit').fadeIn(30);
}
return
} else {
$('.pay-type').css('display', 'block')
}
},
error() {
hideLoading();
toastMsg('網絡錯誤');
}
});
}
function custom() {
$('.max .currency .wxPayContent').append(`
自定义充值
`)
// money
}
function toDecimal2(x) {
var f = parseFloat(x);
if (isNaN(f)) {
return false;
}
var f = Math.round(x * 100) / 100;
var s = f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + 2) {
s += '0';
}
return s;
}
// 监听自定义充值input
$('.pop2 .content .box input').bind('input propertychange', function () {
var val = $(this).val();
// $('.pop2 .content .box span b').text(val * amountPercentage);
$('.pop2 .content .box span b').text(val * 10);
if (val > 5000) {
$(this).val('');
$('.pop2 .content .box span b').text('0')
toastMsg('金额数值不能大于5000')
} else if (val == '') {
$('.pop2 .content .box span b').text('0')
} else if (!((/^(\+|-)?\d+$/.test(val)) && val > 0)) {
$(this).val('');
$('.pop2 .content .box span b').text('0')
toastMsg('只能输入正整数')
}
// console.log('自定义充值',val);
});
// 取消自定义充值
$('.pop2 .content .butc .pop2_close').click(function () {
lock = false;
$('.pop2').hide()
})
// 确定自定义充值
$('.pop2 .content .butc .pop2_check').click(function () {
var val = $('.pop2 .content .box input').val();
charge = custom_charge_prod;
let reg = /^[0-9]*$/, //输入框的正则匹配
_num = num.val(); //获取输入框的值
if (val < 100) {
$('.pop2 .content .box div input').val('');
$('.pop2 .content .box span b').text('0')
toastMsg('充值金额不能小于100')
}
// else if (!(val % amountPercentage == 0)) {
// $('.pop2 .content .box div input').val('');
// $('.pop2 .content .box span b').text('0')
// toastMsg('只能输入正整数')
// }
else {
$('.pop2 .content .box input').val('');
$('.pop2 .content .box span b').text('0');
$('.pop2').hide()
// lock = !lock;
if (browser.weixin) {
price = val;
} else {
if (payType === "wx_wap") {
price = val; //获取价格
} else if (payType === 'alipay_wap') {
price = val; //获取价格
}
}
let params = {
chargeProdId: charge,
payChannel: payType,
chargeMoney: val,
successUrl: urlPrefix + '/accompany/modules/payment/index.html'
};
if (_num === '') {
$('.pop1 .content').removeClass('shiming')
// mess('请输入正确的手机号或者平台号');
toastMsg('账号不能为空')
lock = !lock;
return;
} else if (!reg.test(_num)) {
$('.pop1 .content').removeClass('shiming')
// mess('请输入正确的手机号或者平台号');
lock = !lock;
return toastMsg('请确定账号是否正确');
}else {
let _reg = /^[1][3,4,5,7,8][0-9]{9}$/;
_reg.test(_num) ? params['phone'] = _num : params['erbanNo'] = _num
}
if (browser.weixin) {
if (browser.ios) {
toastMsg('ios不支持公众号支付');
return;
}
let openid = window.sessionStorage.getItem('user_openid');
console.log(window.sessionStorage);
if (!openid) {
toastMsg('页面未授权,请在公众号菜单进入本页面');
return;
}
params['openId'] = openid;
if (params['phone']) {
params['phone'] = _num;
} else {
params['erban_no'] = _num;
}
delete params['erbanNo'];
delete params.payChannel;
if (locateObj.outerTradeId) {
params['outerTradeId'] = locateObj.outerTradeId
}
submitWxPayment(params);
} else {
if (locateObj.outerTradeId) {
params['outerTradeId'] = locateObj.outerTradeId
}
getPaymentInfo(params)
}
}
})
//渲染充值列表
const renderList = (data) => {
let str = '';
for (let i = 0; i < data.length; i++) {
let chargeProdId = data[i].chargeProdId;
let prodName = data[i].prodName;
let money = data[i].money;
let prodDesc = data[i].prodDesc ? data[i].prodDesc : '';
let $li = $('');
str += `
${prodName.replace(/^[0-9]*/, function ($) { return `${$}` })}
¥${money}
${prodDesc}
`
// wpContent.append('' + '
' + prodName + '¥' + money + '
' + '' + prodDesc + '
');
// wpContent.append(str)
}
wpContent.html(str)
custom();
}
//获取openid
const getOpenId = () => {
$.ajax({
type: 'GET',
url: urlPrefix + '/getCodeCallbackMsg',
data: {
code: locateObj.code
},
success(res) {
if (res.code === 200) {
let data = res.data;
window.sessionStorage.setItem('user_openid', data.openid);
window.location.href = window.location.href.split('?')[0];
} else {
toastMsg(res.message)
}
},
error() {
toastMsg('網絡錯誤');
}
})
}
//外部浏览器获取订单信息
const getPaymentInfo = (params) => {
$.ajax({
type: 'POST',
url: urlPrefix + '/charge/apply2New?app=peko',
data: params,
success: function (res) {
lock = !lock;
if (res.code == 200) {
let packages = res.data;
let nick = packages.nick;
let erbanNo = packages.erbanNo;
$pop.show();
$content.find('.toPerson').html('向 ' + nick + '
(peko号:' + erbanNo + ' )
充值 ' + price + ' 元?
');
payInOutter(packages)
} else if (res.code === 10108) {
// $('.cancel1').fadeIn(0)
// $('.check1').html("取消")
// mess('为保护您的财产安全,请先在客户端进行实名认证');
$('.cancel1').fadeOut(0)
$('.pop1 .content').addClass('shiming')
mess('为了保护财产安全,请前往app【我的】- 【实名认证】进行实名认证
');
} else {
$('.pop1 .content').removeClass('shiming')
mess(res.message);
}
},
error: function (res) {
lock = !lock;
$('.pop1 .content').removeClass('shiming')
mess('请链接网络试试');
}
});
}
//外部浏览器唤起 微信支付/支付宝支付
const payInOutter = (packages) => {
$('#confirm').on('click', () => {
num.val('');
$pop.hide();
$('#confirm').unbind('click')
window.location.href = packages.payInfo.mweb_url
})
}
//微信浏览器获取订单信息
const submitWxPayment = (params) => {
$.ajax({
type: 'POST',
url: urlPrefix + '/wx/submitPay?app=peko',
data: params,
success: function (res) {
lock = !lock;
if (res.code == 200) {
console.log(res);
let packages = res.data;
// var timeStamp = packages.timestamp;//时间戳,自1970年开始
// var nonceStr = packages.nonce_str;//随机串
// var prepayId = packages.prepay_id;
// var paySign = packages.sign;//微信签名
let nick = packages.nick;
let erbanNo = packages.erban_no;
// var appId = packages.appid;
// var signType = packages.sign_type;
// shade.toggle();
// $content.toggle();
$pop.show();
$content.find('.toPerson').html('向 ' + nick + '
(peko号:' + erbanNo + ' )
充值 ' + price + ' 元?
');
payInWxBrowser(packages)
} else if (res.code === 10108) {
// $('.cancel1').fadeIn(0)
// $('.check1').html("取消")
// mess('为保护您的财产安全,请先在客户端进行实名认证');
$('.cancel1').fadeOut(0)
$('.pop1 .content').addClass('shiming')
mess('为了保护财产安全,请前往app【我的】- 【实名认证】进行实名认证
');
} else {
$('.pop1 .content').removeClass('shiming')
mess(res.message);
}
},
error: function (res) {
lock = !lock;
$('.pop1 .content').removeClass('shiming')
mess('请链接网络试试');
}
})
}
//微信浏览器唤起支付
const payInWxBrowser = (packages) => {
$('#confirm').on('click', function () {
num.val('');
$pop.hide();
if ($.isEmptyObject(packages)) {
toastMsg('出错了,请刷新页面重试');
return;
}
const { realPayChannel } = packages;
if (realPayChannel === 'hui_fu_bao') {
const { redirectUrl } = packages;
window.location.href = redirectUrl
} else {
const { appid, timestamp, nonce_str, prepay_id, sign_type, sign } = packages
function onBridgeReady() {
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
"appId": appid,
"timeStamp": timestamp,
"nonceStr": nonce_str,
"package": prepay_id,
"signType": sign_type,
"paySign": sign
},
function (res) {
window.location.reload();
}
);
}
if (typeof WeixinJSBridge == 'undefined') {
if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
} else if (document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
}
} else {
onBridgeReady();
}
}
});
}
$(function () {
setTimeout(() => {
getChargeList();
$('.shade-mask').show();
$('body').css('overflow', 'hidden')
}, 100);
let main = {
init: function () {
// this.getData();
this.eventRegister();
},
eventRegister: function () {
//切换支付类型,是支付宝与微信
$('.pay-type .type').on('click', 'div', function () {
let index = $(this).index();
if (index === cerruntIndex) return;
cerruntIndex = index;
$(this).addClass('active').siblings().removeClass('active');
if ($(this).hasClass('wxpay')) {
payType = "wx_wap";
renderList(chargeList);
} else {
$('.alipay .tip').css({
top: '-1px',
right: '-1px'
})
payType = "alipay_wap";
renderList(aLiChargeList)
}
})
//关闭弹窗
$('.btn').on('click', function () {
$('.shade-mask').hide();
$('body').css('overflow', 'auto')
})
$('.check1').on('click', function () {
$('.pop1').fadeOut(100);
})
$('.cancel1').on('click', function () {
$('.pop1').fadeOut(100);
window.location.href = 'https://www.zhongjialx.com/'
})
$('#cancel').on('click', function () {
$('#confirm').unbind('click')
$pop.toggle();
// window.location.href = window.location.href + '?timestamp=' + (new Date()).valueOf();
});
// $('.failed').on('click', function () {
// $('.pay-reminders').fadeOut(90)
// })
// $('.pay-success').on('click', function () {
// $('.pay-reminders').fadeOut(90)
// })
//点击li,选择要充值的金额,点击出现 向***充值***元 的弹窗
$('.wxPayContent').on('click', 'li', function () {
if (lock) return;
lock = !lock;
let charge = $(this).attr('_charge');//传到后台获取用户是否存在的字符串的参数
let reg = /^[0-9]*$/, //输入框的正则匹配
_num = num.val().trim(); //获取输入框的值
index = $(this).data('index');
// price = aLiChargeList[index].money; //获取数据的钱的值
// 判断是否是自定义充值
if ($(this).attr('custom') == 'custom') {
$('.pop2').show()
} else {
if (browser.weixin) {
// price = wxPubchargeList[index].money
if (payType === "wx_wap") {
price = chargeList[index].money; //获取价格
} else if (payType === 'alipay_wap') {
price = aLiChargeList[index].money; //获取价格
}
} else {
if (payType === "wx_wap") {
price = chargeList[index].money; //获取价格
} else if (payType === 'alipay_wap') {
price = aLiChargeList[index].money; //获取价格
}
}
let params = {
chargeProdId: charge,
payChannel: payType,
successUrl: urlPrefix + '/peko/modules/payment/index.html'
};
if (_num === '' || !reg.test(_num)) {
$('.pop1 .content').removeClass('shiming')
mess('请输入正确的手机号或者peko号');
lock = !lock;
return;
} else {
let _reg = /^[1][3,4,5,7,8][0-9]{9}$/;
_reg.test(_num) ? params['phone'] = _num : params['erbanNo'] = _num
}
if (browser.weixin) {
if (browser.ios) {
toastMsg('ios不支持公众号支付');
return;
}
let openid = window.sessionStorage.getItem('user_openid');
if (!openid) {
toastMsg('页面未授权,请在公众号菜单进入本页面');
return;
}
params['openId'] = openid;
if (params['phone']) {
params['phone'] = _num;
} else {
params['erban_no'] = _num;
}
delete params['erbanNo'];
delete params.payChannel;
submitWxPayment(params);
} else {
getPaymentInfo(params)
}
}
});
}
};
main.init();
})
wx.ready(function () {
//2.3 隐藏不用的按钮
// alert("隐藏不用的按钮");
wx.hideMenuItems({
menuList: ["menuItem:share:timeline", "menuItem:copyUrl", "menuItem:share:appMessage", "menuItem:share:qq", "menuItem:share:weiboApp", "menuItem:favorite", "menuItem:share:facebook", "menuItem:share:QZone", "menuItem:editTag", "menuItem:delete", "menuItem:copyUrl", "menuItem:originPage", "menuItem:readMode", "menuItem:openWithQQBrowser", "menuItem:openWithSafari", "menuItem:share:email", "menuItem:share:brand"] // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮
});
})
// 跳转制定页面的html
function wind_reload(url) {
window.location.assign(url);
}