微信小程序模板消息推送詳細(xì)介紹及代碼實(shí)現(xiàn)

2023-02-18    分類(lèi): 網(wǎng)站建設(shè)

在如今科技發(fā)達(dá)的年代,大家每天都在接收大量的信息,如電話(huà)、短信、APP消息推送、郵件、微信消息、微信服務(wù)通知、朋友圈消息、微博消息等等,這些不乏大量的推廣信息。面對(duì)大量的垃圾信息,我們會(huì)報(bào)告垃圾短信、屏蔽垃圾電話(huà)、屏蔽垃圾郵件、屏蔽某人朋友圈等等,這也導(dǎo)致了大部分消息推送方式的失效或者效果打折。那么,今天創(chuàng)新互聯(lián)談的是,效果非常好的微信服務(wù)通知,因?yàn)檫@里推送的都是有效信息,屏蔽的人非常少,微信不允許你把它當(dāng)做推廣工具,所以都有調(diào)用次數(shù)等規(guī)則限制,但我們可以好好利用以保持應(yīng)用的用戶(hù)粘性。
模板消息推送
小程序的模板消息推送,體現(xiàn)在微信-服務(wù)通知,如下圖。
點(diǎn)擊模板消息,可直接進(jìn)入小程序某個(gè)頁(yè)面,利用好可以保持應(yīng)用和用戶(hù)的粘性,效果非常好。
是不是什么消息都可以發(fā)送?模板消息推送有什么條件?
為了防止垃圾信息推送,微信做了很多的規(guī)范和限制,如下 只能發(fā)送微信提供的模板信息,不能自定義消息內(nèi)容,想發(fā)什么就發(fā)什么; 有推送條件限制,即用戶(hù)本人在微信體系內(nèi)與頁(yè)面有交互行為后觸發(fā)。當(dāng)用戶(hù)在小程序內(nèi)完成過(guò)支付行為,可在7天內(nèi)推送3條模板消息或者當(dāng)用戶(hù)在小程序內(nèi)有提交表單行為,可7天內(nèi)推送1條模板消息。 有各種標(biāo)題、關(guān)鍵詞規(guī)范,防止發(fā)送垃圾信息,違者封接口。
具體推送步驟如下
模板消息列表
第一步、到小程序管理后臺(tái)申請(qǐng)推送模板。如下圖,已申請(qǐng)了2個(gè)模板,最多可申請(qǐng)25個(gè)模板消息,模板庫(kù)目前有160個(gè)模板,適合各行各業(yè)。
模板消息詳細(xì)
比較重要的是記住模板ID和模板關(guān)鍵詞,在實(shí)際推送過(guò)程中需要用到,如下圖
第二步、收集用戶(hù)formid
用戶(hù)支付產(chǎn)生的prepay_id和提交表單時(shí)產(chǎn)生的formid(表單屬性report-submit="true")
消息推送前端代碼
小程序前端代碼
小程序JS代碼
小程序JS后臺(tái)代碼
后臺(tái)程序接收代碼并保持到數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)如下
CREATE TABLE `xxx_formid` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自動(dòng)ID',
`member_id` int(11) DEFAULT NULL COMMENT '會(huì)員ID',
`form_id` varchar(50) DEFAULT NULL COMMENT '收集到的form_id',
`time_create` int(11) DEFAULT NULL COMMENT '收集時(shí)間',
`time_expire` int(11) DEFAULT NULL COMMENT '過(guò)期時(shí)間',
`can_use_times` int(2) DEFAULT NULL COMMENT '可使用次數(shù)',
`used_times` int(2) DEFAULT NULL COMMENT '已使用次數(shù)',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='小程序收集的用于推送消息的form_id表';
THINKPHP推送代碼如下
/**
* 發(fā)送模板消息
* @param type $ctype 模板消息類(lèi)型
* @param type $member_id 會(huì)員ID
* @param type $template_id 模板ID
* @param type $url 模板消息跳轉(zhuǎn)地址
* @param type $data 模板消息數(shù)據(jù)
* @return int 是否成功
*/
function do_send($ctype,$member_id, $template_id, $url, $data)
{
//獲得access_token
$AccessTokenObj = new AccessTokenModel();
$access_token = $AccessTokenObj->get_token();
//獲得用戶(hù)open_id
$MemberObj = new MemberModel();
$openid = $MemberObj->get_openid($member_id);
//獲得form_id
$FormidObj = new FormidModel();
$form_id = $FormidObj->get_form_id($member_id);
$template = array(
'touser' => $openid,
'form_id' => $form_id,
'template_id' => $template_id,
'page' => $url,
'data' => $data
);
if(empty($openid)) {
$this->add_record($ctype, $member_id, $openid, $form_id,$template_id, json_encode($data),$url, 0, "沒(méi)有可用openid");
return 2;//沒(méi)有可用的openid
}
if(empty($form_id)) {
$this->add_record($ctype, $member_id, $openid, $form_id,$template_id, json_encode($data),$url, 0, "沒(méi)有可用formid");
return 3;//沒(méi)有可發(fā)送的form_id
}
$json_template = json_encode($template);
$url_send = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=" . $access_token;
$json_result = sendCmd($url_send,$json_template);
$result = json_decode($json_result,true);
$is_success = 0;
$err_msg = '';
if($result['errcode'] == 0) {
$FormidObj->update_state_form_id($form_id);
$is_success = 1;
} else {
$err_msg = $result['errcode'];
}
$this->add_record($ctype, $member_id, $openid, $form_id, $template_id, json_encode($data), $url, $is_success, $err_msg);
return $is_success;
}
其中需要用到PHP發(fā)送請(qǐng)求函數(shù)
/**
* 發(fā)起請(qǐng)求
* @param string $url 請(qǐng)求地址
* @param string $data 請(qǐng)求數(shù)據(jù)包
* @return string 請(qǐng)求返回?cái)?shù)據(jù)
*/
function sendCmd($url,$data)
{
$curl = curl_init(); // 啟動(dòng)一個(gè)CURL會(huì)話(huà)
curl_setopt($curl, CURLOPT_URL, $url); // 要訪(fǎng)問(wèn)的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對(duì)認(rèn)證證書(shū)來(lái)源的檢測(cè)
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 從證書(shū)中檢查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); //解決數(shù)據(jù)包大不能提交
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動(dòng)跳轉(zhuǎn)
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動(dòng)設(shè)置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 發(fā)送一個(gè)常規(guī)的Post請(qǐng)求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的數(shù)據(jù)包
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設(shè)置超時(shí)限制防止死循
curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區(qū)域內(nèi)容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 執(zhí)行操作
if (curl_errno($curl)) {
echo 'Errno'.curl_error($curl);
}
curl_close($curl); // 關(guān)鍵CURL會(huì)話(huà)
return $tmpInfo; // 返回?cái)?shù)據(jù)
}
微信小程序的模板消息推送和服務(wù)號(hào)的模板消息推送還是不一樣的
小程序發(fā)送需要formid,而且有7天的時(shí)間限制,而服務(wù)號(hào)是不需要的,但是一個(gè)服務(wù)號(hào)每天有消息總條數(shù)限制。
下面附帶小程序的一些規(guī)則
審核說(shuō)明
1.標(biāo)題
1.1標(biāo)題不能存在相同
1.2標(biāo)題意思不能存在過(guò)度相似
1.3標(biāo)題必須以“提醒”或“通知”結(jié)尾
1.4標(biāo)題不能帶特殊符號(hào)、個(gè)性化字詞等沒(méi)有行業(yè)通用性的內(nèi)容
1.5標(biāo)題必須能體現(xiàn)具體服務(wù)場(chǎng)景
1.6標(biāo)題不能涉及營(yíng)銷(xiāo)相關(guān)內(nèi)容,包括不限于:
消費(fèi)優(yōu)惠類(lèi)、購(gòu)物返利類(lèi)、商品更新類(lèi)、優(yōu)惠券類(lèi)、代金券類(lèi)、紅包類(lèi)、會(huì)員卡類(lèi)、積分類(lèi)、活動(dòng)類(lèi)等營(yíng)銷(xiāo)傾向通知
2.關(guān)鍵詞
2.1同一標(biāo)題下,關(guān)鍵詞不能存在相同
2.2同一標(biāo)題下,關(guān)鍵詞不能存在過(guò)度相似
2.3關(guān)鍵詞不能帶特殊符號(hào)、個(gè)性化字詞等沒(méi)有行業(yè)通用性的內(nèi)容
2.4關(guān)鍵詞內(nèi)容示例必須與關(guān)鍵詞對(duì)應(yīng)匹配
2.5關(guān)鍵詞不能太過(guò)寬泛,需要具有限制性,例如:“內(nèi)容”這個(gè)就太寬泛,不能審核通過(guò)
違規(guī)說(shuō)明
除不能違反運(yùn)營(yíng)規(guī)范外,還不能違反以下規(guī)則,包括但不限于:
不允許惡意誘導(dǎo)用戶(hù)進(jìn)行觸發(fā)操作,以達(dá)到可向用戶(hù)下發(fā)模板目的
不允許惡意騷擾,下發(fā)對(duì)用戶(hù)造成騷擾的模板
不允許惡意營(yíng)銷(xiāo),下發(fā)營(yíng)銷(xiāo)目的模板
處罰說(shuō)明
根據(jù)違規(guī)情況給予相應(yīng)梯度的處罰,一般處罰規(guī)則如下:
第一次違規(guī),刪除違規(guī)模板以示警告,
第二次違規(guī),封禁接口7天,
第三次違規(guī),封禁接口30天,
第四次違規(guī),永久封禁接口
處罰結(jié)果及原因以站內(nèi)信形式告知
創(chuàng)新互聯(lián)專(zhuān)注于微信小程序定制開(kāi)發(fā),歡迎有需要的客戶(hù)咨詢(xún)我們的服務(wù)熱線(xiàn)400-028-6601,或者加我們的客服QQ631063699

當(dāng)前題目:微信小程序模板消息推送詳細(xì)介紹及代碼實(shí)現(xiàn)
文章URL:http://www.muchs.cn/news10/237760.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、軟件開(kāi)發(fā)標(biāo)簽優(yōu)化、電子商務(wù)、ChatGPT、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化