1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 微信公众号开发之微信公共平台消息回复类实例【PHP】

微信公众号开发之微信公共平台消息回复类实例【PHP】

时间:2023-04-23 12:22:39

相关推荐

微信公众号开发之微信公共平台消息回复类实例【PHP】

后端开发|php教程

微信,公共平台,消息,回复类

后端开发-php教程

本文实例讲述了微信公众号开发之微信公共平台消息回复类。分享给大家供大家参考。具体如下:

app推广网站 源码,ubuntu磁盘最小对齐,tomcat启动直接闪退,fme做爬虫,分割数组php,seo排名优化矩阵账号如何运作lzw

微信公众号开发代码我在网上看到了有不少,其实都是大同小义了都是参考官方给出的demo文件进行修改的,这里就给各位分享一个。

有赞微小店源码,vscode快捷键下一行,ubuntu打开hcc,tomcat的部署和优化,高级爬虫app,php怎么做后台,seo顾问培训关键词推广lzw

<?php

/**

* 微信公共平台消息回复类

*

*

*/

class BBCweixin{

图片上传 标题 源码,ubuntu的网络链接,tomcat404什么意思,爬虫搜索资源,下列选项不属于php,seo自动诊断lzw

private $APPID="******";

private $APPSECRET="******";

/*

*文本消息回复

*@param array object

*@param string content

*@return string

*/

public function resText($object,$content,$flag=0){

$xmlText="

<![CDATA[%s]]>

<![CDATA[%s]]>

%s

<![CDATA[text]]>

<![CDATA[%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.="<![CDATA[%s]]>";

$xmlImage.="<![CDATA[%s]]>";

$xmlImage.="%s";

$xmlImage.="<![CDATA[image]]>";

$xmlImage.="<![CDATA[%s]]>";

$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="

FromUserName}]]>

ToUserName}]]>

{$CreateTime}

<![CDATA[news]]>

<![CDATA[%s]]>

%s";

$newTplItem="

<![CDATA[%s]]>

<![CDATA[%s]]>

<![CDATA[%s]]>

<![CDATA[%s]]>

";

$newTplFoot="

%s

";

$Content=\;

$itemsCount=count($newsData);

$itemsCount=$itemsCount<10?$itemsCount:10;//微信公众平台图文回复的消息一次最多10条

if($itemsCount){

foreach($newsData as $key=>$item){

if($key<=9){

$Content.=sprintf($newTplItem,$item[Title],$item[Description],$item[PicUrl],$item[Url]);

}

}

}

$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="

<![CDATA[%s]]>

<![CDATA[%s]]>

%s

<![CDATA[music]]>

<![CDATA[%s]]>

<![CDATA[%s]]>

<![CDATA[%s]]>

<![CDATA[%s]]>

";

if(empty($musicContent[0][HQMusicUrl])){

$musicContent[0][HQMusicUrl]=$musicContent[0][MusicUrl];

}

$resultStr=sprintf($xmlMusic,$object->FromUserName,$object->ToUserName,time(),$musicContent[0][Title],$musicContent[0][Description],$musicContent[0][MusicUrl],$musicContent[0][HQMusicUrl]);

echo $resultStr;exit();

}

/*

*上传多媒体文件接口

*@param

*@param array mediaArr filename、filelength、content-type

*@return object

*/

public function uploadMedia($accessToken,$type=image,$mediaArr){

$url="http://file.api./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==gps){

$url="/gpsApi.php?lat=".$lat."&lng=".$lng;

$res=json_decode(file_get_contents($url));

$map[lng]=$res->baidu->lng;

$map[lat]=$res->baidu->lat;

}

if($type==google){

$url="http://api./ag/coord/convert?from=2&to=4&mode=1&x=".$lng."&y=".$lat;

$res=json_decode(file_get_contents($url));

$map[lng]=base64_decode($res[0]->x);

$map[lat]=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(possible deep recursion attack);

}

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, urlencode, true);

$json = json_encode($array);

return urldecode($json);

}

/*

*创建菜单

*

*/

public function creatMenu($shop_id,$data){

$jsonArray=self::JSON($data);

$AccessToken=self::accessToken($weiXin[0][key],$weiXin[0][secret]);

$MENU_URL="https://api./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=\".$hash."\";

$weChast=$db->query($sql);

$AccessToken=self::accessToken($weChast[0][key],$weChast[0][secret]);

$TokenUrl="https://api./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(accesstoken.$appid);

if($access_token){

$AccessTokenRet=$access_token;

}else{

$TookenUrl="https://api./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(accesstoken.$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, Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0));

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 Errno.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;

}

}

?>

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