如何实现小程序推送模板消息,有更高级的改写方法吗?

2026-04-20 20:301阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1226个文字,预计阅读时间需要5分钟。

如何实现小程序推送模板消息,有更高级的改写方法吗?

如何实现小程序推送模板消息?

以下为开发步骤:

1. 获取用户的openid

2.获取form_id或prepay_id

3.获取access_token

4.发送模板消息

DEMO下载地址:

如何实现小程序推送模板消息,有更高级的改写方法吗?

重要提示:此方法利用PHP内置curl模块发送请求。

开发步骤:

1. 获取用户的openid

2.获取form_id或prepay_id

3.获取access_token

4.发送模板消息

具体代码如下:

php

// 获取openidfunction getOpenid($code) { // 你的小程序AppID $appid='你的AppID'; // 你的小程序AppSecret $appSecret='你的AppSecret'; // 获取openid的接口URL $url=https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$appSecret&js_code=$code&grant_type=authorization_code; // 发送请求 $result=curl_get($url); // 解析返回结果 $data=json_decode($result, true); // 返回openid return $data['openid'];}

// 获取form_id或prepay_idfunction getFormId($openid) { // 你的小程序AppID $appid='你的AppID'; // 你的小程序AppSecret $appSecret='你的AppSecret'; // 获取form_id的接口URL $url=https://api.weixin.qq.com/wxa/getsetting?access_token=$access_token; // 发送请求 $result=curl_get($url); // 解析返回结果 $data=json_decode($result, true); // 返回form_id return $data['form_id'];}

// 获取access_tokenfunction getAccessToken() { // 你的小程序AppID $appid='你的AppID'; // 你的小程序AppSecret $appSecret='你的AppSecret'; // 获取access_token的接口URL $url=https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appSecret; // 发送请求 $result=curl_get($url); // 解析返回结果 $data=json_decode($result, true); // 返回access_token return $data['access_token'];}

// 发送模板消息function sendTemplateMessage($openid, $form_id, $template_id, $page, $data) { // 获取access_token $access_token=getAccessToken(); // 模板消息的发送接口URL $url=https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=$access_token; // 模板消息的数据格式 $data=array( 'touser'=> $openid, 'template_id'=> $template_id, 'page'=> $page, 'form_id'=> $form_id, 'data'=> $data ); // 发送请求 $result=curl_post($url, json_encode($data)); // 解析返回结果 $data=json_decode($result, true); // 返回发送结果 return $data;}

// 发送请求的函数function curl_get($url) { $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $result=curl_exec($ch); curl_close($ch); return $result;}

function curl_post($url, $data) { $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $result=curl_exec($ch); curl_close($ch); return $result;}

如何实现小程序推送模板消息?

以下为开发步骤

获取用户的openid

获取form_id或者prepay_id

获取access_token

发送模板消息

DEMO下载地址

重要提示

此方法为利用PHP内置curl模块发送请求,开发中都是以此方法访问微信服务器获取数据,其中url为接口地址,params为携带参数,ispost为请求方式,api.weixin.qq.com/sns/jscode2session?appid=' . $appid . '&secret=' . $secre . '&js_code=' . $code . '&grant_type=authorization_code'; //微信官方给出的接口,利用小程序内获取的code置换openid $UserInfo=HttpUtils::curl($Url, $params = false, $ispost = 0, $api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=". $appid."&secret=".$secret; //微信给出的获取access_token的接口 $access_token=Cache::get("access_token"); //查询缓存中是否已存在access_token if($access_token==""){ $access_token=json_decode(self::curl($Url))->{"access_token"}; //访问接口获取access_token Cache::put("access_token",$access_token,120); //设置缓存,过期时间2小时 } return $access_token; }

发送模板消息

发送模板消息方法

public static function SendMsg($data,$access_token){ $MsgUrl="api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=".$access_token; //微信官方接口,需要拼接access_token return json_decode(self::curl($MsgUrl,$params=json_encode($data),$ispost=1,$https=1)); //访问接口,返回参数 }

调用示例

public function test(Request $request){ $form_id=$request->get("form_id"); $openid=$request->get("openid"); $access_token=WxUtils::access_token(); $data=[ "touser"=>$openid, //接收用户的openid "template_id"=>"k03-Sk5c4eNlQKrS4VqI4cKjEil7JyvcouxtKBFkVcs", //模板id "page"=>"pages/index/index",//点击模板消息跳转至小程序的页面 "form_id"=>$form_id, //可为表单提交时form_id,也可是支付产生的prepay_id "data"=>[ "keyword1"=>[ "value"=> "五公司", //自定义参数 "color"=> '#173177'//自定义文字颜色 ], "keyword2"=>[ "value"=> "保洁服务",//自定义参数 "color"=> '#173177'//自定义文字颜色 ], "keyword3"=>[ "value"=> "2018年10月",//自定义参数 "color"=> '#173177'//自定义文字颜色 ], "keyword4"=>[ "value"=> "已发布",//自定义参数 "color"=> '#173177'//自定义文字颜色 ], "keyword5"=>[ "value"=> "请至小程序订单列表进行查看",//自定义参数 "color"=> '#173177'//自定义文字颜色 ], ] ]; $res=WxUtils::SendMsg($data,$access_token); //返回结果 }

总结

1.openid获取挺简单的,就是你的appid和secret别搞错就行

2.access_token同上,也是别搞错填写的参数,严格按照官方给出的文档填

3.模板消息的data中,跳转小程序的路由严格按照你小程序所写路由填写,跳转pages/index/index别写成…/index/inex

相关推荐:小程序教程

以上就是如何实现小程序推送模板消息的详细内容,更多请关注自由互联其它相关文章!

本文共计1226个文字,预计阅读时间需要5分钟。

如何实现小程序推送模板消息,有更高级的改写方法吗?

如何实现小程序推送模板消息?

以下为开发步骤:

1. 获取用户的openid

2.获取form_id或prepay_id

3.获取access_token

4.发送模板消息

DEMO下载地址:

如何实现小程序推送模板消息,有更高级的改写方法吗?

重要提示:此方法利用PHP内置curl模块发送请求。

开发步骤:

1. 获取用户的openid

2.获取form_id或prepay_id

3.获取access_token

4.发送模板消息

具体代码如下:

php

// 获取openidfunction getOpenid($code) { // 你的小程序AppID $appid='你的AppID'; // 你的小程序AppSecret $appSecret='你的AppSecret'; // 获取openid的接口URL $url=https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$appSecret&js_code=$code&grant_type=authorization_code; // 发送请求 $result=curl_get($url); // 解析返回结果 $data=json_decode($result, true); // 返回openid return $data['openid'];}

// 获取form_id或prepay_idfunction getFormId($openid) { // 你的小程序AppID $appid='你的AppID'; // 你的小程序AppSecret $appSecret='你的AppSecret'; // 获取form_id的接口URL $url=https://api.weixin.qq.com/wxa/getsetting?access_token=$access_token; // 发送请求 $result=curl_get($url); // 解析返回结果 $data=json_decode($result, true); // 返回form_id return $data['form_id'];}

// 获取access_tokenfunction getAccessToken() { // 你的小程序AppID $appid='你的AppID'; // 你的小程序AppSecret $appSecret='你的AppSecret'; // 获取access_token的接口URL $url=https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appSecret; // 发送请求 $result=curl_get($url); // 解析返回结果 $data=json_decode($result, true); // 返回access_token return $data['access_token'];}

// 发送模板消息function sendTemplateMessage($openid, $form_id, $template_id, $page, $data) { // 获取access_token $access_token=getAccessToken(); // 模板消息的发送接口URL $url=https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=$access_token; // 模板消息的数据格式 $data=array( 'touser'=> $openid, 'template_id'=> $template_id, 'page'=> $page, 'form_id'=> $form_id, 'data'=> $data ); // 发送请求 $result=curl_post($url, json_encode($data)); // 解析返回结果 $data=json_decode($result, true); // 返回发送结果 return $data;}

// 发送请求的函数function curl_get($url) { $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $result=curl_exec($ch); curl_close($ch); return $result;}

function curl_post($url, $data) { $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $result=curl_exec($ch); curl_close($ch); return $result;}

如何实现小程序推送模板消息?

以下为开发步骤

获取用户的openid

获取form_id或者prepay_id

获取access_token

发送模板消息

DEMO下载地址

重要提示

此方法为利用PHP内置curl模块发送请求,开发中都是以此方法访问微信服务器获取数据,其中url为接口地址,params为携带参数,ispost为请求方式,api.weixin.qq.com/sns/jscode2session?appid=' . $appid . '&secret=' . $secre . '&js_code=' . $code . '&grant_type=authorization_code'; //微信官方给出的接口,利用小程序内获取的code置换openid $UserInfo=HttpUtils::curl($Url, $params = false, $ispost = 0, $api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=". $appid."&secret=".$secret; //微信给出的获取access_token的接口 $access_token=Cache::get("access_token"); //查询缓存中是否已存在access_token if($access_token==""){ $access_token=json_decode(self::curl($Url))->{"access_token"}; //访问接口获取access_token Cache::put("access_token",$access_token,120); //设置缓存,过期时间2小时 } return $access_token; }

发送模板消息

发送模板消息方法

public static function SendMsg($data,$access_token){ $MsgUrl="api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=".$access_token; //微信官方接口,需要拼接access_token return json_decode(self::curl($MsgUrl,$params=json_encode($data),$ispost=1,$https=1)); //访问接口,返回参数 }

调用示例

public function test(Request $request){ $form_id=$request->get("form_id"); $openid=$request->get("openid"); $access_token=WxUtils::access_token(); $data=[ "touser"=>$openid, //接收用户的openid "template_id"=>"k03-Sk5c4eNlQKrS4VqI4cKjEil7JyvcouxtKBFkVcs", //模板id "page"=>"pages/index/index",//点击模板消息跳转至小程序的页面 "form_id"=>$form_id, //可为表单提交时form_id,也可是支付产生的prepay_id "data"=>[ "keyword1"=>[ "value"=> "五公司", //自定义参数 "color"=> '#173177'//自定义文字颜色 ], "keyword2"=>[ "value"=> "保洁服务",//自定义参数 "color"=> '#173177'//自定义文字颜色 ], "keyword3"=>[ "value"=> "2018年10月",//自定义参数 "color"=> '#173177'//自定义文字颜色 ], "keyword4"=>[ "value"=> "已发布",//自定义参数 "color"=> '#173177'//自定义文字颜色 ], "keyword5"=>[ "value"=> "请至小程序订单列表进行查看",//自定义参数 "color"=> '#173177'//自定义文字颜色 ], ] ]; $res=WxUtils::SendMsg($data,$access_token); //返回结果 }

总结

1.openid获取挺简单的,就是你的appid和secret别搞错就行

2.access_token同上,也是别搞错填写的参数,严格按照官方给出的文档填

3.模板消息的data中,跳转小程序的路由严格按照你小程序所写路由填写,跳转pages/index/index别写成…/index/inex

相关推荐:小程序教程

以上就是如何实现小程序推送模板消息的详细内容,更多请关注自由互联其它相关文章!