PHP实现发送模板消息(微信公众号版)

以下为开发步骤:

1.微信公众号为服务号且开通微信认证(其他类型账号不能发送)

2.ip白名单设置你的服务器ip(用于获取access_token)

3.网页授权你的域名(用于获取用户的openid)

4.开通模板消息并在模板库中选用模板

5.获取openid

6.发送模板消息

ip白名单

网页授权

开通模板消息并选用模板

获取openid

这是微信官方文档

1.用户同意授权,获取code

接口地址:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE#wechat_redirect

appid:公众号appid基础设置里有(必填)

redirect_uri:重定向地址,用于接收code(必填)

response_type:返回类型,请填写code(必填)

scope:应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )(必填)

#wechat_redirect:无论直接打开还是做页面302重定向时候,必须带此参数(必填)

完成参数填写后直接扔进你的自定义菜单栏里,点击跳转url

2.通过code换取网页授权access_token

接口地址:https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

$code=$request->get("code"); //接收code,这里我用的laravel框架

$url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=appid&secret=secret&code=".$code."&grant_type=authorization_code";

$res=HttpUtils::curl($url, $params = false, $ispost = 0, $https = 1);//此方法为curl发送请求,可联系我要完整代码

$res = (array)json_decode($res); // 返回结果为json,其中包含openid,access_token

appid:公众号appid基础设置里有(必填)

secret:公众号secret基础配置里生成(必填)

code:第一步获取的code(必填)

grant_type:填写为authorization_code(必填)

正确返回的结果:

{ "access_token":"ACCESS_TOKEN",

"expires_in":7200,

"refresh_token":"REFRESH_TOKEN",

"openid":"OPENID",

"scope":"SCOPE" }

其中openid扔进你的数据库,发送模板消息的时候用

发送模板消息

1.获取access_token

接口地址:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appid&secret=secret

appid:公众号appid(必填)

secret:公众号secret(必填)

grant_type:获取access_token填写client_credential(必填)

2.拼接模板消息

$data=[

"touser"=>$openid, //对方的openid,前一步获取

"template_id"=>"EVcUo-BP_A59s8sXjmYDZPEXtbaMpOCwVQguN4TUwHY", //模板id

"miniprogram"=>["appid"=>"", //跳转小程序appid

"pagepath"=>"pages/index/index"],//跳转小程序页面

"data"=>[

"first"=>[

"value"=> "你的账户即将到期,请及时缴费", //自定义参数

"color"=> ‘#173177‘//自定义颜色

],

"keyword1"=>[

"value"=> $account, //自定义参数

"color"=> ‘#173177‘//自定义颜色

],

"keyword2"=>[

"value"=> $time, //自定义参数

"color"=> ‘#173177‘//自定义颜色

],

"remark"=>[

"value"=> "如有疑问,请联系当地网点", //自定义参数

"color"=> ‘#173177‘//自定义颜色

],

]

];

3.发送模板消息

$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appid&secret=secret"; //此时再次请求access_token,与获取openid的接口不同!!!

$access_token=json_decode(self::curl($url))->{"access_token"};

$msgurl="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$access_token; // 发送模板消息接口

return json_decode(self::curl($msgurl,$params=json_encode($data),$ispost=1,$https=1));

1.openid获取需要网页获取

2.接口地址严格按照官方所给出的地址填写,参数顺序不能错

3.发送模板消息时获取的access_token具有2小时的时效可丢进缓存中,不必每次发送都获取,每天只有两千次,模板消息发送次数为10万次,当然根据你公众号的关注人数来确定,人数超过10万肯定具有更高的次数

作者:DZDZ1995
链接:https://www.jianshu.com/p/2762e43781e7
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

作者:DZDZ1995
链接:https://www.jianshu.com/p/2762e43781e7

原文地址:https://www.cnblogs.com/wx228/p/11193072.html

时间: 2024-10-09 08:29:27

PHP实现发送模板消息(微信公众号版)的相关文章

asp微信模板消息用于公众号推送消息给用户asp源码

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><% session.codepage=936Response.Charset = "GB2312"%><%url = "http://www.xxx.com"Dim Arr(4)Arr(0) = "first=Hi,你好!"Arr(1) = "keyword1=FromUserName&q

主动给用户发消息-微信公众号模版消息

微信公众号模版消息最大的作用就是用户在平台上提交订单或发生其它行为时,平台可以给用户发送简要的交易信息,且公众平台主动给用户发送消息目前最多的就是1.模版消息:2.客服消息. 公众号配置 首先申请一个需要的模版消息   其次,发送模版消息必须要用户的openid,获取教程可参考之前的获取用户信息篇 后台代码 我的模版消息是用来提醒交易状态的,故以网站中以交易业务流程为例 万能调用 //微信通知 $id = get_order_id($out_trade_no);//获取订单的ID $uid =

大闸蟹提货系统(微信公众号版)asp源码下载

最近接到了一个卖大闸蟹的海鲜店老板的定制开发,他要在店里卖礼品卡,礼品卡上有面值298.598.998元不等的面值卡,上面有卡号,密码, 密码用刮刮银涂上了,客户买礼品卡送人,送别人礼品卡而不直接送大闸蟹,这中间有很多道理(成熟的人才懂),收到礼品卡的贵人,什么时 候想吃了,就什么时候按照礼品卡上的方式提货,扫码-提货-输入卡号密码-输收货地址,然后就等着收货吧! 我按照此大闸蟹海鲜店老板的要求,给他定制开发了一套<大闸蟹提货系统>,原理是这样的,在后台可以无限生成卡号和密码,可以导出这些 卡

微信公众号推送模板消息

一.到公众号平台(https://mp.weixin.qq.com)开通模板功能并申请你需要的对应模板 二.获取access_token 地址:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1} 注意:公众号和小程序均可以使用AppID和AppSecret调用本接口来获取access_token.AppID和AppSecret可在"微信公众平台-开发-基

C#微信公众号开发之模板消息开发,附源码

个人觉得模板消息功能的增加对公众号的作用非常大,可以说是真正意义上的实现了所谓的轻app,商家可以通过模板消息给用户发送重要的信息,交易.预约.消费.邮件.物流等信息.之前我做过的系统通过邮件发送订单消息,但是对于一些不喜欢绑定手机邮箱(实时提现商家发货买家订单进程等)的人来说还是不够方便,有了模板消息,公众号得以独立的完成交易信息通知跟踪等. 开发文档:http://mp.weixin.qq.com/wiki/17/304c1885ea66dbedf7dc170d84999a9d.html C

微信公众号48小时内无限制向用户推送消息

前几天遇到这样一场景: 某一订阅号用户关注后向用户对送这样一提醒,欢迎关注某某订阅号公众号,附带消息提醒功能点击下方菜单订阅消息提醒功能.这样一段话, 然后我点击了菜单后响应了一个回复消息[欢迎订阅某某公众号消息提醒功能实时为您推送活动最新消息,如不需要则输入框回复"退订" 即可] 就是这样一场景. 当时觉得挺好玩,微信官方提示是禁止向用户主动发送消息的,订阅号每天可向关注用户推送一则文章,服务号则每月可向用户推送四条消息,那怎么能随时的向用户发送消息呢 网上也有朋友搞过 好像是用什么

微信公众号推送消息给用户?

1.公众号群发不管是订阅号服务号,还是服务器,每天都有数量限制,重要活动优惠无法及时推送,存在限制 48小时信息推送与微信公众号在48小时内互动的用户都可以接收到信息,不限次数推送,及时把信息推送给用户.两天内不限制次数都可以推送给用户,解决了公众号群发的限制3.模板消息群发公众号固定模板消息群发,没有限制次数,展现形式类似卡片,不支持显示图片,模板消息内容可以指向链接.小程序 推送信息类型文本图片图文:仅支持一条图文(从2018-10-12日20时起,公众号除素材群发外,不再支持多图文)小程序

微信公众号平台接口开发:基础支持,获取access_token

新建Asp.net MVC 4.0项目 WeChatSubscript是项目UI层 WeChatTools是封装操作访问公众号接口的一些方法类库 获取AccssToken 我们要的得到AccessToken,这是所有接口访问的基础,我们看看官方给出的接口调用文档 很简单明了,grant_type=client_credential,这是固定的不会变 appid与secret就是前面一章我叫大家记起来的那个认证口令数据. 下边我们来实现这个功能,新建WeCharBase.cs 1 public c

微信公众号平台接口开发:基础支持,获取微信服务器IP地址

官方说明 目前看不出来这个接口有哪些具体运用,但是既然有这个接口,那我们就试试能不能用 访问接口 修改WeCharBase.cs,新增以下2个方法 1 public static string ServerIPs 2 { 3 get { return GetServerIPs(); } 4 } 5 6 /// <summary>获取所有服务器IP</summary> 7 /// <returns></returns> 8 private static str