在如今科技發達的年代,大家每天都在接收大量的信息,如電話、短信、APP消息推送、郵件、微信消息、微信服務通知、朋友圈消息、微博消息等等,這些不乏大量的推廣信息。面對大量的垃圾信息,我們會報告垃圾短信、屏蔽垃圾電話、屏蔽垃圾郵件、屏蔽某人朋友圈等等,這也導致了大部分消息推送方式的失效或者效果打折。那么,今天創新互聯談的是,效果非常好的微信服務通知,因為這里推送的都是有效信息,屏蔽的人非常少,微信不允許你把它當做推廣工具,所以都有調用次數等規則限制,但我們可以好好利用以保持應用的用戶粘性。
小程序的模板消息推送,體現在微信-服務通知,如下圖。
點擊模板消息,可直接進入小程序某個頁面,利用好可以保持應用和用戶的粘性,效果非常好。是不是什么消息都可以發送?模板消息推送有什么條件?
為了防止垃圾信息推送,微信做了很多的規范和限制,如下 只能發送微信提供的模板信息,不能自定義消息內容,想發什么就發什么; 有推送條件限制,即用戶本人在微信體系內與頁面有交互行為后觸發。當用戶在小程序內完成過支付行為,可在7天內推送3條模板消息或者當用戶在小程序內有提交表單行為,可7天內推送1條模板消息。 有各種標題、關鍵詞規范,防止發送垃圾信息,違者封接口。具體推送步驟如下
第一步、到小程序管理后臺申請推送模板。如下圖,已申請了2個模板,最多可申請25個模板消息,模板庫目前有160個模板,適合各行各業。
比較重要的是記住模板ID和模板關鍵詞,在實際推送過程中需要用到,如下圖
第二步、收集用戶formid
用戶支付產生的prepay_id和提交表單時產生的formid(表單屬性report-submit="true")
小程序前端代碼
小程序JS后臺代碼
后臺程序接收代碼并保持到數據庫
數據庫如下
CREATE TABLE `xxx_formid` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自動ID',
`member_id` int(11) DEFAULT NULL COMMENT '會員ID',
`form_id` varchar(50) DEFAULT NULL COMMENT '收集到的form_id',
`time_create` int(11) DEFAULT NULL COMMENT '收集時間',
`time_expire` int(11) DEFAULT NULL COMMENT '過期時間',
`can_use_times` int(2) DEFAULT NULL COMMENT '可使用次數',
`used_times` int(2) DEFAULT NULL COMMENT '已使用次數',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='小程序收集的用于推送消息的form_id表';
THINKPHP推送代碼如下
/**
* 發送模板消息
* @param type $ctype 模板消息類型
* @param type $member_id 會員ID
* @param type $template_id 模板ID
* @param type $url 模板消息跳轉地址
* @param type $data 模板消息數據
* @return int 是否成功
*/
function do_send($ctype,$member_id, $template_id, $url, $data)
{
//獲得access_token
$AccessTokenObj = new AccessTokenModel();
$access_token = $AccessTokenObj->get_token();
//獲得用戶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, "沒有可用openid");
return 2;//沒有可用的openid
}
if(empty($form_id)) {
$this->add_record($ctype, $member_id, $openid, $form_id,$template_id, json_encode($data),$url, 0, "沒有可用formid");
return 3;//沒有可發送的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發送請求函數
/**
* 發起請求
* @param string $url 請求地址
* @param string $data 請求數據包
* @return string 請求返回數據
*/
function sendCmd($url,$data)
{
$curl = curl_init(); // 啟動一個CURL會話
curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢測
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 從證書中檢查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); //解決數據包大不能提交
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 發送一個常規的Post請求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的數據包
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設置超時限制防止死循
curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區域內容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 執行操作
if (curl_errno($curl)) {
echo 'Errno'.curl_error($curl);
}
curl_close($curl); // 關鍵CURL會話
return $tmpInfo; // 返回數據
}微信小程序的模板消息推送和服務號的模板消息推送還是不一樣的
小程序發送需要formid,而且有7天的時間限制,而服務號是不需要的,但是一個服務號每天有消息總條數限制。下面附帶小程序的一些規則
審核說明
1.標題
1.1標題不能存在相同
1.2標題意思不能存在過度相似
1.3標題必須以“提醒”或“通知”結尾
1.4標題不能帶特殊符號、個性化字詞等沒有行業通用性的內容
1.5標題必須能體現具體服務場景
1.6標題不能涉及營銷相關內容,包括不限于:
消費優惠類、購物返利類、商品更新類、優惠券類、代金券類、紅包類、會員卡類、積分類、活動類等營銷傾向通知
2.關鍵詞
2.1同一標題下,關鍵詞不能存在相同
2.2同一標題下,關鍵詞不能存在過度相似
2.3關鍵詞不能帶特殊符號、個性化字詞等沒有行業通用性的內容
2.4關鍵詞內容示例必須與關鍵詞對應匹配
2.5關鍵詞不能太過寬泛,需要具有限制性,例如:“內容”這個就太寬泛,不能審核通過
違規說明
除不能違反運營規范外,還不能違反以下規則,包括但不限于:
不允許惡意誘導用戶進行觸發操作,以達到可向用戶下發模板目的
不允許惡意騷擾,下發對用戶造成騷擾的模板
不允許惡意營銷,下發營銷目的模板
處罰說明
根據違規情況給予相應梯度的處罰,一般處罰規則如下:
第一次違規,刪除違規模板以示警告,
第二次違規,封禁接口7天,
第三次違規,封禁接口30天,
第四次違規,永久封禁接口
處罰結果及原因以站內信形式告知
創新互聯專注于
微信小程序定制開發,歡迎有需要的客戶咨詢我們的服務熱線400-028-6601,或者加我們的客服QQ631063699
當前題目:微信小程序模板消息推送詳細介紹及代碼實現
文章URL:http://m.newbst.com/news10/237760.html
成都網站建設公司_創新互聯,為您提供動態網站、軟件開發、標簽優化、電子商務、ChatGPT、外貿建站
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯