WHMCS微信公众号插件

WHMCS微信公众号插件主要实现了WHMCS的各种系统消息通知到用户微信,以及用户可使用微信扫码登录WHMCS会员中心,并自动关注微信公众号。

WHMCS微信公众号插件设置界面

支持以下消息微信通知用户:

  • 登录会员中心,用户成功登录会员中心发送微信消息通知;
  • 修改密码,用户修改密码成功发送微信消息通知;
  • 账单生成,账单创建成功发送微信消息通知;
  • 账单已支付,账单已支付发送微信消息通知;
  • 产品到期账单提醒,产品到期时发送微信消息通知;
  • 账单第一次逾期提醒,续费账单第一次逾期发送微信消息通知;
  • 账单第二次逾期提醒,续费账单第二次逾期发送微信消息通知;
  • 账单第三次逾期提醒,续费账单第三次逾期发送微信消息通知;
  • 产品服务开通,执行模块创建命令发送微信消息通知;
  • 产品服务暂停,执行模块暂停命令时发送微信消息通知;
  • 产品服务解除暂停,执行模块解除暂停命令时发送微信消息通知;
  • 取消产品服务,用户操作取消产品时发送微信消息通知;
  • 域名转入失败,域名转入失败时发送微信消息通知;
  • 域名转入成功,域名转入成功时发送微信消息通知;
  • 域名续费成功,域名续费成功发送微信消息通知;
  • 管理员回复了工单,管理员回复了用户工单时发送微信消息通知;
  • 工单已关闭,用户工单关闭后发送微信消息通知。

后台可绑定管理员微信,实现消息通知管理员:

  • 新的订单,有新的订单时发送微信消息通知;
  • 产品服务开通,执行模块开通命令时发送微信消息通知;
  • 产品服务暂停,执行模块暂停命令时发送微信消息通知;
  • 取消产品服务,用户取消产品时发送微信消息通知;
  • 用户提交工单,用户提交了新的工单时发送微信消息通知;
  • 用户回复了工单,用户回复工单时发送微信消息通知;
  • 工单已关闭,用户工单关闭时发送微信消息通知。

其他功能:

  • 自定义菜单,微信公众平台配置API信息后需要在插件里设置自定义菜单;
  • 登录日志,记录用户使用微信扫码登录会员中心情况;
  • API日志,记录API请求错误日志;
  • 微信扫码自动登录会员中心,用户扫码后如果还没有关注公众号,则可以自动关注。

前台绑定微信页面:

index.php?m=wechat&a=bindwechat

登录页面模板添加微信扫码登录功能:

模板文件名:login.tpl

添加JS代码:

function random_str(len) {
	len = len || 32;
	var str = '';
	var char = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
	for (var i = 0; i < len; i++) {
		str += char.charAt(Math.floor(Math.random() * char.length));
	}
	return str;
}

$('#login-wechat').click(function(event) {
	event.preventDefault();

	let mseconds = Date.now();
	let rdstr = random_str(32);
	let cookie = document.cookie;
	let csrf_token = '{$token}';
	let token = sha1(csrf_token + cookie + rdstr + mseconds);
	if(!token) return;

	//获取二维码
	var maxtime = 120;
	$.post('index.php?m=wechat&a=ajax', {
		'action': 'login_orcode',
		'token': token
	}, function(result) {
		if (result.status == 'success') {
			let orcode = $.dialog({
				title: '',
				content: '<img src="' + result.orcode + '">',
			});
			//检测扫码
			let timer = setInterval(function() {
				if (maxtime <= 0) {
					orcode.close();
					clearInterval(timer);
				}

				$.post('index.php?m=wechat&a=ajax', {
					'action': 'check_login',
					'token': token
				}, function(result) {
					if (result.status == 'success') {
						location.reload(true);
					} else {
						if(result.msg) {
							orcode.close();
							clearInterval(timer);
							$.dialog({
								title: '',
								content: result.msg,
							});
						}
					}
				}, 'json');

				maxtime = maxtime - 2;
			}, 2000);
		} else {
			$.dialog({
				title: '',
				content: '<p style="margin: 1em 0;">' + result.msg + '</p>',
			});
		}
	}, 'json');
});

添加登录按钮:

<a href="javascript:void(0);" id="login-wechat"><svg width="48" height="48" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"><path fill="rgb(4, 210, 104)" fill-rule="evenodd" d="M29.453 21.494c4.562 0 8.261 3.098 8.261 6.917 0 2.085-1.114 3.962-2.854 5.23a.551.551 0 0 0-.202.626c.139.523.362 1.356.372 1.398.016.065.044.133.044.202a.276.276 0 0 1-.275.276.31.31 0 0 1-.159-.052l-1.81-1.05a.878.878 0 0 0-.437-.127.814.814 0 0 0-.244.037 9.75 9.75 0 0 1-2.696.38c-4.564 0-8.263-3.097-8.263-6.92 0-3.819 3.699-6.917 8.263-6.917zm-9.254-7.637c4.947 0 9.044 3.034 9.791 7a9.299 9.299 0 0 0-.538-.016c-4.994 0-9.04 3.391-9.04 7.57 0 .707.116 1.389.332 2.037a11.721 11.721 0 0 1-3.78-.442.963.963 0 0 0-.292-.045 1.04 1.04 0 0 0-.527.153l-2.17 1.26a.372.372 0 0 1-.19.061.331.331 0 0 1-.331-.33c0-.084.033-.167.052-.244.014-.048.28-1.049.447-1.676a.66.66 0 0 0-.244-.75c-2.088-1.524-3.423-3.774-3.423-6.276 0-4.585 4.437-8.302 9.913-8.302zm6.5 11.236c-.609 0-1.102.495-1.102 1.105 0 .612.493 1.108 1.102 1.108.608 0 1.1-.496 1.1-1.108 0-.61-.492-1.105-1.1-1.105zm5.508 0c-.61 0-1.102.495-1.102 1.105 0 .612.493 1.108 1.102 1.108.607 0 1.1-.496 1.1-1.108 0-.61-.493-1.105-1.1-1.105zm-15.312-6.92c-.73 0-1.323.596-1.323 1.33 0 .733.594 1.326 1.323 1.326.73 0 1.321-.593 1.321-1.327 0-.733-.592-1.328-1.32-1.328zm6.61 0c-.732 0-1.323.596-1.323 1.33 0 .733.591 1.326 1.322 1.326.73 0 1.322-.593 1.322-1.327 0-.733-.592-1.328-1.322-1.328z"></path></svg></a>

会员中心首页添加微信绑定状态显示:

模板文件名:clientareahome.tpl

{if $bindwechat}
	<svg width="48" height="48" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"><path fill="rgb(4, 210, 104)" fill-rule="evenodd" d="M29.453 21.494c4.562 0 8.261 3.098 8.261 6.917 0 2.085-1.114 3.962-2.854 5.23a.551.551 0 0 0-.202.626c.139.523.362 1.356.372 1.398.016.065.044.133.044.202a.276.276 0 0 1-.275.276.31.31 0 0 1-.159-.052l-1.81-1.05a.878.878 0 0 0-.437-.127.814.814 0 0 0-.244.037 9.75 9.75 0 0 1-2.696.38c-4.564 0-8.263-3.097-8.263-6.92 0-3.819 3.699-6.917 8.263-6.917zm-9.254-7.637c4.947 0 9.044 3.034 9.791 7a9.299 9.299 0 0 0-.538-.016c-4.994 0-9.04 3.391-9.04 7.57 0 .707.116 1.389.332 2.037a11.721 11.721 0 0 1-3.78-.442.963.963 0 0 0-.292-.045 1.04 1.04 0 0 0-.527.153l-2.17 1.26a.372.372 0 0 1-.19.061.331.331 0 0 1-.331-.33c0-.084.033-.167.052-.244.014-.048.28-1.049.447-1.676a.66.66 0 0 0-.244-.75c-2.088-1.524-3.423-3.774-3.423-6.276 0-4.585 4.437-8.302 9.913-8.302zm6.5 11.236c-.609 0-1.102.495-1.102 1.105 0 .612.493 1.108 1.102 1.108.608 0 1.1-.496 1.1-1.108 0-.61-.492-1.105-1.1-1.105zm5.508 0c-.61 0-1.102.495-1.102 1.105 0 .612.493 1.108 1.102 1.108.607 0 1.1-.496 1.1-1.108 0-.61-.493-1.105-1.1-1.105zm-15.312-6.92c-.73 0-1.323.596-1.323 1.33 0 .733.594 1.326 1.323 1.326.73 0 1.321-.593 1.321-1.327 0-.733-.592-1.328-1.32-1.328zm6.61 0c-.732 0-1.323.596-1.323 1.33 0 .733.591 1.326 1.322 1.326.73 0 1.322-.593 1.322-1.327 0-.733-.592-1.328-1.322-1.328z"></path></svg>
{else}
	<a href="index.php?m=wechat&a=bindwechat">
		<svg width="48" height="48" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"><path fill="rgba(0, 0, 0, .2)" fill-rule="evenodd" d="M29.453 21.494c4.562 0 8.261 3.098 8.261 6.917 0 2.085-1.114 3.962-2.854 5.23a.551.551 0 0 0-.202.626c.139.523.362 1.356.372 1.398.016.065.044.133.044.202a.276.276 0 0 1-.275.276.31.31 0 0 1-.159-.052l-1.81-1.05a.878.878 0 0 0-.437-.127.814.814 0 0 0-.244.037 9.75 9.75 0 0 1-2.696.38c-4.564 0-8.263-3.097-8.263-6.92 0-3.819 3.699-6.917 8.263-6.917zm-9.254-7.637c4.947 0 9.044 3.034 9.791 7a9.299 9.299 0 0 0-.538-.016c-4.994 0-9.04 3.391-9.04 7.57 0 .707.116 1.389.332 2.037a11.721 11.721 0 0 1-3.78-.442.963.963 0 0 0-.292-.045 1.04 1.04 0 0 0-.527.153l-2.17 1.26a.372.372 0 0 1-.19.061.331.331 0 0 1-.331-.33c0-.084.033-.167.052-.244.014-.048.28-1.049.447-1.676a.66.66 0 0 0-.244-.75c-2.088-1.524-3.423-3.774-3.423-6.276 0-4.585 4.437-8.302 9.913-8.302zm6.5 11.236c-.609 0-1.102.495-1.102 1.105 0 .612.493 1.108 1.102 1.108.608 0 1.1-.496 1.1-1.108 0-.61-.492-1.105-1.1-1.105zm5.508 0c-.61 0-1.102.495-1.102 1.105 0 .612.493 1.108 1.102 1.108.607 0 1.1-.496 1.1-1.108 0-.61-.493-1.105-1.1-1.105zm-15.312-6.92c-.73 0-1.323.596-1.323 1.33 0 .733.594 1.326 1.323 1.326.73 0 1.321-.593 1.321-1.327 0-.733-.592-1.328-1.32-1.328zm6.61 0c-.732 0-1.323.596-1.323 1.33 0 .733.591 1.326 1.322 1.326.73 0 1.322-.593 1.322-1.327 0-.733-.592-1.328-1.322-1.328z"></path></svg>
	</a>
{/if}

缩略图来源:微信官方设计资源

更新日志

2023年4月20日 ver 1.0.0

2023年12月13日 ver 2.0.0 更新模板消息接口

¥ 299
本应用代码开源,可供研究学习、二次开发用;
禁止用于非法用途,禁止复制传播、二次销售本源码。
阿里云