|
|
"use strict";!function(t,e){function n(e){var n=new RegExp("(^|&)"+e+"=([^&]*)(&|$)","i"),o=t.location.search.substr(1).match(n);return null!=o?unescape(o[2]):null}function o(e){for(var n=t.location.search.substring(1),o=n.split("&"),i=0;i<o.length;i++){var a=o[i].split("=");if(a[0]==e)return a[1]}return""}function i(){var e=n("api_env"),o=t.location.host,i="https://mall.csdn.net",a=document.getElementsByTagName("meta").ordercart;!e&&a&&a.content&&a.content.length?o=JSON.parse(a.content).api_env:e&&(o=e);var s=/^beta|test|loc[a-z]*/;return o.indexOf(".blog.csdn.net")>=0?i="https://mall.csdn.net":o.match(s)?i="https://test-mall-order.csdn.net":o.match(/^pre-|pre[a-z]*/)&&(i="https://pre-mall.csdn.net"),i}function a(n,o,i){o=isNaN(o)?3e3:o;var a=document.createElement("div");a.innerHTML=n,a.style.cssText="width:124px;opacity: 0.8;height: 40px;background:rgba(34,34,38,1);color: rgb(255, 255, 255);line-height: 40px;text-align: center;border-radius: 4px;position: fixed;top: 35%;left:50%;margin-left:-62px;z-index: 999999;font-size: 16px;",document.getElementById("user-ordertip").appendChild(a),setTimeout(function(){a.style.webkitTransition="-webkit-transform 0.5s ease-in, opacity 0.5s ease-in",a.style.opacity="0",setTimeout(function(){document.getElementById("user-ordertip").removeChild(a),i&&(e("#user-ordertip-box").remove(),t.location.reload())},500)},o)}function s(t,n,o){e("#ordertip_notify").show().html('<img class="pay_icon" src="https://csdnimg.cn/release/download/images/'+t+'.png"/><span class="pay_tip">'+n+"</span>"),e("#ordertip_qr_code").html('<img src="https://csdnimg.cn/public/static/img/csdn-userimg250.gif" width="130" height="130"/>'),e("#ordertip_notify .pay_icon,#ordertip_notify .pay_tip").on("click",function(){u.getPayCode()})}function d(){s("pay_error","已扫码<br>请在手机端操作","")}function r(){s("pay_error","获取失败,点击重试","code_2")}function c(){s("pay_time_out","点击重新获取","")}function l(){a("支付成功","2000",!0)}function p(){this.goodType="",this.goodsList={},this.goodsInfo={},this.isUseBalance=!0,this.sale="",this.toPay="",this.errType="",this.reportExt={},this.navList=[],this.payMethods=[],this.price=0,this.payUrl="",this.params={}}t.csdn=t.csdn||{},csdn.userOrderTip=csdn.userOrderTip?csdn.userOrderTip:{};var g="https://g.csdnimg.cn/user-ordertip/4.1.3/images";!function(t){var e=document.createElement("link");e.rel="stylesheet",e.type="text/css",e.href=t,document.getElementsByTagName("head")[0].appendChild(e)}("https://g.csdnimg.cn/user-ordertip/4.1.3/user-ordertip.css"),p.prototype={constructor:p,close:function(){e("#user-ordertip").remove()},show:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.getOrderTipData(this.init,t)},init:function(t){var e=this;e.params=t,e.sale=t.sale_source||o("sale_source"),e.reportExt=t.report_ext||{},-1!=this.navList.findIndex(function(e){return e.flag==t.flag})?e.goodType=t.flag:e.goodType=e.goodType,e.getGoodsShowList(t),e.renderDialog(),e.setDefaultGoodsItem()},renderDialog:function(){var t=this;t.renderUserOrderTip(),t.renderNav(),t.renderGoodRights(),t.renderPaymenthods(),t.renderPaymentInfo()},renderUserOrderTip:function(){var t=this,n=e('<div id="user-ordertip">\n <div class="user_ordertip_dialog">\n <div class="ordertip_dialog_wrapper">\n <div class="dialog_wrapper_header">\n <div class="dialog_title"></div>\n <span class="dialog_header_btn"> + </span>\n </div>\n \n <div class="dialog_wrapper_content">\n <div class="dialog_product"></div>\n <div class="dialog_rights"></div>\n\n <div class="dialog_payment">\n <li class="recharge_mode '+(0!=t.price?"block":"none")+'">\n <div class="recharge_mode_qr_code" id="ordertip_qr_code">\n <img class="loading" src="'+g+'/checked.png" width="50" height="50">\n </div>\n <div id="ordertip_notify" class="pay_notify"></div>\n <p class="scan_code">\n <span class="pay_intro">扫码支付</span>\n </p>\n </li>\n\n <div class="commodity_box">\n \n </div>\n </div>\n\n </div>\n </div>\n </div>\n <div class="user_ordertip_mask"></div>\n </div>');e("body").prepend(n),t.$NavBox=n.find(".dialog_title"),t.$ProductBox=n.find(".dialog_product"),t.$RightsBox=n.find(".dialog_rights"),t.$PaymentInfoBox=n.find(".dialog_payment"),t.$PayMethodsBox=n.find(".scan_code"),t.$PayMentInfo=n.find(".commodity_box"),e(".dialog_wrapper_header .dialog_header_btn").on("click",function(e){t.close()}),n.on("click",function(n){e(n.target).find(".ordertip_dialog_wrapper").length&&t.close()})},renderNav:function(){var t=this,n=e(""+t.navList.map(function(e){return e.active=t.goodType==e.flag,'<li class="'+(e.active?"active ":"")+"\" data-flag='"+e.flag+"' data-report-click='"+JSON.stringify(e)+"'>\n "+e.extend1+"\n </li>"}).join(""));return t.$NavBox.append(n),n.on("click",function(n){t.goodType=e(this).data("flag"),t.renderProductList(),t.getGoodsInfo(),e(".dialog_title li").removeClass("active"),t.renderGoodRights(),t.renderPaymentInfo(),e(this).addClass("active")}),this},setDefaultGoodsItem:function(){var t=this,e=t.goodsList.find(function(e){return e.ext.goodsId===t.params.goods_id});t.navList.map(function(n){if(t.params.flag==n.flag&&e)return void(n.default=t.params.goods_id);if(""==n.default){var o=t.goodsList.find(function(t){if(t.ext.flag==n.flag&&t.ext.default)return n});n.default=o.ext&&o.ext.goodsId}}),t.renderProductList()},renderProductList:function(){var t=this,n=t.goodsList.filter(function(e){return e.ext.flag==t.goodType}),o=this.navList.find(function(e){return e.flag==t.goodType}),i=e(""+n.map(function(e,n){return'<div class="dialog_vip vip_margin '+(e.ext.goodsId==o.default?"default":"")+'" \n data-index="'+n+"\"\n data-report-click='"+JSON.stringify(t.showList[e.ext.goodsId])+"' \n goods_id=\""+e.ext.goodsId+'"\n product_id ="'+e.ext.productId+'">\n <span class="'+(e.ext.activityContent?"product_tips":"no")+'">'+e.ext.activityContent+'</span>\n <div class="product_name">'+e.title.split(":")[0]+'</div>\n <p class="product_amount"><span>¥</span>'+e.ext.price.split(".")[0]+'</p>\n <div class="'+(e.ext.default?"vip_tj":"no")+'">推荐</div>\n </div>'}).join("")),a=e(""+n.map(function(e,n){return'<div class="dialog_vip eBooks_box color_gold '+(e.ext.goodsId==o.default?"default":"")+'"\n data-index="'+n+"\"\n data-report-click='"+JSON.stringify(t.showList[e.ext.goodsId])+"' \n goods_id=\""+e.ext.goodsId+'"\n product_id="'+e.ext.productId+'">\n <div class="product_name">'+e.title.split(":")[0]+'</div>\n <div class="product_desc">\n <p class="product_amount">\n <span>¥</span>'+Number(e.ext.isFirstOrder?e.ext.firstOrderPrice:e.ext.price).toFixed(1)+'\n \n <span class = "contract_box '+(e.ext.isContract?"":" no ")+'">\n <i class="first_order '+(e.ext.isFirstOrder?"":"no")+'">首单特惠</i>\n <i class="contract">连续包月¥'+(1==e.ext.isContract?e.ext.price:e.ext.originalPrice)+'/月</i>\n </span>\n \n <em class="'+(e.ext.isContract?"no":"")+'">原价'+e.ext.originalPrice+'元</em>\n </p>\n </div>\n <div class="vip_tj '+(e.ext.isContract?"":"no")+'">自动续费</div>\n </div>'}).join(""));t.$ProductBox.html(""),"28"==t.goodType?t.$ProductBox.append(a):t.$ProductBox.append(i),e(".dialog_product .dialog_vip").on("click",function(n){var o=this,i={goods_id:e(this).attr("goods_id"),product_id:e(this).attr("product_id"),flag:t.goodType};t.navList.map(function(n){n.flag==t.goodType&&(n.default=e(o).attr("goods_id"))}),e(".dialog_product .dialog_vip").removeClass("default"),e(this).addClass("default"),t.getGoodsInfo(i),t.renderGoodRights(),t.renderPaymentInfo()})},renderGoodRights:function(){var t=this,e='<div class="dialog_rights">\n <p class="ordertip_dialog_title">\n <span>'+t.goodsInfo.name+'</span><i class="vip_qy"> <img src="'+g+'/vip.png" alt=""> 权益详情</i>\n </p>\n </div>';t.$RightsBox.html(""),t.$RightsBox.append(e)},renderPaymenthods:function(){var t=this,e=""+t.payMethods.map(function(t){return'<img class="icon_item '+t.name+'" src='+JSON.stringify(t.image)+' alt="img">'}).join("");t.$PayMethodsBox.prepend(e)},renderPaymentInfo:function(){var t=this,n='<ul class="commodity_desc">\n <li class="amount_actually">\n 实付金额<span class="num">¥ <b>'+t.price+"</b></span><em>原价<i>"+t.goodsInfo.old_price+'</i>元</em>\n </li>\n \n <li class="gift '+(t.goodsInfo.discount_msg?"block":"no")+'">\n <img src="'+g+'/enjoy.png" alt="">\n <span>'+t.goodsInfo.discount_msg+'</span>\n </li>\n\n <li class="user_balance '+(t.isUseBalance?"active":"")+'" >\n <img src="'+g+'/unchecked.png" alt="" class="unchecked">\n <img src="'+g+'/checked.png" alt="" class="checked">\n 钱包余额 <b class="num">'+t.goodsInfo.available_amount+'</b>\n <div class="balance_tips_box">\n <img src="'+g+'/help.png" alt="" class="help">\n <span class="balance_tips">\n <i class="chat"></i>\n <b>抵扣说明:</b>\n <em>1、余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣;</em>\n <em>2、余额无法直接购买下载,可以购买VIP、C币套餐及课程;</em>\n </span>\n </div>\n </li>\n\n <li class = "agree active '+("28"==t.goodType?"block":"")+'" >\n 支付即同意自动续费协议,自动续费15元/月,可随时取消\n <a href="https://blogdev.blog.csdn.net/article/details/109030727" target="_blank">\n <img src="'+g+'/help.png" alt="" class="help">\n </a>\n </li>\n\n <a href="'+t.payUrl+'" class="btn '+(0!=t.price?"none":"block")+'" id="pay_btn">确定支付</a>\n </ul>';t.$PayMentInfo.html(""),t.$PayMentInfo.append(n),e(".commodity_box .commodity_desc .user_balance").on("click",function(){t.goodsInfo.available_amount&&(t.isUseBalance=!t.isUseBalance,t.goodsCodeData(),t.getPayCode(),t.renderPaymentInfo())})},renderPayCode:function(t,n){QRCode?n.pay_url&&(e("#ordertip_qr_code").html(""),e("#ordertip_notify").hide(),e("#pay_btn").attr("href",n.pay_url),new QRCode(document.getElementById("ordertip_qr_code"),{text:n.pay_url,width:130,height:130})):console.warn("qrcode脚本不存在,请检查!")},getGoodsShowList:function(t){var n=this;e.ajax({url:i()+"/mp/mallorder/api/internal/goods/showList",type:"GET",dataType:"json",contentType:"application/json",async:!1,xhrFields:{withCredentials:!0},success:function(e){e.data&&e.data.length?(n.goodsList=e.data,t.goods_id&&t.flag==n.goodType?n.getGoodsInfo(t):n.getGoodsInfo(n.findDefaultGood())):console.warn("获取商品列表失败")},error:function(t){console.warn("获取商品列表失败")}})},findDefaultGood:function(){var t=this;return t.goodsList.find(function(e){return e.ext.flag==t.goodType&&1===e.ext.default})||{}},getGoodsInfo:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.findDefaultGood(),n=this,o=t;t&&t.ext&&(o={goods_id:t.ext.goodsId,product_id:t.ext.productId,flag:n.goodType}),e.ajax({url:i()+"/mp/mallorder/api/internal/goods/getGoodsInfo",type:"GET",dataType:"json",contentType:"application/json",async:!1,xhrFields:{withCredentials:!0},data:o,success:function(t){200==t.code&&t.data?(n.goodsInfo=t.data,n.payMethods=t.data.payTypeList,n.isUseBalance=!!t.data.available_amount,n.goodsCodeData(),n.getPayCode(t.data)):console.warn("该商品暂无数据")},error:function(t){console.warn("该商品暂无数据")}})},goodsCodeData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.goodsInfo.new_price,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.goodsInfo.available_amount;if(this.isUseBalance){var o=t-n<0?0:(100*t-100*n)/100;this.price=Number(o).toFixed(2)}else this.price=Number(t);Number(this.price)<=0?e(".recharge_mode").addClass("none"):e(".recharge_mode").removeClass("none")},getPayCode:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.goodsInfo,e=this;cart.qrPay({product_id:t.product_id,goods_id:t.goods_id,flag:t.flag,sale_source:e.sale,report_ext:e.reportExt,is_use_balance:Number(e.isUseBalance),coupon_key:t.coupon_key,use_cache:!0,success_function:e.renderPayCode,error_function:r,timeout_function:c,payment_function:d,get_pay_success_callback:l})},getOrderTipData:function(t,n){var o=this;e.ajax({url:"https://img-home.csdnimg.cn/data_json/jsconfig/mall_ordertip.json",type:"get",dataType:"JSON",contentType:"application/x-www-form-urlencoded; charset=utf-8",success:function(e){o.navList=e.navList,o.goodType=e.goodType,o.showList=e.showList,n&&n.tags&&(o.navList=e.navList.filter(function(t){return n.tags.includes(t.flag)})),t&&t.call(o,n)},error:function(e){t&&t.call(o)}})}};var u=new p;t.csdn.userOrderTip={show:u.show.bind(u),close:u.close.bind(u)}}(window,jQuery); |