微信小程序requestSubscribeMessage发服务消息步骤
1 js部分 先登录 wx.login ,然后写个按钮,加个事件,事件内容为下
let tmplIds = ['1nG14f3mUXE-W6Ty3FwSqeCphEQIdpaynpwlQghUaIE']
wx.showModal({
title: '温馨提示',
content: '为更好的促进您与买家的交流,服务号需要在您的书籍成交时向您发送消息',
confirmText: "同意",
cancelText: "拒绝",
success: function (res) {
if (res.confirm) {
//调用订阅消息
console.log('用户点击确定');
//调用订阅
wx.requestSubscribeMessage({
tmplIds: tmplIds,
success: (res) => {
console.log("订阅消息 成功 " + res);
},
fail: (errCode, errMessage) => {
console.log( errCode , errMessage);
},
complete: (errMsg) => {
console.log("订阅消息 完成 " + errMsg);
}
});
} else if (res.cancel) {
console.log('用户点击取消');
///显示第二个弹说明一下
wx.showModal({
title: '温馨提示',
content: '拒绝后您将无法获取实时的与卖家(买家)的交易消息',
confirmText: "知道了",
showCancel: false,
success: function (res) {
///点击知道了的后续操作
///如跳转首页面
}
});
}
}
});
2 php部分
手动触发,发送模板消息
$appid = '';
$secret = '';
$grant_type = 'authorization_code';
$OPENID="";
include_once("config.inc");
//获取access_token
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $appid . '&secret=' . $secret;
$res = geturl($url);
$i=1000;
while($i--){}
// print_r($res);
$access_token=$res["access_token"];
$requestjson = '{
"touser": "'.$OPENID.'",
"template_id": "'.$TEMPLATE_ID.'",
"page": "/pages/home/home",
"miniprogram_state":"formal",
"lang":"zh_CN",
"data": {
"name1": {
"value": "value"
},
"thing2": {
"value": "自定义消息推送模板样例"
},
"date3": {
"value": "'.date("Y-m-d").'"
} ,
"thing6": {
"value": "以上信息均可自定义"
}
}
}';
//发送模板
$url = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' . $access_token;
$res = posturl($url, $requestjson);
print_r($res);
//获取模板列表
// $url='https://api.weixin.qq.com/wxaapi/newtmpl/gettemplate?access_token=' . $access_token;
// $res = geturl($url, $requestjson);
// print_r($res);
function geturl($url)
{
$headerArray = array("Content-type:application/json;", "Accept:application/json");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray);
$output = curl_exec($ch);
curl_close($ch);
$output = json_decode($output, true);
return $output;
}
function posturl($url, $data)
{
// $data = json_encode($data);
$headerArray = array("Content-type:application/json;charset='utf-8'", "Accept:application/json");
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headerArray);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
// return json_decode($output,true);
}