Table of Contents
php method to implement SDK (demo) extension based on WeChat public platform, sdkdemo
Home Backend Development PHP Tutorial PHP method to develop SDK (demo) extension based on WeChat public platform, sdkdemo_PHP tutorial

PHP method to develop SDK (demo) extension based on WeChat public platform, sdkdemo_PHP tutorial

Jul 13, 2016 am 10:11 AM
php WeChat

php method to implement SDK (demo) extension based on WeChat public platform, sdkdemo

The example in this article describes the method of using PHP to develop SDK (demo) extensions based on the WeChat public platform. Share it with everyone for your reference. The specific analysis is as follows:

This extension is based on the official WeChat public platform SDK. It is simply encapsulated here and implements some basic functions (such as weather query, translation, automatic chat robot, custom menu interface) for learning purposes only. The code is for learning purposes only. As follows:

Copy code The code is as follows:
define("TOKEN", "xingans");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->responseMsg();
class wechatCallbackapiTest
{
//Signature verification public interface
Public function valid()
{
$echoStr = $_GET["echostr"];
If($this->checkSignature()){
                 echo $echoStr;
exit;
         }
}

//Main entrance processing function
Public function responseMsg()
{
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
If (!emptyempty($postStr)){
              $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                 $msgType=trim($postObj->MsgType);
                                                                                       switch($msgType){
case 'text':
                        $resultStr=$this->handleText($postObj);
break;
case 'event':
                         $resultStr=$this->handleEvent($postObj);
break;
                                default:
                          $resultStr=$this->handleDefault($postObj);
break;
             }
                  echo $resultStr;
                                                                                }else {
                 echo "Error";
exit;
         }
}

//Processing text messages
       private function handleText($obj){
             $keyword=trim($obj->Content);
If(preg_match('/weather/',$keyword)){
$contentStr=$this->handleWeather($obj);
               }elseif(preg_match('/translation/',$keyword)){
                   $contentStr=$this->handleTranslation($obj);
            }else{
                   $contentStr=$this->handleChat($obj);
            }
               return $this->handleStr($obj,$contentStr);
        }
       
//Handling weather
       private function handleWeather($obj){
               $keyword=mb_substr($obj->Content,-2,2,'utf-8');
              $zone=mb_substr($obj->Content,0,-2,'utf-8');
If($keyword=='weather' && !emptyempty($zone)){
$zoneArr=json_decode(file_get_contents('http://api.k780.com:88/?app=weather.city&format=json'),true);
                  $zoneArr=$zoneArr['result'];
              $cityId='';
              foreach($zoneArr as $value){
                  if($zone==$value['citynm']){
                      $cityId=$value['weaid'];
                      break;
                  }
              }
             
              if(!emptyempty($cityId)){
                  $data=file_get_contents("http://api.k780.com:88/?app=weather.today&weaid=$cityId&appkey=10638&sign=3736578f099375665f9f141a6326b757&format=json");
                  $data=json_decode($data);
                  $contentStr="今天是:".$data->result->days.",".$data->result-> week.",".$data->result->citynm."天气:".$data->result->weather."n温度:".$data->result->temperature.",
                  ".$data->result->wind_direction.",".$data->result->wind_power.", 最低温度:".$data->result->temp_low.",最高温度:".$data->result->temp_high;
              }else{
                  $contentStr='找不到输入的城市!';
              }   
          }else{
              $contentStr='输入的查询格式不正确!';
          }
          return $contentStr;
      }
     
      //处理翻译
      private function handleTranslation($obj){
       $keyword=mb_substr($obj->Content,0,2,'utf-8');
       $words=mb_substr($obj->Content,2,220,'utf-8');
       if($keyword=='翻译' && !emptyempty($words)){
           $data=file_get_contents('http://fanyi.youdao.com/openapi.do?keyfrom=zfsblog&key=364295447&type=data&doctype=json&version=1.1&q='.urlencode($words));       
           $data=json_decode($data,true);
          
           switch($data['errorCode']){
               case '0':
                   $contentStr=$data['translation'][0];
                   break;
               case '20':
                   $contentStr='要翻译的文本过长';
                   break;
               case '30':
                   $contentStr='无法进行有效的翻译';
                   break;
case '40':
$contentStr='Unsupported language type';
break;
case '50':
                              $contentStr='Invalid key';
break;
                           default:
$contentStr='Error';
break;
              }
        }else{
​​​​​​ $contentStr='The input translation format is incorrect!';
         }
        return $contentStr;
        }
       
//Process chat information
       private function handleChat($obj){
         $keywords=$obj->Content;
         $curlPost=array("chat"=>$keywords);
​​​​ $ch = curl_init();//Initialize curl
curl_setopt($ch, CURLOPT_URL,'http://www.xiaojo.com/bot/chata.php');//Catch the specified web page
​​​ curl_setopt($ch, CURLOPT_HEADER, 0);//Set header
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//requires the result to be a string and output to the screen
curl_setopt($ch, CURLOPT_POST, 1);//post submission method
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
​​​​ $data = curl_exec($ch);//Run curl
        curl_close($ch);
                         
If(!emptyempty($data)){
               $contentStr=$data;
        }else{
              $ran=rand(1,5);
                                                                                       switch($ran){
case 1:
                                     $contentStr= "Xiaojiu is tired today, I will chat with you tomorrow";
break;
case 2:
                       $contentStr= "Xiaojiu is sleeping~~";
break;
case 3:
$ Contentstr = "Huhuo ~~ Huhu ~~";
break;
case 4:
                            $contentStr= "You talk a lot, I won’t talk to you anymore";
break;
case 5:
​​​​​​​​                   break;
           }
       }
       return $contentStr;
      }
     
      //创建自定义菜单
      public function createMenu($data,$token){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$token);
        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);
        $result = curl_exec($ch);     
        curl_close($ch);
        return $result;
      }
     
      //查询自定义菜单
   function getMenu($token){
       $url="https://api.weixin.qq.com/cgi-bin/menu/get?access_token=$token";
       $ch = curl_init($url);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER,true) ; //获取数据返回
       curl_setopt($ch, CURLOPT_BINARYTRANSFER,true) ; //在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回   
       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
       curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
       return $output = curl_exec($ch);       
      }
     
      //删除自定义菜单
      public function deleteMenu($token){
       $url="https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=".$token;
       $ch = curl_init();
       curl_setopt($ch, CURLOPT_URL, $url);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
       curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
       $result = curl_exec($ch);
       curl_close($ch);
       return $result;
      }

//Process event messages
       private function handleEvent($obj){
            $content='';
              switch($obj->Event){
case 'subscribe':
​​​​​​​​​ break;
case 'unsubscribe':
                          $content.="Thank you for your continued attention to this official account, goodbye!";
break;
                              default:
                        $content.="";
break;
            }
              return $this->handleStr($obj,$content);
        }
       
//Processing reply message string
       private function handleStr($obj,$content='',$flag=0){
​​​​ $textTpl = "";
          return sprintf($textTpl, $obj->FromUserName, $obj->ToUserName, time(), $content,$flag);
        }

//Signature verification function
private function checkSignature()
{
$signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
                $nonce = $_GET["nonce"];                                                 $token = TOKEN;
         $tmpArr = array($token, $timestamp, $nonce);
       sort($tmpArr, SORT_STRING);
         $tmpStr = implode( $tmpArr );
         $tmpStr = sha1( $tmpStr );
If( $tmpStr == $signature ){
            return true;
        }else{
             return false;
         }
}
}

I hope this article will be helpful to everyone’s PHP programming design.

http://www.bkjia.com/PHPjc/931541.html

truehttp: //www.bkjia.com/PHPjc/931541.htmlTechArticlephp method to implement SDK (demo) extension based on WeChat public platform, sdkdemo This article describes the example of php implementation based on WeChat Methods for developing SDK (demo) extensions on public platforms. Share it with everyone...
Statement of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP and Python: Comparing Two Popular Programming Languages PHP and Python: Comparing Two Popular Programming Languages Apr 14, 2025 am 12:13 AM

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

PHP: A Key Language for Web Development PHP: A Key Language for Web Development Apr 13, 2025 am 12:08 AM

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

What is Cross-Site Request Forgery (CSRF) and how do you implement CSRF protection in PHP? What is Cross-Site Request Forgery (CSRF) and how do you implement CSRF protection in PHP? Apr 07, 2025 am 12:02 AM

In PHP, you can effectively prevent CSRF attacks by using unpredictable tokens. Specific methods include: 1. Generate and embed CSRF tokens in the form; 2. Verify the validity of the token when processing the request.

PHP's Purpose: Building Dynamic Websites PHP's Purpose: Building Dynamic Websites Apr 15, 2025 am 12:18 AM

PHP is used to build dynamic websites, and its core functions include: 1. Generate dynamic content and generate web pages in real time by connecting with the database; 2. Process user interaction and form submissions, verify inputs and respond to operations; 3. Manage sessions and user authentication to provide a personalized experience; 4. Optimize performance and follow best practices to improve website efficiency and security.

PHP in Action: Real-World Examples and Applications PHP in Action: Real-World Examples and Applications Apr 14, 2025 am 12:19 AM

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

The Future of PHP: Adaptations and Innovations The Future of PHP: Adaptations and Innovations Apr 11, 2025 am 12:01 AM

The future of PHP will be achieved by adapting to new technology trends and introducing innovative features: 1) Adapting to cloud computing, containerization and microservice architectures, supporting Docker and Kubernetes; 2) introducing JIT compilers and enumeration types to improve performance and data processing efficiency; 3) Continuously optimize performance and promote best practices.

PHP vs. Python: Understanding the Differences PHP vs. Python: Understanding the Differences Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHP is suitable for web development, with simple syntax and high execution efficiency. 2. Python is suitable for data science and machine learning, with concise syntax and rich libraries.

PHP's Current Status: A Look at Web Development Trends PHP's Current Status: A Look at Web Development Trends Apr 13, 2025 am 12:20 AM

PHP remains important in modern web development, especially in content management and e-commerce platforms. 1) PHP has a rich ecosystem and strong framework support, such as Laravel and Symfony. 2) Performance optimization can be achieved through OPcache and Nginx. 3) PHP8.0 introduces JIT compiler to improve performance. 4) Cloud-native applications are deployed through Docker and Kubernetes to improve flexibility and scalability.

See all articles