如题,就是这么个玩意,主要是需要前端发一个form_id。我这只详细说后端代码。
//接收前端传过来的form_id
$form_id = $_POST['form_id'];
//这个是前端传过来的该用户的openid
$user_id = $_POST['user_id'];
//获取token
$token=$this->token();
//拼接url地址
$url="https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=$token";
//准备好模板消息接口要的数据
$ar=array(
'touser'=>$user_id,
//这个是前端在微信公众平台配置的模板id
'template_id'=>'自己填',
'form_id'=>$form_id,
//这个data才是重头戏,前端配置模板的时候,对照着下图
'data'=>array(
'keyword1'=>array(
'value'=>'数据'
),
'keyword2'=>array(
'value'=>'数据'
),
//然后还有那么多,我就懒得写了
),
//还有这个就是最重要的代码,不写这个根本不行
'emphasis_keyword'=>'keyword1.DATA'
);
//转化json格式
$a =json_encode($ar,JSON_UNESCAPED_UNICODE);
$header = "Accept-Charset: utf-8";
//开始模拟请求了
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($chl, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $a);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tmp = curl_exec($ch);
curl_close($ch);
//这个只是看返回值。
var_dump($tmp);
如果打印出来是什么41028什么的,说明就是form_id没有值,或者已经过期。form_id可以存表里,在七天内有效。至于其他的错误码,就只有看微信官方说明咯
网友评论