PHP-小程序发布订阅信息
一、先在小程序开发平台设置板信息,获取模板id以及模板的模块名称

二、小程序端代码
xcxSendMsg:function(){
console.log('点击测试')
wx.requestSubscribeMessage({
tmplIds: ['XXXXXXfM70VPu6kQO-oQtSRsui43lXZ2lM'],
success(res) {
console.log(res)
if (res['XXXXXXcXBfM70VPu6kQO-oQtSRsui43lXZ2lM'] === 'accept') {
console.log('用户同意了')
wx.showToast({
title: '订阅OK!',
duration: 1000,
})
wx.request({
url: app.globalData.url + '/admin.php/index/xcxDingYueMsg',
data: {
weichat_openid: app.globalData.userInfo.openid,
template_id: 'XXXXXXXM70VPu6kQO-oQtSRsui43lXZ2lM'
},
header: {
'content-type': 'application/json' // 默认值
},
success: function (res) {
console.log(res.data);
}
})
}
},
fail(err) {
//失败
console.error(err);
}
})
},
三、PHP端代码
1、PHP端接收代码
//测试小程序发送订阅信息
public function xcxDingYueMsg(){
//发送内容
$data = [] ;
$data['touser'] = $this->request->param('weichat_openid');
$data['template_id'] = $this->request->param('template_id');
$access_token = $this->getTestWxAccessToken();
//模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
$data['data'] = [
"name1"=>[
'value' => '测试陈小小'
],
"thing3"=>[
'value' => '测试温馨提示'
],
];
//请求url
$msgurl = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' . $access_token ;
$res1 = $this->curl($msgurl,json_encode($data));
return json($res1);
}
2、以上代码中的方法代码
/**
* 获取公众号access_token
*/
public function getTestWxAccessToken(){
$appId = constant("APPID");
$appSecret = constant("SECRET");
$access_token = Cache::get('wx_access_token:'.$appId);
if($access_token){
return $access_token;
}else{
//1.请求url地址
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appId."&secret=".$appSecret;
$res = $this->curl($url);
if(isset($res['errcode']) && $res['errcode']!=0){
return ('获取access_token出错');
}
$access_token = $res['access_token'];
Cache::set('wx_access_token:'.$appId,$access_token,5400);
return $access_token;
}
}
public function curl($url,$data = null){
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
// 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。
// 如果在部署过程中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_URL, $url);
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
$res = curl_exec($curl);
curl_close($curl);
$json_obj = json_decode($res,true);
return $json_obj;
}
785

被折叠的 条评论
为什么被折叠?



