100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 微信公众号发送消息接口(群发接口)

微信公众号发送消息接口(群发接口)

时间:2024-06-10 17:24:18

相关推荐

微信公众号发送消息接口(群发接口)

//因为公众号请求发送消息接口需要认证(300RMB),所以这里选择的是测试号接口,一般来说效果差不多//https://mp./debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index首先你得去这里配置测试号,配置的源码如下//封装成一个类,返回给微信,定义一个常量TOKEN值为weixin,用于交互微信

define("TOKEN", "weixin");//自己定义的token 就是个通信的私钥$wechatObj = new wechatCallbackapiTest();$wechatObj->valid();class wechatCallbackapiTest{public function valid(){$echoStr = $_GET["echostr"];if($this->checkSignature()){echo $echoStr;exit;}}public function responseMsg(){//get post data, May be due to the different environments$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//extract post dataif (!empty($postStr)){$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$fromUsername = $postObj->FromUserName;$toUsername = $postObj->ToUserName;$keyword = trim($postObj->Content);$time = time();$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>";if(!empty( $keyword )){$msgType = "text";$contentStr = "Welcome to wechat world!";$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;}else{echo "Input something...";}}else {echo "";exit;}}private function checkSignature(){$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];$token =TOKEN;$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;}}}

测试号配置好了后,就可以开始实现发送微信消息接口了;

/*** @return mixed* 获取微信Access_token*/public function get_wx_access_token(){//将access_token存在session/cookie中//如果access_token在session中并没有过期if (isset($_SESSION['access_token']) && $_SESSION['expire_time'] > time()) {return $_SESSION['access_token'];}//如果access_token不存在或者已经过期,重新获取access_tokenelse {//protected $appid="wx99e125***efaebe9"; //公众号APPID//protected $appsecret="14b01a0afd0ea****7c4a1a4882385c6"; //公众号秘钥$url = "https://api./cgi-bin/token?grant_type=client_credential&appid=" . $this->appid . "&secret=" . $this->appsecret;$arr = $this->my_curl_wx_api($url);//存到session中$access_token = $arr['access_token'];$_SESSION['access_token'] = $arr['access_token'];$_SESSION['expire_time'] = time() + 7200;return $access_token;}}//发送public function service_send(){unset($_SESSION);//获取Access_token$Access_token=$this->get_wx_access_token();//请求地址$url="https://api./cgi-bin/message/custom/send?access_token=".$Access_token;//组装接口Array$array=["touser"=>"o0roI1lyAa_8WgMNUlUOjpMlap_Y", //用户的openid"text"=>["content"=>"China is very NB!!! I love China!!!"],"msgtype"=>"text"];//将array->json()$postJson=json_encode($array,JSON_UNESCAPED_UNICODE);//调用url$send=$this->my_curl_wx_api($url,'POST',$postJson);var_dump($send);}/***请求接口*/protected function my_curl_wx_api($url, $type = 'POST', $data = array()){$ch = curl_init();curl_setopt($ch, CURLOPT_URL,$url);curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $type);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);curl_setopt($ch, CURLOPT_HEADER,0);curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);curl_setopt($ch, CURLOPT_AUTOREFERER, 1);if($data){curl_setopt($ch, CURLOPT_POSTFIELDS, $data);}if(isset($data['file']) && $data['file']){curl_setopt ( $ch, CURLOPT_SAFE_UPLOAD, false);}$result = curl_exec($ch);curl_close($ch);return json_decode($result, true);}

上面就是全部代码,喜欢给个赞鼓励鼓励~~~谢谢

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。