【人人商城】最新版本模板消息修复工具无效的解决办法


人人商城工具里的模板消息修复功能在最新的一些版本里会出现无法修复模板消息。

这个问题之前遇到过一次,当时记得改了一个php文件就可以了。

今天找来找去,死活想不起来在哪个文件。一开始找的是html文件,后来想了想,html文件不会对这个情况有影响。

索性开始找php文件,于是跟着链接里的路径找了一下,果然找到了。

发个帖子做个记录,方便以后查看和修正,也方便大家使用。

说的就是这个,这个还是十分有用的,如果是重度使用人人商城,那这个必不可少,可以快速帮你创建13个模板消息id。

---------------

解决方案:

修改/addons/ewei_shopv2/core/web/sysset路径下的templatetool.php文件为如下内容

<?php 
if( !defined("IN_IA") ) 
{
	exit( "Access Denied" );
}
class Templatetool_EweiShopV2Page extends WebPage 
{
	public function main() 
	{
		global $_W;
		global $_GPC;
		include($this->template());
	}
	public function gettypecodes() 
	{
		$items = pdo_fetchall("select typecode from " . tablename("ewei_shop_member_message_template_type") . " where templatecode is not null");
		$typecode = array( );
		foreach( $items as $item ) 
		{
			$typecode[] = $item["typecode"];
		}
		$typecode = json_encode($typecode);
		$this->setoldtemplateid();
		show_json(1, array( "length" => count($items), "typecodes" => $typecode ));
	}
	public function setoldtemplateid() 
	{
		load()->func("communication");
		$account = m("common")->getAccount();
		$token = $account->fetch_token();
		$url = "https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=" . $token;
		$c = ihttp_request($url);
		$result = json_decode($c["content"], true);
		if( !is_array($result) ) 
		{
			show_json(1, array( "status" => 0, "messages" => "微信接口错误.", "tag" => $tag ));
		}
		if( !empty($result["errcode"]) ) 
		{
			show_json(1, array( "status" => 0, "messages" => $result["errmsg"], "tag" => $tag ));
		}
		$content = "{{first.DATA}}业务类型:{{keyword1.DATA}}业务状态:{{keyword2.DATA}}业务内容:{{keyword3.DATA}}{{remark.DATA}}";
		$content = str_replace(array( "\r\n", "\r", "\n", " " ), "", $content);
		$content = str_replace(array( ":" ), ":", $content);
		$templatenum = count($result["template_list"]);
		$issnoet = true;
		$template_id = "";
		foreach( $result["template_list"] as $key => $value ) 
		{
			$valuecontent = str_replace(array( "\r\n", "\r", "\n", " " ), "", $value["content"]);
			$valuecontent = str_replace(array( ":" ), ":", $valuecontent);
			if( $valuecontent == $content ) 
			{
				$issnoet = false;
				$template_id = $value["template_id"];
			}
		}
		if( $issnoet ) 
		{
			if( 25 <= $templatenum ) 
			{
				return false;
			}
			$bb = "{\"template_id_short\":\"OPENTM207574677\"}";
			$account = m("common")->getAccount();
			$token = $account->fetch_token();
			$url = "https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token=" . $token;
			$ch1 = curl_init();
			curl_setopt($ch1, CURLOPT_URL, $url);
			curl_setopt($ch1, CURLOPT_POST, 1);
			curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, false);
			curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, false);
			curl_setopt($ch1, CURLOPT_POSTFIELDS, $bb);
			$c = curl_exec($ch1);
			$result = @json_decode($c, true);
			if( !is_array($result) ) 
			{
				return false;
			}
			if( !empty($result["errcode"]) ) 
			{
				if( strstr($result["errmsg"], "template conflict with industry hint") ) 
				{
					return false;
				}
				if( strstr($result["errmsg"], "system error hint") ) 
				{
					return false;
				}
				if( strstr($result["errmsg"], "invalid industry id hint") ) 
				{
					return false;
				}
				if( strstr($result["errmsg"], "access_token is invalid or not latest hint") ) 
				{
					return false;
				}
				return false;
			}
			$template_id = $result["template_id"];
		}
		if( p("commission") ) 
		{
			$data1 = m("common")->getPluginset("commission", false);
			$data1 = $data1["tm"];
			if( !empty($data1["templateid"]) ) 
			{
				$data1["templateid"] = $template_id;
				m("common")->updatePluginset(array( "commission" => array( "tm" => $data1 ) ));
			}
		}
		if( p("globonus") ) 
		{
			$data2 = m("common")->getPluginset("globonus");
			$data2 = $data2["tm"];
			if( !empty($data2["templateid"]) ) 
			{
				$data2["templateid"] = $template_id;
				m("common")->updatePluginset(array( "globonus" => array( "tm" => $data2 ) ));
			}
		}
		if( p("abonus") ) 
		{
			$data3 = m("common")->getPluginset("abonus");
			$data3 = $data3["tm"];
			if( !empty($data3["templateid"]) ) 
			{
				$data3["templateid"] = $template_id;
				m("common")->updatePluginset(array( "abonus" => array( "tm" => $data3 ) ));
			}
		}
		if( p("merch") ) 
		{
			$data4 = m("common")->getPluginset("merch");
			$data4 = $data4["tm"];
			if( !empty($data4["templateid"]) ) 
			{
				$data4["templateid"] = $template_id;
				m("common")->updatePluginset(array( "merch" => array( "tm" => $data4 ) ));
			}
		}
		$data5 = m("common")->getPluginset("coupon");
		if( !empty($data5["sendtemplateid"]) ) 
		{
			$data5["sendtemplateid"] = $template_id;
		}
		if( !empty($data5["templateid"]) ) 
		{
			$data5["templateid"] = $template_id;
		}
		m("common")->updatePluginset(array( "coupon" => $data5 ));
	}
	public function settemplateid() 
	{
		global $_W;
		global $_GPC;
		$tag = $_GPC["tag"];
		load()->func("communication");
		$account = m("common")->getAccount();
		$token = $account->fetch_token();
		$url = "https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=" . $token;
		$c = ihttp_request($url);
		$result = json_decode($c["content"], true);
		if( !is_array($result) ) 
		{
			show_json(1, array( "status" => 0, "messages" => "微信接口错误.", "tag" => $tag ));
		}
		if( !empty($result["errcode"]) ) 
		{
			show_json(1, array( "status" => 0, "messages" => $result["errmsg"], "tag" => $tag ));
		}
		$error_message = "";
		$templatenum = count($result["template_list"]);
		$templatetype = pdo_fetch("select `name`,templatecode,content  from " . tablename("ewei_shop_member_message_template_type") . " where typecode=:typecode  limit 1", array( ":typecode" => $tag ));
		if( empty($templatetype) ) 
		{
			show_json(1, array( "status" => 0, "messages" => "默认模板信息错误", "tag" => $tag ));
		}
		$content = str_replace(array( "\r\n", "\r", "\n", " " ), "", $templatetype["content"]);
		$content = str_replace(array( ":" ), ":", $content);
		$issnoet = true;
		foreach( $result["template_list"] as $key => $value ) 
		{
			$valuecontent = str_replace(array( "\r\n", "\r", "\n", " " ), "", $value["content"]);
			$valuecontent = str_replace(array( ":" ), ":", $valuecontent);
			if( $valuecontent == $content ) 
			{
				$issnoet = false;
				$defaulttemp = pdo_fetch("select 1  from " . tablename("ewei_shop_member_message_template_default") . " where typecode=:typecode and uniacid=:uniacid  limit 1", array( ":typecode" => $tag, ":uniacid" => $_W["uniacid"] ));
				if( empty($defaulttemp) ) 
				{
					pdo_insert("ewei_shop_member_message_template_default", array( "typecode" => $tag, "uniacid" => $_W["uniacid"], "templateid" => $value["template_id"] ));
				}
				else 
				{
					pdo_update("ewei_shop_member_message_template_default", array( "templateid" => $value["template_id"] ), array( "typecode" => $tag, "uniacid" => $_W["uniacid"] ));
				}
				show_json(1, array( "status" => 1, "tag" => $tag ));
			}
		}
		if( $issnoet ) 
		{
			if( 25 <= $templatenum ) 
			{
				show_json(1, array( "status" => 0, "messages" => "开启" . $templatetype["name"] . "失败!!您的可用微信模板消息数量达到上限,请删除部分后重试!!", "tag" => $tag ));
			}
			$bb = "{\"template_id_short\":\"" . $templatetype["templatecode"] . "\"}";
			$account = m("common")->getAccount();
			$token = $account->fetch_token();
			$url = "https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token=" . $token;
			$ch1 = curl_init();
			curl_setopt($ch1, CURLOPT_URL, $url);
			curl_setopt($ch1, CURLOPT_POST, 1);
			curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, false);
			curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, false);
			curl_setopt($ch1, CURLOPT_POSTFIELDS, $bb);
			$c = curl_exec($ch1);
			$result = @json_decode($c, true);
			if( !is_array($result) ) 
			{
				show_json(1, array( "status" => 0, "messages" => "微信接口错误.", "tag" => $tag ));
			}
			if( !empty($result["errcode"]) ) 
			{
				if( strstr($result["errmsg"], "template conflict with industry hint") ) 
				{
					show_json(1, array( "status" => 0, "messages" => "默认模板与公众号所属行业冲突,请将公众平台模板消息所在行业选择为: IT科技/互联网|电子商务, 其他/其他", "tag" => $tag ));
				}
				else 
				{
					if( strstr($result["errmsg"], "system error hint") ) 
					{
						show_json(1, array( "status" => 0, "messages" => "微信接口系统繁忙,请稍后再试!", "tag" => $tag ));
					}
					else 
					{
						if( strstr($result["errmsg"], "invalid industry id hint") ) 
						{
							show_json(1, array( "status" => 0, "messages" => "微信接口系统繁忙,请稍后再试!", "tag" => $tag ));
						}
						else 
						{
							if( strstr($result["errmsg"], "access_token is invalid or not latest hint") ) 
							{
								show_json(1, array( "status" => 0, "messages" => "微信证书无效,请检查微擎access_token设置", "tag" => $tag ));
							}
							else 
							{
								show_json(1, array( "status" => 0, "messages" => $result["errmsg"], "tag" => $tag ));
							}
						}
					}
				}
			}
			else 
			{
				$defaulttemp = pdo_fetch("select 1  from " . tablename("ewei_shop_member_message_template_default") . " where typecode=:typecode and uniacid=:uniacid  limit 1", array( ":typecode" => $tag, ":uniacid" => $_W["uniacid"] ));
				if( empty($defaulttemp) ) 
				{
					pdo_insert("ewei_shop_member_message_template_default", array( "typecode" => $tag, "uniacid" => $_W["uniacid"], "templateid" => $result["template_id"] ));
				}
				else 
				{
					pdo_update("ewei_shop_member_message_template_default", array( "templateid" => $result["template_id"] ), array( "typecode" => $tag, "uniacid" => $_W["uniacid"] ));
				}
			}
		}
		show_json(1, array( "status" => 1, "tag" => $tag ));
	}
}
?>

多数未修改之前是5kb左右,修改之后是9kb左右,如果你的是5kb左右同时不能正常使用,可以使用本站的这个方法试一下。

---来搜咯论坛


【如果觉得有用,请点击下方链接,可以免费打赏我两分钱哦,老铁】

【点一下可免费打赏我2分钱哦】

最新回复 (0)
    • 来搜咯laisolo.cn
      2
        登陆 注册 登陆
返回
【商务合作请加QQ2718003198