微信消息模板——巨坑
微信平台分主动消息和被动消息,主动消息是生产服务器主动推送消息给微信平台,被动消息是用户行为导致微信平台推送消息给生产服务器。
- 主动消息需要:
- 1,将生产服务器ip加入ip白名单
- 2,然后根据appid和secret获取token
- 3,每次主动推送将token&在url上
- 被动消息:
- 1,填写生产服务器url路径在公众号配置上
- 2,获取token绑定
一、消息模板
1,获取微信消息模板api接口链接(巨坑,微信公众号文档上消息模板api链接有问题,正确应该在微信公众号,消息模板设置上,接口文档找)
2,获取消息模板id
3,获取需要发送消息的用户openid(关注该公众号)
4,构造消息模板数据
5,成功标志:
- (1)收到返回json数据,error=0,
- (2)微信平台主动推送xml到服务器
二、注意事项
1,微信模板api是公众号,消息模板插件,消息模板接口文档中
2,消息模板语法:
- (1),数据格式构造,json格式
- (2),post方式发送
3,用户的openid,一定,一定,一定是公众号appid旗下的,也就是说,一定是要关注了该公众号的用户。
4,巨坑,巨坑,消息模板的openid不是微信唯一openid,是每个公众号对应用户的tofakeid
微信公众平台的所谓“openid”分为两种:
- [第一种openid]为利用交互的xml中获取:
<![CDATA[fromUser]]>
每个用户针对每个微信公众平台唯一,即同一个用户对不同微信公众平台[第一种openid]是不同的;
个人倾向称之为fakeid,获取不需要授权页面。 - [第二种openid]为利用微信提供的OAuth2.0接口(高级接口需要为认证的服务号)
每个用户唯一,也就是说同一个用户对不同微信公众平台的[第二种openid]都是一样的;
个人倾向称之为真正的openid,获取需要授权页面。
第一种公众平台开发者文档没有明说,但只要看过文档不难推断;
第二种所用接口详见:公众平台开发者文档-网页授权获取用户基本信息。
- [第一种openid]为利用交互的xml中获取:
ps:详细脚本代码:
/*** @param $open_id 用户openid* @param $template_id 消息模板id* @param $miniprogram 消息模板跳转的appid,pagepath页面链接,可根据自我需求删改* @param $appid 公众号appid* @param $num 申请编号,可根据自我需求删改* 发送消息模板* @return array*/public function SendMsg($open_id,$template_id,$miniprogram,$num){try {$token = $this->get_token();} catch (\Exception $e) {$e->getMessage();}//发送模板消息url$send_url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={$token}";$date=date("Y-m-d H:i:s",time());$data=["touser"=>$open_id,"template_id"=>$template_id,'miniprogram'=>$miniprogram,"data"=>["first"=>["value"=>"吸易商城提醒您,您的消杀片已到期,请及时更换",],"keyword1"=>["value"=>"商品更换提醒",],"keyword2"=>["value"=>$num,],"keyword3"=>["value"=>$date,],"keyword4"=>["value"=>'待处理',],"remark"=>["value"=>"详情信息,请戳详情了解",],],];//$postData = http_build_query($postData); //做一层过滤$json_data=json_encode($data);$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $send_url);curl_setopt($ch, CURLOPT_HEADER, 0); //设置headercurl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );curl_setopt($ch, CURLOPT_POST, 1 );curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data );$request=curl_exec ($ch);curl_close($ch);$request=json_decode($request,true);if ($request['errcode']==0){return ['code'=>ApiCode::CODE_SUCCESS,'msg'=>"消息模板发送成功",];}return ['code'=>ApiCode::CODE_ERROR,'msg'=>$request,];}
微信消息模板——巨坑相关推荐
- java 微信 推送_JAVA 微信消息模板推送
公众号配置模板示例 推送接口 /** * * @title: sendTemplate * @author: daixiaowei * @date: 2019年11月09日 下午 12:59:27 * ...
- 微信消息模板申请攻略
2019独角兽企业重金招聘Python工程师标准>>> 近两天,微信动态频频,先是微信5.4版本的发布预热到正式发布,围绕搜索和支付功能的推出,再一次让微信变"重" ...
- 微信jssdk开发巨坑,errmsg config invalid signature
如果你检查了千百遍,并且通过了https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign的检测,那么你可以看看你是不是这个问题: 例如:你的域 ...
- 微信消息模板发送通知
https://www.cnblogs.com/zhaijihai/p/10185378.html 转载于:https://www.cnblogs.com/zhangqing979797/p/1161 ...
- 微信公众号消息模板开发
为什么80%的码农都做不了架构师?>>> ##背景 新需求,需要在订单的时候给用户,商家,配送员发送想对于的微信消息模板,之前没有做过微信公众号相关的开发,这次就一并熟悉吧 # ...
- java 微信api框架_Java架构学习(五十二)使用框架开发微信微信框架介绍整合微信开发框架WxJava使用微信返回消息模板接口使用WxJava框架发送模板消息http协议参数转义知识...
一.微信框架介绍 1.access_token是公众号的全局唯一调用接口的凭证,它两个小时更新一次. 获取access_token方法: https请求方式: GET https://api.weix ...
- 微信公众号(测试号)消息模板推送
微信公众号(测试号)消息模板推送 源码地址 https://github.com/panjianlong13/Weixin-PushMessage 微信测试号配置 登录到微信公众平台接口测试账号申请U ...
- 微信公众号消息模板发送
微信公众号消息模板发送 微信公众号消息模板群发功能 开通申请模板消息功能 获取模板消息发送所需参数 AccessToken pojo类 TemplateData pojo类 WxTagsEntity ...
- java集成微信发送模板消息
登录微信公众平台 地址 : https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index ...
- 微信小程序服务商模式支付巨坑解决!
今日有个在同一个小程序支付 款项需要付到不同的银行卡里去??? 于是找了下微信小程序支付文档,只有个requestPayment方法 emmm 去看看小程序后台吧 ok 有个微信支付 但是只能绑定一 ...
最新文章
- gpasswd 命令详解
- 牛客题霸 NC27 集合的所有子集
- pthread_cond_wait
- 【Python爬虫】存储格式化数据
- Linux运维人员成长之路学习书籍推荐(未删减版)
- 《笨方法学python》_《笨办法学Python》 第46课手记
- 返回一个不确定的对象_我有一个Android必备知识点,你确定不了解一下?
- LeetCode数据库 178. 分数排名
- 45.Linux/Unix 系统编程手册(下) -- System V IPC 介绍
- 安装biztalk2006后导致QuickStartV20不正常
- Spring Boot 接入支付宝,实战来了!
- 渐变色【R Color】
- 一个猫下面的计算机互相访问,光猫连接路由器和电脑如何互相访问
- 中英文免安装版IE6、IE7、IE8浏览器下载
- Node.js(MEAN)全栈开发入门-安晓辉-专题视频课程
- Frontiers in neuroscience: 网络游戏成瘾者额叶theta频段震荡活动的降低
- 坚持是学习的最好方法
- D2 日报 2019年1月3日
- webpy中使用session
- 系统日志管理及日志管理服务