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); }