You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

147 lines
5.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2019年5月27日
* 模板消息
*/
namespace core\weixin;
class WxTemplate
{
// 设置行业信息
public function setIndustry($industry_id1, $industry_id2)
{
$access_token = WxAccessToken::get();
$url = "https://api.weixin.qq.com/cgi-bin/template/api_set_industry?access_token=" . $access_token;
$data = array(
'industry_id1' => $industry_id1,
'industry_id2' => $industry_id2
);
$result = json_decode(get_url($url, json_encode($data)));
if (isset($result->errcode) && $result->errcode) {
error('设置微信消息行业发生错误:' . $result->errmsg . '(' . $result->errcode . ')');
} else {
return true;
}
}
// 获取行业信息
public function getIndustry()
{
$access_token = WxAccessToken::get();
$url = "https://api.weixin.qq.com/cgi-bin/template/get_industry?access_token=" . $access_token;
$result = json_decode(get_url($url));
if (isset($result->errcode) && $result->errcode) {
error('获取微信消息行业发生错误:' . $result->errmsg . '(' . $result->errcode . ')');
} else {
return $result;
}
}
// 获取模板ID
public function getTemplateID($template_id_short)
{
$access_token = WxAccessToken::get();
$url = "https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token=" . $access_token;
$data = array(
'template_id_short' => $template_id_short
);
$result = json_decode(get_url($url, json_encode($data)));
if (isset($result->errcode) && $result->errcode) {
error('获取微信模板ID发生错误' . $result->errmsg . '(' . $result->errcode . ')');
} else {
return $result;
}
}
// 获取模板ID
public function getTemplateList()
{
$access_token = WxAccessToken::get();
$url = "https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=" . $access_token;
$result = json_decode(get_url($url));
if (isset($result->errcode) && $result->errcode) {
error('获取微信模板列表发生错误:' . $result->errmsg . '(' . $result->errcode . ')');
} else {
return $result;
}
}
// 获取模板ID
public function delTemplate($template_id)
{
$access_token = WxAccessToken::get();
$url = "https://api.weixin.qq.com/cgi-bin/template/del_private_template?access_token=" . $access_token;
$data = array(
'template_id' => $template_id
);
$result = json_decode(get_url($url, json_encode($data)));
if (isset($result->errcode) && $result->errcode) {
error('删除微信模板发生错误:' . $result->errmsg . '(' . $result->errcode . ')');
} else {
return true;
}
}
// 发送模板消息
public function sendTemplateMsg($openid, $template_id, $data, $remark = null, $link = null)
{
$access_token = WxAccessToken::get();
$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $access_token;
// data只需传递数组数据即可自动生成格式化数据
if (! is_multi_array($data)) {
$i = 1;
$flag = true;
foreach ($data as $key => $value) {
if (is_numeric($key)) {
if ($flag && $i == 1 && ! isset($data['first'])) {
$post_data['first'] = array(
'value' => $value,
'color' => '#173177'
);
$flag = false;
} else {
$post_data['keyword' . $i] = array(
'value' => $value,
'color' => '#173177'
);
$i ++;
}
} else {
$post_data[$key] = array(
'value' => $value,
'color' => '#173177'
);
}
}
// 备注字段
if ($remark) {
$post_data['remark'] = array(
'value' => $remark,
'color' => '#173177'
);
}
}
// 生成完成数据数组
$send_data = array(
'touser' => $openid,
'template_id' => $template_id,
'data' => $post_data
);
// 有跳转时设置
if ($link) {
$send_data['url'] = $link;
}
// 执行发送
$result = json_decode(get_url($url, json_encode($send_data, JSON_FORCE_OBJECT)));
if (isset($result->errcode) && $result->errcode) {
error('微信消息发送错误:' . $result->errmsg . '(' . $result->errcode . ')');
} else {
return true;
}
}
}