zoukankan      html  css  js  c++  java
  • 微信开发学习记录 01

      最近几天做了一下微信开发,总结了一些经验和教训。

      首先是微信token链接,最开始连接的时候总是出现token连接失败,总以为是设置的不对,结果第二天就好了。而且发现,如果上传的代码(我用的是新浪云)有错误的话,可能会连不上(不知道对不对,我只是根据连接的经历总结的)

      其次呢,就说一下编程时遇到的一些困难。最开始一两天的时候,总是觉得在网站上没有办法调试,根本不知道哪里会出错。后来发现其实是可以调试的,只是没有办法像编译器一样进行断点调试。但是一些语法问题还是可以发现的。

    点击画篮圈的链接,可以大致的发现一些语法问题或者一些调用函数的错误,同时一些错误它会给出错误代码。通过查询http://mp.weixin.qq.com/wiki/17/fa4e1434e57290788bde25603fa2fcbd.html可以大致知道问题的原因,当然了,因为没有断点,所以一些问题不会精确到哪一行或者那一部分,只能通过自己的经验和其他的方法去判断(我用的是注释的办法)。

      下面我贴出一些代码吧

    第一个:获取access_token:

    $appid = "wxab732ce4074ec712";
    $appsecret = "**********************";//上面两个每个微信号都不一样,这个可以在微信公众号平台上找到
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($ch);
    curl_close($ch);
    $jsoninfo = json_decode($output, true);
    $access_token = $jsoninfo["access_token"]
    

      

    第二个 :创建自定义菜单:

    $jsonmenu='
    {
    	"button":
    	[
        	{
    			"name":"查询空车位",
                "type":"click",
                "key":"123" 
    		},
    		
             {
    			"name":"预定",
                "type":"click",
                "key":"456"  
    		},
    		{
    			"name":"停车",
                "type":"click",
                "url":"789"  
    		}
          
    		
    	]
    }';
    $url="https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token;
    $result=https_request($url,$jsonmenu);
    var_dump($result);
    function https_request($url,$data=null)
    {
        $curl=curl_init();
        curl_setopt($curl,CURLOPT_URL ,$url);
        curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);
        curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
        if(!empty($data))
        {
            curl_setopt($curl,CURLOPT_POST,1);
            curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
        }
        curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
        $output=curl_exec($curl);
        curl_close($curl);
        return $output;
    }
    

      在创建自定义菜单时,因为打算一个一个的做,先给菜单命名,没有写type和key,结果爆出了40017的错误。

    第三个:按钮click自动回复:

     public function responseMsg()
        {
            $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
    
            if (!empty($postStr))
            {
                $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                $fromUsername = $postObj->FromUserName;//获取用户openid
                $toUsername = $postObj->ToUserName;//
                $keyword = trim($postObj->Content);
                $key=$postObj->EventKey;//获取key的值,即上面自定义按钮中定义的值
                $time = time();
                $textTpl = "<xml>
                            <ToUserName><![CDATA[%s]]></ToUserName>
                            <FromUserName><![CDATA[%s]]></FromUserName>
                            <CreateTime>%s</CreateTime>
                            <MsgType><![CDATA[%s]]></MsgType>
                            <Content><![CDATA[%s]]></Content>
                            <FuncFlag>0</FuncFlag>
                            </xml>";
               
                 else if($key=="456")
                {
                    /***********代码事件*********/
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);//回复¥contentStr
    				echo $resultStr;
                }
            }
            else
            {
                echo "";
                exit;
            }
            
        }
    

      目前做的只有这些,以后还会继续发,希望能帮助一些才接触的人,同时也希望大牛们能给一些建议。

  • 相关阅读:
    Macaca初体验-Android端(Python)
    Macaca初体验-Android端(Python)
    Macaca初体验-Android端(Python)
    什么是流媒体技术
    什么是流媒体技术
    什么是流媒体技术
    什么是流媒体技术
    设备可以和人说话了 就问你怕不怕?
    设备可以和人说话了 就问你怕不怕?
    你都有什么副业?
  • 原文地址:https://www.cnblogs.com/love-xi/p/5677558.html
Copyright © 2011-2022 走看看