人在家中坐,班從天上來
一直以來,微信Api一直很強勢。這次也不例外。
既然模板消息不能使用了,那隻能加班改爲訂閱消息。
一、微信公衆平臺部分
1.1 要想使用微信訂閱號功能,首先你要在微信公衆平臺申請開啓訂閱號功能。
1.2 開通成功後,添加訂閱模板。這裏的模板id是用來推送消息的。
模板添加完成以後,微信公衆平臺的操作就已經完成了。
二、前端部分
微信訂閱號的前端部分是很簡單的,只需要用戶也必須用戶觸發點擊操作以後,調用一個接口就行了
wxml
<view class="reservation-btn" bindtap="reservationBtnClik">立即預訂</view>
js
//預定
reservationBtnClik(){
let that=this;
wx.requestSubscribeMessage({
tmplIds: ['ra8YQ4iPXXUH-QyEo7qQAJTCg1p4qCwCtoD9PxgVR2Q'],
success(res) {
console.log(res);
if (res.errMsg =="requestSubscribeMessage:ok"){
that.reservationBtnClik1();
}
},
fail(err) {
console.log(err);
}
})
},
至此,前端部分已經完成。不過這裏需要注意的是,一次點擊最多有三個模板id
後臺
後臺和模板消息大體一樣
//測試訂閱號消息
if($type == 'subscribeMessage'){
$main_data = [
'character_string1' => ['value' => 'r123456'],
'thing2' => ['value' => 'r123456'],
'name3' => ['value' => '十個以內的純漢字'],
'number5' => ['value' => '110'],
'thing6' => ['value' => 'r123456']
];
$url = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token='.$access_token;
$data = array(
'touser' => $userModel->getOpenid(),
'template_id' =>'ra8YQ4iPXXUH-QyEo7qQAJTCg1p4qCwCtoD9PxgVR2Q',
'page' => 'pages/orderDetail/orderDetail?order_no='.$order_info['order_no'],
'data' => $main_data
);
}
$content = json_encode($data, JSON_UNESCAPED_UNICODE);
log_info('請求鏈接爲:'.$url);
log_info('請求參數爲:'.$content);
$res = _curl_post($url, $content);
注意:這裏比較坑的是,模板消息一定要嚴格按照微信公衆平臺要求的字段的類型填寫。否則就是47003
例如character_string1就代表,你只能填寫數字、字母、符號;不能填寫漢字。
此外,還需要特別注意的是。和模板消息不同的是,微信訂閱號消息用戶雖然點擊同意一次,但是可以多次推送。不像模板消息中的formid一旦使用就不能再次推送了。所以後臺一定要做好推送的限制,避免頻繁重複推送。