初次接触的时候写的一些,有点乱…也没去整理…
ps—最近都不想工作了,各种烦,午饭也没吃,就是想表达一下我过的不好。—请忽略个人情绪往下看。
%s %d "; $resultStr = sprintf($xmlText, $object->FromUserName, $object->ToUserName, time() , $content, $flag); echo $resultStr; exit(); } /* *图片消息回复 *@param array object *@param string url *@return string */ public function resImage($object, $media_id) { $xmlImage = ""; $xmlImage.= " "; $resultStr = sprintf($xmlImage, $object->FromUserName, $object->ToUserName, time() , $media_id); echo $resultStr; exit(); } /* *图文消息回复 *@param array object *@param array newsData 二维数组 必须包含[Title][Description][PicUrl][Url]字段 *@return string */ public function resNews($object, $newsData = array()) { $CreateTime = time(); $FuncFlag = 0; $newTplHeader = ""; $xmlImage.= " "; $xmlImage.= " %s "; $xmlImage.= ""; $xmlImage.= " "; $xmlImage.= " "; $COntent= &#39;&#39;; $itemsCount = count($newsData); $itemsCount = $itemsCount <10 ? $itemsCount : 10; //微信公众平台图文回复的消息一次最多10条 if ($itemsCount) { foreach ($newsData as $key => $item) { if ($key <= 9) { $Content.= sprintf($newTplItem, $item[&#39;Title&#39;], $item[&#39;Description&#39;], $item[&#39;PicUrl&#39;], $item[&#39;Url&#39;]); } } } $header = sprintf($newTplHeader, 0, $itemsCount); $footer = sprintf($newTplFoot, $FuncFlag); echo $header . $Content . $footer; exit(); } /* *音乐消息回复 *@param array object *@param array musicContent 二维数组 包含[Title][Description][MusicUrl][HQMusicUrl]字段 *@return string */ public function resMusic($object, $musicCOntent= array()) { $xmlMusic = " FromUserName}]]> ToUserName}]]> {$CreateTime} %s "; $newTplItem = " - "; $newTplFoot = "
%s "; if (empty($musicContent[0][&#39;HQMusicUrl&#39;])) { $musicContent[0][&#39;HQMusicUrl&#39;] = $musicContent[0][&#39;MusicUrl&#39;]; } $resultStr = sprintf($xmlMusic, $object->FromUserName, $object->ToUserName, time() , $musicContent[0][&#39;Title&#39;], $musicContent[0][&#39;Description&#39;], $musicContent[0][&#39;MusicUrl&#39;], $musicContent[0][&#39;HQMusicUrl&#39;]); echo $resultStr; exit(); } /* *上传多媒体文件接口 *@param *@param array mediaArr filename、filelength、content-type *@return object */ public function uploadMedia($accessToken, $type = &#39;image&#39;, $mediaArr) { $url = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=" . $accessToken . "&type=" . $type; $doPost = self::curlPost($mediaArr, $url); return $doPost; } /* *GPS,谷歌坐标转换成百度坐标 *@param lnt *@param lat *@return array */ public function mapApi($lng, $lat, $type) { $map = array(); if ($type == &#39;gps&#39;) { $url = "http://map.yanue.net/gpsApi.php?lat=" . $lat . "&lng=" . $lng; $res = json_decode(file_get_contents($url)); $map[&#39;lng&#39;] = $res->baidu->lng; $map[&#39;lat&#39;] = $res->baidu->lat; } if ($type == &#39;google&#39;) { $url = "http://api.map.baidu.com/ag/coord/convert?from=2&to=4&mode=1&x=" . $lng . "&y=" . $lat; $res = json_decode(file_get_contents($url)); $map[&#39;lng&#39;] = base64_decode($res[0]->x); $map[&#39;lat&#39;] = base64_decode($res[0]->y); } return $map; } /************************************************************** * * 使用特定function对数组中所有元素做处理 * @param string &$array 要处理的字符串 * @param string $function 要执行的函数 * @return boolean $apply_to_keys_also 是否也应用到key上 * @access public * *************************************************************/ public function arrayRecursive(&$array, $function, $apply_to_keys_also = false) { static $recursive_counter = 0; if (++$recursive_counter > 1000) { die(&#39;possible deep recursion attack&#39;); } foreach ($array as $key => $value) { if (is_array($value)) { self::arrayRecursive($array[$key], $function, $apply_to_keys_also); } else { $array[$key] = $function($value); } if ($apply_to_keys_also && is_string($key)) { $new_key = $function($key); if ($new_key != $key) { $array[$new_key] = $array[$key]; unset($array[$key]); } } } $recursive_counter--; } /************************************************************** * * 将数组转换为JSON字符串(兼容中文) * @param array $array 要转换的数组 * @return string 转换得到的json字符串 * @access public * *************************************************************/ public function JSON($array) { self::arrayRecursive($array, &#39;urlencode&#39;, true); $json = json_encode($array); return urldecode($json); } /* *创建菜单 * */ public function creatMenu($shop_id, $data) { $jsOnArray= self::JSON($data); $AccessToken = self::accessToken($weiXin[0][&#39;key&#39;], $weiXin[0][&#39;secret&#39;]); $MENU_URL = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" . $AccessToken; return self::curlPost($jsonArray, $MENU_URL); } /* *客服消息回复 *@param array jsonArray Array {"touser":"OPENID","msgtype":"text","text":{"content":"Hello World"}} *@return string */ public function customService($jsonArray, $hash) { if (empty($jsonArray)) { return false; } $db = M(); $sql = "select * from bbc_wechats where hash=&#39;" . $hash . "&#39;"; $weChast = $db->query($sql); $AccessToken = self::accessToken($weChast[0][&#39;key&#39;], $weChast[0][&#39;secret&#39;]); $TokenUrl = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" . $AccessToken; $CustomRes = self::curlPost($jsonArray, $TokenUrl); return $CustomRes; } /* *获取access_token *@return objectStr */ public function accessToken($appid, $secret) { $access_token = BBCcache::getCache(&#39;accesstoken&#39; . $appid); if ($access_token) { $AccessTokenRet = $access_token; } else { $TookenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$secret}"; $AccessTokenRes = @file_get_contents($TookenUrl); $AccessToken = json_decode($AccessTokenRes); $AccessTokenRet = $AccessToken->access_token; BBCcache::setCache(&#39;accesstoken&#39; . $appid, $AccessToken->access_token, 3600); } return $AccessTokenRet; } /* *向远程接口POST数据 *@data Array {"touser":"OPENID","msgtype":"text","text":{"content":"Hello World"}} *@return objectArray */ public function curlPost($data, $url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_USERAGENT, &#39;Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)&#39;); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $info = curl_exec($ch); if (curl_errno($ch)) { echo &#39;Errno&#39; . curl_error($ch); } curl_close($ch); return json_decode($info); } //根据经纬度计算距离和方向 function getRadian($d) { return $d * M_PI / 180; } function getDistance($lat1, $lng1, $lat2, $lng2) { $EARTH_RADIUS = 6378.137; //地球半径 $lat1 = getRadian($lat1); $lat2 = getRadian($lat2); $a = $lat1 - $lat2; $b = getRadian($lng1) - getRadian($lng2); $v = 2 * asin(sqrt(pow(sin($a / 2) , 2) + cos($lat1) * cos($lat2) * pow(sin($b / 2) , 2))); $v = round($EARTH_RADIUS * $v * 10000) / 10000; return $v; } } ?> %s
教程网址:
欢迎收藏∩_∩但请保留本文链接。