1
0
Fork 0
mirror of https://github.com/yunluo/gdk.git synced 2024-06-07 00:02:46 +02:00
gdk/assets/js/gdk.js
2020-02-07 23:57:46 +08:00

426 lines
11 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

jQuery(function($) {/**声明加载jQuery */
/**
* 展示被隐藏的内容,适用于密码可见,付费可见,积分可见
* @param {string} a 内容div的 id或者class
* @param {string} b 内容数据
*/
function show_hide_content(a,b){
$(a).hide();
$(a).after("<fieldset class=\"fieldset\"><legend class=\"legend\">隐藏内容</legend><p>" + b + "</p></fieldset>");
}
/**
* 点击开启密码可见
*/
$("#submit_pass_view").click(function() {
var ajax_data = {
action: $('#submit_pass_view').data('action'),
pass_nonce: ajax.pass_nonce,
id: $('#submit_pass_view').data('id'),
pass: $('#pass_view').val()
};
$.post(ajax.url, ajax_data, function(c) {
c = $.trim(c);/**Ajax返回有空行,这里处理一下.妈的花了老子3个小时 */
if (c !== '400') {
show_hide_content('.pass_viewbox',c);
localStorage.setItem('gdk_pass_' + ajax_data['id'], c);
/**隐藏内容直接存入浏览器缓存,下次直接读取,ps.有个问题,内容更新会略坑,不管了 */
} else {
swal("查看失败", "您的密码错误,请重试", "error");
}
});
});
/**
* 已经密码可见的自动从浏览器读取内容
* 并显示,这里加个延时处理
*/
if ( $("#submit_pass_view").length > 0 ) {/**如果网站有密码可见,就执行 */
setTimeout(function() {
var id = 'gdk_pass_' + $('#submit_pass_view').data('id'),length = localStorage.length;
for (var i = 0; i < length; i++) {
var key = localStorage.key(i),value = localStorage.getItem(key);
if (key.indexOf(id) >= 0) {/**发现目标 */
show_hide_content('.pass_viewbox',value);
break;
}
}
}, 900);
}
/**密码可见end */
/**
* 数据验证
* @param {string} a 数据
* @param {init} b 验证模式,1=数字,2=邮箱,3=网址,4=IP 剩下..到时候再写吧
*/
function check_data(a,b){
a = $.trim(a);
if(a==null || a=="" || a=='undefined') return false;
var numRegex = /^[1-9][0-9]*$/i,
emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,
urlRegex = /^((http|https):\/\/(\w+:{0,1}\w*@)?(\S+)|)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,
ipRegex = /^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})$/i,
chineseReg = /^[\u4e00-\u9fa5]{0,}$/;
switch(b) {
case 1:
return numRegex.test(a);
break;
case 2:
return emailRegex.test(a);
break;
case 3:
return urlRegex.test(a);
break;
case 4:
return ipRegex.test(a);
break;
default:
return false;
}
}
/**
* 检查服务器是否有积分充值订单
* @param {init} a 用户ID
* @param {string} b 订单号
*/
function check_pay_points(a, b) {
var ajax_data = {
check_pay_points: ajax.check_pay_points,
action: 'check_pay_points',
id: a,
orderid: b
};
$.post(ajax.url, ajax_data,function(c) {
c = $.trim(c);
if (c == '200') {
swal("支付成功!", "为支付详情已发送到您的邮箱", "success"); //ok
} else {
swal("支付失败", "您的支付没有成功,请重试", "error");
}
},
'json');
}
/**
* 生成支付二维码,公共调用
* @param {init} a 金额
* @param {string} b 支付通道,可选参数alipay,wechat
* @param {init} c user_id/post_id,用户id或者文章id,取决于是积分充值还是付费可见
* @param {string} d action操作
*/
function get_payjs_qr(a, b, c, d) {
var ajax_data = {
action: d,
money: a,
way: b,
id: c
};
$.post(ajax.url, ajax_data, function(e) {
e = $.trim(e);
if (e !== '400') {
var g = document.createElement("img"),
f = e.split('|');/**使用|风格e,分为数组f */
g.id = 'pqrious';
swal("支付金额:" + f[0] + "元", {
content: g,
closeOnClickOutside: false,
button: "" + f[2] + "支付已完成",
}).then(() => {
if(f[4]){
check_pay_points(c, f[1]); /**用户id,订单号,积分充值检测 */
}else{
check_pay_view(c, f[1]); /**文章id,订单号,付费可见检测 */
}
});
new QRious({
element: document.getElementById("pqrious"),
size: 300,
value: f[3]
});
} else {
swal("支付发生错误", "哦嚯,好像发生了什么错误,支付二维码加载失败", "error");
}
});
}
/**生成二维码结束 */
/**
* 点击积分充值按钮
*/
$("#submit_pay").click(function() {
var money = $("#money").val(),
pay_way = $("input[name='pay_way']:checked").val(),
user_id = $('#submit_pay').data('id'),
action = $('#submit_pay').data('action');
if (check_data(money, 1)) {
get_payjs_qr(money, pay_way, user_id, action);
} else {
swal("充值金额不正确", "请输入正确的充值金额", "error");
}
});
////end////
/**
* 获取隐藏内容
* @param {init} a 文章ID
*/
function get_content(a) {
var ajax_data = {
action: 'get_content',
id: a
};
$.post(ajax.url, ajax_data,
function(c) {
c = $.trim(c);
if (c !== '400') {
show_hide_content('#hide_notice',c);
}else{
show_hide_content('#hide_notice','貌似出了点网络错误,请重试');
}
});
}
/**
*
* @param {init} a 文章ID
* @param {string} b 提取码
*/
function add_code(a, b) { //ID 提取码
var ajax_data = {
action: 'add_code',
id: a,
code: b
};
$.post(ajax.url, ajax_data,
function(c) {
c = $.trim(c);
if (c == '200') {
swal("输入成功", "您的支付提取码是" + b, "success");
localStorage.setItem('payjs_view_id:'+a,b);
}
});
}
/**
* 检查服务器是否有付费可见订单
* @param {init} a 文章ID
* @param {string} b 订单号
*/
function check_pay_view(a, b) {
var ajax_data = {
check_pay_view: ajax.check_pay_view,
action: 'check_pay_view',
id: a,
orderid: b
};
$.post(ajax.url, ajax_data,function(c) {
c = $.trim(c);
if (c == '200') {
swal("支付成功!", "为了方便您后续再次查看,建议您输入您的常用邮箱作为提取码", "info", {
dangerMode: true,
closeOnClickOutside: false,
content: "input",
})
.then((d) => {/**提取码 */
get_content(a);
add_code(a, `${d}`);
}); //ok
} else {
swal("支付失败", "您的支付没有成功,请重试", "error");
}
},
'json');
}
/**
* 检验提取码
* @param {init} a 文章ID
* @param {string} b 提取码
*/
function check_code(a, b) {
var ajax_data = {
check_code: ajax.check_code,
action: 'check_code',
id: a,
code: b
};
$.post(ajax.url, ajax_data,
function(c) {
c = $.trim(c);
if (c == '200') {
get_content(a);
localStorage.setItem('payjs_view_id:'+a,b);
} else {
swal("查看失败", "服务器不存在此提取码,请重新输入", "error");
}
});
}
/**
* 选择哪个支付
* @param {init} a 文章ID
* @param {init} b 金额
* @param {string} c action操作
*/
function pay_way(a,b,c) {
swal("点此开始扫码", "支持支付宝、微信,支付过程中请勿刷新页面!", "warning", {
buttons: ["支付宝", "微信"],
dangerMode: true,
closeOnClickOutside: false,
}
)
.then((way) => {
if (way) { //微信
get_payjs_qr(b, 'wechat',a,c);
} else { //支付宝
get_payjs_qr(b, 'alipay',a,c);
}
});
}
/**
* 开始付费可见代码
* @param {init} a 文章ID
* @param {init} b 金额
* @param {string} c action操作
*/
function pay_view(a,b,c){
swal("查看付费内容", "如未支付,请先支付,如已支付,请点击已支付", "warning", {
buttons: ["扫码支付", "我已支付"],
dangerMode: true,
closeOnClickOutside: false,
})
.then((pay) => {
if (pay) {/* 我已支付*/
swal("请输入您的支付提取码:", {
content: "input",
button: "验证提取码"
})
.then((code) => {
check_code(a, `${code}`);/**文章id, 提取码 */
});
} else {/* 未支付,选择支付方式*/
pay_way(a,b,c);
}
});
}
/**
* 发现有付费可见内容就自动提取
*/
if ( $("#pay_view").length > 0 ) {/**如果网站有付费可见,就执行 */
setTimeout(function() {
var id = $("#pay_view").data("id"),keys = 'payjs_view_id:' +id,length = localStorage.length;
for (var i = 0; i < length; i++) {
var key = localStorage.key(i),value = localStorage.getItem(key);
if (key.indexOf(keys) >= 0) {/**发现目标 */
check_code(id, value);
break;
}
}
}, 1000);
}
/**
* 点击开启是执行付费可见
*/
$("#pay_view").click(function() {
var id = $("#pay_view").data("id"),
money = $("#pay_view").data("money"),
action = $("#pay_view").data("action");
pay_view(id,money,action);
});
/**
*
* @param {string} a 微信登陆密钥key,此时是 gitcafe.net@wrhGgveq3LCj 类型,实际需要的是@后面的
*/
function check_weauth_login(a){
var ajax_data = {
gdk_weauth_check: ajax.gdk_weauth_check,
action: 'gdk_weauth_check',
key: a
};
$.post(ajax.url, ajax_data, function(b) {
b = $.trim(b);//登陆信息
if (b !== '400') {
console.log(b);
swal("获取微信信息成功", "您的登陆信息是"+b+"", "success");
} else {
swal("发生错误", "哦嚯,好像发生了什么错误,微信二维码加载失败", "error");
}
});
}
/**
* 生成微信二维码,公共调用
* @param {string} a action操作
*/
function get_weauth_qr(a) {
var ajax_data = {
action: a,
gdk_weauth_qr_gen: ajax.gdk_weauth_qr_gen
};
$.post(ajax.url, ajax_data, function(b) {
b = $.trim(b);//登陆信息
if (b !== '400') {
var c = document.createElement("img"),
d = b.split('|');/**使用|风格,分为数组 */
c.src = d[1];//d[1]=base64
c.width = "300";
console.log(d[0]);//d[0]=key
swal("微信扫码并确认登陆", {
content: c,
closeOnClickOutside: true,
buttons: false
});
console.log('未点击但是我继续执行');
check_weauth_login(d[0]);
} else {
swal("发生错误", "哦嚯,好像发生了什么错误,微信二维码加载失败", "error");
}
});
}
$("#weixin_login_btn").click(function() {
var action = $("#weixin_login_btn").data("action");//gdk_weauth_qr_gen
get_weauth_qr(action);
});
/**jQuery结尾,不要超过此行 */
});