- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第
PHP实现给用户发微信消息提醒功能
目录正文1.获取access_token2.判断是否关注3.发送客服消息4.微信接口返回的是一个数组5.实现效果
正文
以前有一个项目项目,当有用户有资金到账或者成员变动时需要给他发一条微信消息提示。针对这个,开始想使用模板消息,但是刚注册的公众号申请消息模板需要几天时间申请,在时间不足下选择了使用客服消息接口。
这里跳过网页授权和用户信息获取,请求接口的步骤,主要看获取access_token,发布客服消息,验证是否关注等等接口。
1.获取access_token
//获取access_token
publicfunctiongetAccessToken($weid){
$appID=wxfaddfdfdfd6cf6fc3569;//服务号appID
$appSecret=071bebfdfdofdfd23687bf53d63a;//服务号appSerect
$url=/cgi-bin/tokengrant_type=client_credentialamp;appid=$appIDamp;secret=$appSecret;
$content=ihttp_get($url);//自定义请求函数
if(is_error($content)){
returnerror(-1,获取微信公众号授权失败,请稍后重试!错误详情:.$content[message]);
if(empty($content[content])){
returnerror(-1,AccessToken获取失败,请检查appid和appsecret的值是否与微信公众平台一致!);
$token=@json_decode($content[content],true);
if($token[errcode]==40164){
returnerror(-1,$this-errorCode($token[errcode],$token[errmsg]));
if(empty($token)||!is_array($token)||empty($token[access_token])||empty($token[expires_in])){
$errorinfo=substr($content[meta],strpos($content[meta],{));
$errorinfo=@json_decode($errorinfo,true);
returnerror(-1,获取微信公众号授权失败,请稍后重试!公众平台返回原始数据为:错误代码-.$errorinfo[errcode].,错误信息-.$errorinfo[errmsg]);
$record=array();
$record[token]=$token[access_token];
$record[expire]=TIMESTAMP+$token[expires_in]-200;
$cachekey=cache_system_key(accesstoken,array(acid=$weid));
cache_write($cachekey,$record);
return$record[token];
}
2.判断是否关注
//判断当前用户是否关注公众号
publicpublicfunctionisSubscribe($weid,$userid){
//获取当前用户信息
$userinfo=pdo_get(hcface_users,array(uid=$userid));
//return$userinfo;
if(empty($userinfo)){
returnfalse;
//获取access_token
$accessToken=$this-getAccessToken($weid);
//是否关注接口
$url=/cgi-bin/user/infoaccess_token=.$accessToken.openid=.$userinfo[openid].lang=zh_CN;
$res=ihttp_request($url);
if(is_error($res)){
ret
文档评论(0)