微信小程序模板消息推送开发实战 thinkphp5
作者:广州小程序开发 时间:2018-06-12 22:43
小程序模板消息推送如何开发,开发小程序模板消息推送首先要获取用户提交的,表单id(或者用户付款id)这里的表单id要在真机里面才获取的到,开发工具获取不到的
在表单form里 加 report-submit="true"
在表单提交方法里 获取表单id 发送到服务器保存
let formId = e.detail.formId;
this.FormIds(formId); //保存表单id
FormIds方法如下
collectFormIds: function (formId) {
wx.request({
url: app.globalData.baseUrl + "Api/my/formId", //仅为示例,并非真实的接口地址
data: {
openid: wx.getStorageSync('openid'),
formId: formId
},
method: "POST",
header: {
'content-type': 'application/json' // 默认值
},
success: function (res) {
console.log(res);
},
error: function (res) {
}
})
},
thinphp5后台接收方法写入数据表
public function formId(){
$openid = input('post.openid');
$formId = input('post.formId');
if(!$openid){
return json_encode(array('code'=>2,'msg'=>'请先授权微信信息'));
}
if(!$formId){
return json_encode(array('code'=>2,'msg'=>'请先授权微信信息'));
}
$data['openid'] = $openid;
$data['formid'] = $formId;
$data['create_time'] = time();
$id = db('wx_temp')->insertGetId($data);
if($id){
return json_encode(array('code'=>1,'msg'=>'成功'));
}
}
收取获取表单id后就可以发送模板消息推送啦,
方法如下
//模板推送
function sendtpl(){
$accessToken = $this->getWxAccessToken(); //这是获取的小程序accessToken方法
$postData = array(
"touser" =>'oT2Ym0SYlfb3snK74XHs-EI2A68WsI', //用户openid
"template_id" =>'lXmpaHgzl2DAQVMLb2VMsexvmRkYPYeTDFyuN5vgJXs', //模板消息ID
"page" =>'pages/index/index',
"form_id" =>'1528644943564', //表单提交场景下,事件带上的 formId;支付场景下,为本次支付的 prepay_id
"data" =>array(
'keyword1' => array('value'=>'小程序模板推送'),
'keyword2' => array('value'=>'深圳小程序开发,广州小程序开发公司'),
'keyword3' => array('value'=>'广州山水居科技有限公司')
),
'emphasis_keyword'=>''
);
$postData = json_encode($postData,true); //这里是把postData转json ,不然入坑
$url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token={$accessToken}";
$rtn = $this->http_curl($url,$postData);
return $rtn;
}
小程序获取accesstoken方法
public function getWxAccessToken( $appid, $appsecret){
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$appsecret;
$AccessToken = $this->http_curl($url);
$AccessToken = json_decode($AccessToken , true);
$AccessToken = $AccessToken['access_token'];
return $AccessToken;
}
//curl
function http_curl($url, $data = null){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
这样就可以进行消息推送了,每个推送的表单id只能推送一次,7天内有效,可以多获取几个表单id就可以进行不端推送啦
欢迎转载,来源广州山水居科技有限公司,业务主要小程序开发定制,网站开发等业务。