Home >Backend Development >PHP Tutorial >微信公众平台开发,外部调用接口传参,然后把参数以图文形式回复

微信公众平台开发,外部调用接口传参,然后把参数以图文形式回复

WBOY
WBOYOriginal
2016-06-06 20:15:271282browse

微信公众平台开发,外部调用接口以URL形式传参,然后写用户关注后以图文形式回复,图片的url就是传过来的参数
。但是我微信关注后没有获得参数。


<code>http://xxx.duapp.com/wechat/api.php?id=http://203.111.111.111:1212/img/635932895447623934.png  

代码如下:


<?php /**</code></code>
    • wechat php test
      */
      //define your token

    $imgurl = $_GET['id'];

    define("TOKEN", "weixin");
    $wechatObj = new wechatCallbackapiTest();
    $wechatObj->responseMsg();

    1. wechatCallbackapiTest
      {

      <code>   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
             $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
      
               //extract post data
             if (!empty($postStr)){
                     
                       $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                     $fromUsername = $postObj->FromUserName;
                     $toUsername = $postObj->ToUserName;
                     $keyword = trim($postObj->Content);
                     $time = time();
                     $imgurl  = $_GET['id'];  
                     $textTpl = "<xml>
                                 <tousername></tousername>
                                 <fromusername></fromusername>
                                 <createtime>%s</createtime>
                                 <msgtype></msgtype>
                                 <content></content>
                                 <funcflag>0</funcflag>
                                 </xml>";             
                     $ev = $postObj->Event;
                     if ($ev == "subscribe")
                     {
      
                         $PicUrl = $imgurl;
      
                         $Url    = $imgurl;
      
                         $textTpl = "<xml>
                                     <tousername></tousername>
                                     <fromusername></fromusername>
                                     <createtime>%s</createtime>
                                     <msgtype></msgtype>
                                     <articlecount>1</articlecount>
                                     <articles>
                                     <item>
                                     <title></title> 
                                     <description></description>
                                     <picurl></picurl>
                                     <url></url>
                                     </item>
                                     <item>
                                     </item></articles>
                                     </xml> ";     
      </code>
      <code>               $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time);
                        echo $resultStr;
                     
                     }
                     
                     
                     
                     if(!empty( $keyword ))
                     {   
      
                           $msgType = "text";
                         switch ($keyword)
                         {
                         case "1";
                         $contentStr = "公司简介!";
                         break;
                         case "2";
                         $contentStr = "最新优惠!";
                         break;
                         case "3";
                         $contentStr = "图片链接如下:".$_GET['id'];
                         break;
                         default;
                         $contentStr = "欢迎光临!";
                                     
                         
                         }
                         
                         $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;
             }
         }</code>

      }

      ?>

    回复内容:

    微信公众平台开发,外部调用接口以URL形式传参,然后写用户关注后以图文形式回复,图片的url就是传过来的参数
    。但是我微信关注后没有获得参数。


    <code>http://xxx.duapp.com/wechat/api.php?id=http://203.111.111.111:1212/img/635932895447623934.png  
    
    代码如下:
    
    
    <?php /**</code></code>
    • wechat php test
      */
      //define your token

    $imgurl = $_GET['id'];

    define("TOKEN", "weixin");
    $wechatObj = new wechatCallbackapiTest();
    $wechatObj->responseMsg();

    1. wechatCallbackapiTest
      {

      <code>   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
             $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
      
               //extract post data
             if (!empty($postStr)){
                     
                       $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                     $fromUsername = $postObj->FromUserName;
                     $toUsername = $postObj->ToUserName;
                     $keyword = trim($postObj->Content);
                     $time = time();
                     $imgurl  = $_GET['id'];  
                     $textTpl = "<xml>
                                 <tousername></tousername>
                                 <fromusername></fromusername>
                                 <createtime>%s</createtime>
                                 <msgtype></msgtype>
                                 <content></content>
                                 <funcflag>0</funcflag>
                                 </xml>";             
                     $ev = $postObj->Event;
                     if ($ev == "subscribe")
                     {
      
                         $PicUrl = $imgurl;
      
                         $Url    = $imgurl;
      
                         $textTpl = "<xml>
                                     <tousername></tousername>
                                     <fromusername></fromusername>
                                     <createtime>%s</createtime>
                                     <msgtype></msgtype>
                                     <articlecount>1</articlecount>
                                     <articles>
                                     <item>
                                     <title></title> 
                                     <description></description>
                                     <picurl></picurl>
                                     <url></url>
                                     </item>
                                     <item>
                                     </item></articles>
                                     </xml> ";     
      </code>
      <code>               $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time);
                        echo $resultStr;
                     
                     }
                     
                     
                     
                     if(!empty( $keyword ))
                     {   
      
                           $msgType = "text";
                         switch ($keyword)
                         {
                         case "1";
                         $contentStr = "公司简介!";
                         break;
                         case "2";
                         $contentStr = "最新优惠!";
                         break;
                         case "3";
                         $contentStr = "图片链接如下:".$_GET['id'];
                         break;
                         default;
                         $contentStr = "欢迎光临!";
                                     
                         
                         }
                         
                         $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;
             }
         }</code>

      }

      ?>

    Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn