397 lines
12 KiB
JavaScript
397 lines
12 KiB
JavaScript
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()
|
||
|
||
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_pub2_h5" =>微信支付参数 : payType = "alipay_wap" =>支付宝支付参数
|
||
//defaultPayH5 => 决定H5支付页面的payType,由后台配置
|
||
let payType = "wx_pub2_h5" //默认微信选中
|
||
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
|
||
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){
|
||
getOpenId()
|
||
// 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('網絡錯誤');
|
||
}
|
||
});
|
||
}
|
||
|
||
|
||
|
||
//渲染充值列表
|
||
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 = $('<li class="charge"></li>');
|
||
str += `<li class="charge" data-index="${i}" _charge="${chargeProdId}">
|
||
<p class="content"><span class="goldimg"><img src="./images/gold.png"
|
||
alt=""></span><span class="sproutCurrency">
|
||
${prodName.replace(/^[0-9]*/, function ($) { return `<span class="price-list">${$}</span>` })}
|
||
</span><span class="RNB">¥${money}</span></p><p class="tip">${prodDesc}</p>`
|
||
// wpContent.append('<li class="charge" data-index="' + i + '" _charge="' + chargeProdId + '">' + '<p class="content"><span class="goldimg"><img src="./images/gold.png" alt=""></span><span class="sproutCurrency">' + prodName + '</span><span class="RNB">¥' + money + '</span></p>' + '<p class="tip">' + prodDesc + '</p>');
|
||
// wpContent.append(str)
|
||
}
|
||
wpContent.html(str)
|
||
}
|
||
|
||
//获取openid
|
||
const getOpenId = () => {
|
||
$.ajax({
|
||
type: 'GET',
|
||
url: urlPrefix + '/getCodeCallbackMsgFroPub2',
|
||
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=piko',
|
||
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('<p>向<span> ' + nick + '</span></p> <p>(piko号:<span>' + erbanNo + '</span> )</p> <p>充值 <span> ' + price + ' 元?</span></p>');
|
||
payInOutter(packages)
|
||
} else if (res.code === 10108) {
|
||
// $('.cancel1').fadeIn(0)
|
||
// $('.check1').html("取消")
|
||
// mess('为保护您的财产安全,请先在客户端进行实名认证');
|
||
$('.cancel1').fadeOut(0)
|
||
$('.pop1 .content').addClass('shiming')
|
||
mess('<div>为了保护财产安全,请前往app【我的】- 【实名认证】进行实名认证</div><div><img src="./images/shiming.png"></div>');
|
||
} 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/submitPayForPub2?app=piko',
|
||
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('<p>向<span> ' + nick + '</span></p> <p>(piko号:<span>' + erbanNo + '</span> )</p> <p>充值 <span> ' + price + ' 元?</span></p>');
|
||
|
||
payInWxBrowser(packages)
|
||
} else if (res.code === 10108) {
|
||
// $('.cancel1').fadeIn(0)
|
||
// $('.check1').html("取消")
|
||
// mess('为保护您的财产安全,请先在客户端进行实名认证');
|
||
$('.cancel1').fadeOut(0)
|
||
$('.pop1 .content').addClass('shiming')
|
||
mess('<div>为了保护财产安全,请前往app【我的】- 【实名认证】进行实名认证</div><div><img src="./images/shiming.png"></div>');
|
||
} 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_pub2_h5";
|
||
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; //获取数据的钱的值
|
||
let params = {
|
||
chargeProdId: charge,
|
||
payChannel: payType,
|
||
successUrl: urlPrefix + '/peko/modules/payment_new/index.html'
|
||
};
|
||
if (_num === '' || !reg.test(_num)) {
|
||
$('.pop1 .content').removeClass('shiming')
|
||
mess('请输入正确的手机号或者piko号');
|
||
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);
|
||
}
|