ctmo_wechat_recharge_js

1888網站繳費的代碼庫(WeChat版)

Dit script moet niet direct worden geïnstalleerd - het is een bibliotheek voor andere scripts om op te nemen met de meta-richtlijn // @require https://update.greasyfork.org/scripts/431889/1382771/ctmo_wechat_recharge_js.js

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

/**
 * 繳費充值(多号码充值)
 */
var multiRecharge = {};

var phoneFlag = 0;
var moneyFlag=0;
var i=1;
var selectId,selectDom;
multiRecharge.addPhone = function() {
	if (i>999999){
		$.toast("添加號碼已達到限制", "text");
		return;
	}
	html = '<div class="weui-panel no-hd no-margin" id="jiaofei_'+phoneFlag+'">';
	html += '<div class="weui-panel__hd">';
	html += '<input  style="width:20px;height:20px;margin: 5px 5px;" name="item" onclick="multiRecharge.getAmount(this)" id="check_'+phoneFlag+'" type="checkbox" checked>\n';
	html += '<label style="margin-top: 3px" for="check_'+phoneFlag+'"><h5>繳費號碼'+multiRecharge.NoToChinese(i)+'</h5></label>';
	html += '<h5></h5>';
	if (phoneFlag==0){

	}else {
		html += '<a class="text-red" style="margin-top: 3px" onclick="multiRecharge.deletePhone('+phoneFlag+')">刪除</a>';
	}
	html += '</div>';
	html += '<div class="weui-panel__bd">';
	html += '<div class="weui-flex">';
	html += '<div class="weui-flex__item">';
	html += '<div class="weui-cell inner-input">';
	html += '<div class="weui-cell__hd">';
	html += '<i class="iconfont iconshangtai text-blue"></i>';
	html += '</div>';
	html += '<div class="weui-cell__bd">';
	html += '<div class="pay-num" id="pay-num-'+phoneFlag+'">';
	html += '<input onchange="multiRecharge.checkPhone(this)" class="phoneNumChange weui-input" type="text" placeholder="繳費號碼" data-flag = "'+phoneFlag+'">';
	html += '</div>';
	html += '</div>';
	html += '</div>';
	html += '</div>';
	html += '<div class="weui-flex__item">';
	html += '<div class="weui-cell inner-input">';
	html += '<div class="weui-cell__hd">';
	html+='<img src="../images/nwx/money-b.png" style="width: 18px;">';
	//html += '<i class="iconfont iconchongzhijiaofei text-red"></i>';
	html += '</div>';
	html += '<div class="weui-cell__bd pay_bd" id="money_'+moneyFlag+'">';
	if (userType=="20" || userType=="23"){
		html += '<input onchange="multiRecharge.getAmount(this)" id="paymony_'+phoneFlag+'" class="weui-input" type="text" placeholder="繳費金額">';
	}if (userType=="99"){
		html += '<a href="javascript:;" onchange="multiRecharge.getAmount(this)" onclick="multiRecharge.rechargeSelect(this)" id="paymony_'+phoneFlag+'" class="weui-btn-auto weui-btn-sm  weui-btn-round pay-btn open-popup" data-target="#popup-pay"  >繳費金額</a>';
	}
	// html += '<input onchange="multiRecharge.getAmount(this)" id="paymony_'+phoneFlag+'" class="weui-input" type="text" placeholder="繳費金額">';
	html += '</div>';
	html += '</div>';
	html += '</div>';
	html += '</div>';
	html += '</div>';
	html += '</div>';
	$("#phoneList").append(html);
	if(phoneFlag == 0 ){
		$("#pay-num-0 >input").val(curUserPhone);
		multiRecharge.checkPhone($("#pay-num-0 >input"));	
	}
	phoneFlag = phoneFlag + 1;
	moneyFlag= moneyFlag + 1;
	i=i+1;
}

multiRecharge.deletePhone = function(flag) {
	if (flag==0){
		$.toast("當前號碼為您綁定微信的號碼,不可刪除!", "text");
		return;
	}
	$("#jiaofei_"+flag).remove();
	multiRecharge.getAmount($("#paymony_"+flag));
	i--;
	phoneFlag=phoneFlag-1;
	moneyFlag= moneyFlag-1;
}

multiRecharge.getAmount = function(e) {

	var acount = 0;
	var chkItems = document.getElementsByName("item");
	for (var i = 0; i < chkItems.length; i++) {
		if (chkItems[i].checked) {
			var test = $("#pay-num-"+(i)).attr("userId");
			if( test != undefined){

				var payMoney = $("#paymony_"+(i)).val();
				if (payMoney==null || payMoney=="" || payMoney==undefined){
					payMoney=0;
				}
				acount += parseFloat(payMoney);
			}
		}
	}
	$("#acountAmount").html(acount.toFixed(2));
}

multiRecharge.rechargeSelect = function(e){
	selectId=e.id;
	selectDom=("#"+(selectId));
}

multiRecharge.checkPhone = function(e) {
	phoneNo = $(e).val();
	flag = $(e).data("flag")
	phoneNo=$.trim(phoneNo);

	var params={
			"phoneNo":phoneNo
		};
	if(!/^(([0-9]{8})|(1[0-9]{10}))$/.test(phoneNo)){//校驗電話號碼
		if(phoneNo==null||phoneNo==""){
			$.toast(msgData.phoneTip, "text");
			$("#pay-num-"+flag).addClass("error");
		}else{
			$.toast(msgData.phoneErro, "text");
			$("#pay-num-"+flag).addClass("error");
		}
		return;
	}else{//跳轉
		$.showLoading();
		$.ajax({
			type:"POST",
			url:contextPath+"/multiNumRecharge/goToRecharge",
			cache:false ,
			async:true ,
			dataType:"json",
			data:params,
			cache:false,//不使用缓存
			success:function(response){
				$.hideLoading();
				if (response.code == 0) {
					var html = "";
					var paymoneyhtml="";
					html += '<h4>'+response.data.phoneNo+'</h4><p>'+response.data.userName+'</p>';
					if (response.data.userType=="99"){
						if (flag>0){
							paymoneyhtml += '<a href="javascript:;" onchange="multiRecharge.getAmount(this)" onclick="multiRecharge.rechargeSelect(this)" id="paymony_'+flag+'" class="weui-btn-auto weui-btn-sm  weui-btn-round pay-btn open-popup" data-target="#popup-pay"  >繳費金額</a>';
						}
					}
					if (response.data.userType=="20" || response.data.userType=="23"){
						if (flag>0){
							paymoneyhtml += '<input onchange="multiRecharge.getAmount(this)" id="paymony_'+flag+'" class="weui-input" type="text" placeholder="繳費金額">';
						}
					}
					$("#pay-num-"+flag).html(html);
					$("#pay-num-"+flag).attr("userId",response.data.userId);
					$("#pay-num-"+flag).attr("userType", response.data.userType);
					$("#pay-num-"+flag).attr("phoneNo",response.data.phoneNo);
					$("#pay-num-"+flag).attr("userName", response.data.userName);
					if (paymoneyhtml!=""){
						$("#money_"+flag).html(paymoneyhtml);
					}
					$("#paymony_"+flag).val(response.data.mustPayMoney);
					$("#paymony_"+flag).attr("mustPayMoney",response.data.mustPayMoney);

					multiRecharge.getAmount($("#paymony_"+flag));
					//根據用戶不同sim卡類型彈出不同提示框
					alertBoxBySimCardAndDataPaln(response.data.alertType,response.data.phoneNo);
				}else {
					//layer.alert(response.data.message);//提示信息
					$.toast(response.data.message, "text");
				}
			},
			error:function(){
				$.hideLoading();
				$.toast(response.data.message, "text");
			}
		});
	}
}

multiRecharge.submit = function() {
	var rechargePhoneList = [];
	var chkItems = document.getElementsByName("item");
	for (var i = 0; i < chkItems.length; i++) {
		if (chkItems[i].checked) {
			var test = $("#pay-num-" + (i)).attr("userId");
			if (test != undefined) {
				var rechargePhone = {};
				rechargePhone.userId = $("#pay-num-" + (i)).attr("userId");
				rechargePhone.userType = $("#pay-num-" + (i)).attr("userType");
				rechargePhone.phoneNo = $("#pay-num-" + (i)).attr("phoneNo");
				if (!(rechargePhone.userType == 20 || rechargePhone.userType == 23)){
					$.toast("非法操作", "text");
					return;
				}
				if (rechargePhone.userType == "20" || rechargePhone.userType == "23") {
					// var mustPayMoney = $("#paymony_" + (i)).attr("mustPayMoney");
					var mustPayMoney = "0";
					var payMoney = $("#paymony_" + (i)).val();
					payMoney = $.trim(payMoney);

					// if (flag==0&&mustPayMoney==0&&payMoney!=0){
					// 	return;
					// }
					if (payMoney == null || payMoney == undefined || payMoney == "") {
						$.toast(msgData.payMoneyNull, "text");
						return;
					} else if (Number(mustPayMoney) > Number(payMoney)) {
						$.toast("輸入的金額應大於應繳金額MOP$&nbsp;&nbsp;" + mustPayMoney, "text");
						return;
					} else if (0 >Number(payMoney)&&flag!=0) {
						$.toast("單次繳費金額不能低於0.1元,請重新輸入", "text");
						return;
					}

				}
				rechargePhone.payMoney = $("#paymony_" + (i)).val();
				rechargePhoneList[i] = rechargePhone;
			}
		}
	}

	if(Number($("#acountAmount").html())<0){
		$.toast("單次繳費金額不能低於0.1元,請重新輸入", "text");
		return;
	}
	$.showLoading();
	if(rechargePhoneList.length < 1){
		$.hideLoading();
		$.toast("請填寫要充值的號碼", "text");
		return;
	}

	for (var i = 0; i < rechargePhoneList.length; i++) {
		if (rechargePhoneList[i] == null || rechargePhoneList[i] == "" || JSON.stringify(rechargePhoneList[i]) == "{}") {
			rechargePhoneList.splice(i, 1);
			// i = i - 1;
		}
		if(rechargePhoneList[i].payMoney == 0){
			rechargePhoneList.splice(i, 1);
			// i = i - 1;
		}
	}
	var params = {
			"rechargePhoneList":JSON.stringify(rechargePhoneList)
	};

	$.ajax({
		type:"POST",
		url:contextPath+"/multiNumRecharge/submitBill",
		async:true ,
		dataType:"json",
		data:params,
		cache:false,//不使用缓存
		success:function(response){
			$.hideLoading();
			if (response.code == 0) {
				var channelCode=response.data.channelCode;
				var channelOrderNo=response.data.channelOrderNo;
				var orderType=response.data.orderType;
				window.location.href=response.data.mallUrl+"/orderpay/payQuery?channelCode="+channelCode+"&channelOrderNo="+channelOrderNo+"&orderType="+orderType+'&timestamp='+commonTools.getTimestamp();
			}else {
				// $.toast(response.data.message, "text");
				var channelCode=response.data.channelCode;
				var channelOrderNo=response.data.channelOrderNo;
				var orderType=response.data.orderType;
				window.location.href=response.data.mallUrl+"/orderpay/payQuery?channelCode="+channelCode+"&channelOrderNo="+channelOrderNo+"&orderType="+orderType+'&timestamp='+commonTools.getTimestamp();
			}
		},
		error:function(){
			$.hideLoading();
			$.toast(msgData.payMoneysubmiterr01);
		}
	});

}

//阿拉伯数字转中文数字
multiRecharge.NoToChinese = function(num) {
	if (!/^\d*(\.\d*)?$/.test(num)) {
		alert("Number is wrong!");
		return "Number is wrong!";
	}
	var AA = new Array("零", "一", "二", "三", "四", "五", "六", "七", "八", "九");
	var BB = new Array("", "十", "百", "千", "万", "亿", "点", "");
	var a = ("" + num).replace(/(^0*)/g, "").split("."),
		k = 0,
		re = "";
	for (var i = a[0].length - 1; i >= 0; i--) {
		switch (k) {
			case 0:
				re = BB[7] + re;
				break;
			case 4:
				if (!new RegExp("0{4}\\d{" + (a[0].length - i - 1) + "}$").test(a[0]))
					re = BB[4] + re;
				break;
			case 8:
				re = BB[5] + re;
				BB[7] = BB[5];
				k = 0;
				break;
		}
		if (k % 4 == 2 && a[0].charAt(i + 2) != 0 && a[0].charAt(i + 1) == 0) re = AA[0] + re;
		if (a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k % 4] + re;
		k++;
	}
	if (a.length > 1) //加上小数部分(如果有小数部分)
	{
		re += BB[6];
		for (var i = 0; i < a[1].length; i++) re += AA[a[1].charAt(i)];
	}
	return re;
};

//自定義提示框
//自定義警告框
window.alert = alert;
function alert(data, callback) { //回调函数
	var alert_bg = document.createElement('div');
	alert_box = document.createElement('div'),
		alert_text = document.createElement('div'),
		alert_btn = document.createElement('div'),
		textNode = document.createTextNode(data ? data : ''),
		//btnText = document.createTextNode('确 定');
		btn = document.createElement('button'),
		btnText = document.createTextNode('關 閉');


	// 控制样式
	css(alert_bg, {
		'position': 'fixed',
		'top': '0',
		'left': '0',
		'right': '0',
		'bottom': '0',
		'background-color': 'rgba(0, 0, 0, 0.1)',
		'z-index': '999999999'
	});

	css(alert_box, {
		'width': '16rem',
		'max-width': '90%',
		'font-size': '1rem',
		'text-align': 'center',
		'background-color': '#fff',
		'position': 'absolute',
		'top': '50%',
		'left': '50%',
		'transform': 'translate(-50%, -50%)'
	});

	css(alert_text, {
		'padding': '2rem 15px',
		'font':'1rem / 2 "Microsoft YaHei", "微软雅黑", Arial, Lucida, Verdana, Helvetica, sans-serif',
		'text-align': 'justify',
		'white-space': 'pre-line',
		'font-weight':'550'

	});

	css(alert_btn, {
		'padding': '10px 0',
		'color': '#007aff',
		'font-weight': '600',
		'cursor': 'pointer'
	});

	css(btn, {
		'padding': '0.5rem 5rem',
		'border': 'none',
		'background-color': '#0054a6fa',
		'border-radius': '4px',
		'color': '#fff',
		'font-size': '0.8rem',

	});

	// 内部结构套入
	alert_text.appendChild(textNode);
	alert_btn.appendChild(btn);
	btn.append(btnText);
	alert_box.appendChild(alert_text);
	alert_box.appendChild(alert_btn);
	alert_bg.appendChild(alert_box);

	// 整体显示到页面内
	document.getElementsByTagName('body')[0].appendChild(alert_bg);

	// 确定绑定点击事件删除标签
	alert_btn.onclick = function() {
		alert_bg.parentNode.removeChild(alert_bg);
		if (typeof callback === 'function') {
			callback(); //回调
		}
	}
}

function css(targetObj, cssObj) {
	var str = targetObj.getAttribute("style") ? targetObj.getAttribute('style') : '';
	for (var i in cssObj) {
		str += i + ':' + cssObj[i] + ';';
	}
	targetObj.style.cssText = str;
}


function alertBoxBySimCardAndDataPaln(alertType,PhoneNum){
	//月費提示框
	if(alertType == 1){
		let alert_text = '重要提示:\r\n\xa0\xa0\xa0\xa0'+'由於閣下'+PhoneNum+'使用的SIM卡仍為舊的3G卡,為不影響閣下的網絡質量,請機主持有效證件到門市免費更換新的4G卡及升遷為4G月費。'
		alert(alert_text, function() {});
	}

	if(alertType == 2){
		let alert_text = '重要提示:\r\n\xa0\xa0\xa0\xa0'+'由於閣下'+PhoneNum+'使用SIM卡仍為舊的3G卡,為不影響閣下的網絡質量,請機主持有效證件到門市免費更換新的4G卡。'
		alert(alert_text, function() {});
	}

	if(alertType == 3){
		let alert_text = '重要提示:\r\n\xa0\xa0\xa0\xa0'+'我司已推出多款4G月費優惠計劃,請'+PhoneNum+'機主持有效證件到門市升遷為4G用戶。'
		alert(alert_text, function() {});
	}

}