栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

PHP微信API接口类

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP微信API接口类

本文实例为大家分享了PHP微信接口类,供大家参考,具体内容如下

valid();
//开启自动回复功能
$wechatObj->responseMsg();
 
 
//定义类文件
class wechatCallbackapiTest
{
  //实现valid验证方法:实现对接微信公众平台
  public function valid()
  {
    //接受随机字符串
    $echoStr = $_GET["echostr"];
 
    //valid signature , option
    //进行用户数字签名验证
    if($this->checkSignature()){
      //如果成功,则返回接受到的随机字符串
      echo $echoStr;
      //退出
      exit;
    }
  }
  //定义自动回复功能
  public function responseMsg()
  {
    //get post data, May be due to the different environments
    //接受用户端发送过来的xml数据
    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
 
    //extract post data
    //判断xml数据是否为空
    if (!empty($postStr)){
 
 libxml_disable_entity_loader(true);
 //通过simplexml进行xml解析
 $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
 //接受微信的手机端
 $fromUsername = $postObj->FromUserName;
 //微信公众平台
 $toUsername = $postObj->ToUserName;
 //接受用户发送的关键词
 $keyword = trim($postObj->Content);
 //1.接受用户消息类型
 $msgType = $postObj -> MsgType;
 //时间戳
 $time = time();
 //文本发送模板
 $textTpl = "


%s


0
"; 
 //////////////////////////////////////////////////////////////////////////////////
 //如果用户发送的是文本类型文件,执行以下
 if($msgType == 'text'){
   if(!empty( $keyword ))
   {
     
     if($keyword == "?" || $keyword == "?"){
$msgType = "text";
$contentStr = "1.特种服务号码n2.通讯服务号码";
$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
echo $resultStr;
     }elseif($keyword == 1){
$msgType = "text";
$contentStr = "1.匪警:110n2.火警:119n3.急救:120";
$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
echo $resultStr;
     }elseif($keyword == 2){
$msgType = "text";
$contentStr = "1.中国移动:10086n2.中国联通:10010";
$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
echo $resultStr;
     }
   }else{
     echo "不能不说话";
   }
 }
 ////////////////////////////////////////////////////////////////////////////////////
 //接受图片信息
 if($msgType == "image"){
     //如果发送文本信息
     $msgType = "text";
     //回复内容
     $contentStr = "你发送的是图片文件";
     //格式化字符串
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
     //将xml信息返回给客户端
     echo $resultStr;
 }
 ////////////////////////////////////////////////////////////////////////////////////
 if($msgType == "voice"){
     //如果发送文本信息
     $msgType = "text";
     //回复内容
     $contentStr = "你发送的是语音文件";
     //格式化字符串
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
     //将xml信息返回给客户端
     echo $resultStr;
 }
 ////////////////////////////////////////////////////////////////////////////////////
 if($msgType == "video"){
     //如果发送文本信息
     $msgType = "text";
     //回复内容
     $contentStr = "你发送的是视频文件";
     //格式化字符串
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
     //将xml信息返回给客户端
     echo $resultStr;
 }
 ////////////////////////////////////////////////////////////////////////////////////
 if($msgType == "shortvideo"){
     //如果发送文本信息
     $msgType = "text";
     //回复内容
     $contentStr = "你发送的是小视频文件";
     //格式化字符串
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
     //将xml信息返回给客户端
     echo $resultStr;
 }
 ////////////////////////////////////////////////////////////////////////////////////
 if($msgType == "location"){
     //如果发送文本信息
     $msgType = "text";
     //回复内容
     $contentStr = "你发送的是地理位置文件";
     //格式化字符串
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
     //将xml信息返回给客户端
     echo $resultStr;
 }
 ////////////////////////////////////////////////////////////////////////////////////
 if($msgType == "link"){
     //如果发送文本信息
     $msgType = "text";
     //回复内容
     $contentStr = "你发送的是连接文件";
     //格式化字符串
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
     //将xml信息返回给客户端
     echo $resultStr;
 }
 ////////////////////////////////////////////////////////////////////////////////////
 
    }else {
      echo "";
      exit;
    }
  }
     
  private function checkSignature()
  {
    // you must define TOKEN by yourself
    //判断是否定义了TOKEN,如果没有就抛出一个异常
    if (!defined("TOKEN")) {
      throw new Exception('TOKEN is not defined!');
    }
     
    $signature = $_GET["signature"];//接受微信加密签名
    $timestamp = $_GET["timestamp"];//接受时间戳
    $nonce = $_GET["nonce"];//接受随机数
  
    $token = TOKEN;//把TOKEN常量赋值给$token
    //把相关参数组装成数组
    $tmpArr = array($token, $timestamp, $nonce);
    // use SORT_STRING rule
    //排序
    sort($tmpArr, SORT_STRING);
    //把排序后的数组转换成字符串
    $tmpStr = implode( $tmpArr );
    //通过哈希算法加密
    $tmpStr = sha1( $tmpStr );
    //与加密签名进行对比
    if( $tmpStr == $signature ){
      //相同返回true
      return true;
    }else{
      //不同返回false
      return false;
    }
  }
}
 
?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/42708.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号