前段时间小程序上项目需要,去小程序官网去看了下,结合网上百度出来的,自己整理了一下模板消息的使用方法
/**
* 发送模板消息
* User: czx
*openid 用户openid
* $order_sn 订单号
* $count_money 支付金额
* $pay_time 支付时间
* $goods_name 商品名
* $shop_name 商家名
*/
public function send($openid,$page,$order_sn,$count_money,$pay_time,$goods_name,$shop_name)
{
$data = [
'openid' => $openid,
'page' => $page,
'form_id' => '',//模板消息需要的formid
'data' => [
$order_sn,$count_money,$pay_time,$goods_name,$shop_name
]
];
$ret = $this->templateMessage($data);
if($ret)
{
return $ret;
}else{
return 'faile';
}
}
这个是使用方法,直接调取send()就好了
/**
* @param $params [参数]
* @param $appid [小程序appid]
* @param $secret [小程序secret]
* @param $type [模板消息的类型] 如:审核,通知, 签到 。。。。
*/
public function templateMessage($params)
{
$appid=\think\Config::get('***********');
$secret=\think\Config::get('**********');
# 模板关键字
$data = [];
foreach ($params['data'] as $k => $v) {
$data['keyword'.($k+1)] = ['value'=>$v];
}
$postData = [
'touser' => $params['openid'],
'template_id' => '',//这是模板id,需要去申请
'page' => $params['page'],
'form_id' => $params['form_id'],
'data' => $data
];
# user_token 必须全局获取|存储
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret";
$result = $this->http_request($url);
$access_token = $result['access_token'];
$urls = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='.$access_token;
$ret = $this->postCurl($urls, $postData,'json');
return $ret;
}
以上就是我完成的发送模板消息的方法,亲测可用,没有bug