大家好,上一篇文章小沃给大家写了一篇关于如何在企业服务号上获取用户信息的功能,今天小沃就要结合这个功能给大家讲讲模板消息推送的功能。
模板消息推送这个功能在目前的市场上,使用频率是非常高的。由于目前app后台运行一个进程这一手段纷纷被各大安全厂商所封杀(据说是为了收保护费)。因此,一个统一的推送系统就显得格外的重要了。目前,根据小沃的经验。微信消息推送是目前最方便的,最安全消息推送手段。
下面,小沃就来给大家讲讲如何接入微信推送服务。
一:获取权限
首先要申请启动模板消息的功能。
推送过程需要一些认证,具体认证方式跟着提示走就可以了。
具体设置方式您可以看上一篇文章。
当消息模板功能启动后,设置消息模板。
在刚才启动模板消息中,选择特定的模板。(如果没有合适的模板,也可以向微信提交,但是需要审核)。
当模板消息选定后,通过接口权限的“模板消息”权限按钮跳转到调用说明文件中去。
在这里,我们可以看到很多的调用方法,有“设置所属行业”,“获取设置的行业信息”,“获得模板ID”,“删除模板”,“发送模板消息”,“事件推送”这几大类。我们这一篇只讲发送模板消息这一个功能即可。
二:获取access_token
微信提供的接口函数如下 :
http请求方式: POST https://api.weixin.qq.com/cgi-bin/template/api_set_industry?access_token=
可以看到,提交参数的方式为post提交,url中还有一个access_token参数。
因此我们需要先获取access_token。
获取access_token的方法为:
https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=&secret=
这个功能只需要APPID与APPSECRET两个参数,直接使用php的file_get_contents()即可获取。
但是注意一下三点。
第一、获取到的access_token在有效期内是可以复用的。
第二、access_token每天只能获取100000次。
第三、申请一次access_token,有效期是2小时。
三:发送消息
这个命令的post参数如下:
{ "touser":"OPENID", "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY", "url":"http://weixin.qq.com/download", "miniprogram":{ "appid":"xiaochengxuappid12345", "pagepath":"index?foo=bar" }, "data":{ "first": { "value":"恭喜你购买成功!", "color":"#173177" }, "keynote1":{ "value":"巧克力", "color":"#173177" }, "keynote2": { "value":"39.8元", "color":"#173177" }, "keynote3": { "value":"2014年9月22日", "color":"#173177" }, "remark":{ "value":"欢迎再次购买!", "color":"#173177" } } }
大家可以看到有如下几个参数。
touser | 接收者openid |
template_id | 您想要使用的模板ID |
url | 这个不是必填项,如果您发了的消息后,希望跳转到某个网页,在这里添加跳转链接。 |
miniprogram | 这个也不是必填项,如果您发了的消息后,希望跳转到某个小程序,在这里添加参数。 |
data | 您要发送的文字,里面的参数必须与模板一一对应才行。 |
考虑到使用微信推送的请求方通常是服务器端,因此这里给大家一个php curl的案例。
$access_token = get_option ("wc_access_token"); $template_id = get_option ("wc_template_id"); $curlopt_url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$access_token; $args = array ( "touser" => $openid, "template_id" => $template_id, "url" => get_bloginfo('siteurl').$url, "data" => array ( "first" => array ( "value" => "我是新的消息", "color" => "#173177" ), "keyword1" => array ( "value" => $author, "color" => "#173177" ), "keyword2" => array ( "value" => $time, "color" => "#173177" ), "remark" => array ( "value" => "赶紧打开看一下吧!!!", "color" => "#173177" ) ) ); $post_string = json_encode ($args, JSON_UNESCAPED_UNICODE); $options = array ( CURLOPT_URL => $curlopt_url, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $post_string ); $ch = curl_init (); curl_setopt_array ($ch, $options); $result = curl_exec ($ch);
如果返回的数据包括"errcode":0与"errmsg":"ok"。就说明发送成功了。
类似银行卡的消费提醒,外卖或是商城的订单变化通知都是用的这套技术。
如果您有类似产品需要接入微信,可以联系小沃,期待着与您的合作哦。