1. 程式人生 > >微信開發——被動回覆圖片和被動回覆文字

微信開發——被動回覆圖片和被動回覆文字

首先上傳一張圖片到定義的資料夾裡 然後再上傳到微信公眾號裡,在新增一個reply_image資料表,把資訊新增到這個資料表中,具體程式碼如下
 public function upload(){
		$upload = new \Think\Upload();// 例項化上傳類
		$upload->maxSize = 3145728 ;// 設定附件上傳大小
		$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 設定附件上傳型別

		$upload->rootPath = './Upload/'; // 設定附件上傳根目錄
		$upload->savePath = ''; // 設定附件上傳(子)目錄
		// 上傳檔案
		$info = $upload->uploadOne($_FILES['file']);
		if(!$info) {// 上傳錯誤提示錯誤資訊
		  $this->ajaxReturn(array('code'=>1,'msg'=>$upload->getError()));
		}else{// 上傳成功
		  $file= '/Upload/' . $info['savepath'] . $info['savename'];
		  $this->ajaxReturn(array('code'=>0,'msg'=>'上傳成功','url'=>$file));

	  }
	    

		
	  
	}
	
	public function insertimage(){
		 $url=I('post.url');
 		 $file=realpath('.'. $url);
		
		 $staus_type=I('post.staus_type');//臨時,永久
		 $accessToken=getAccess_token();
		 include APP_PATH . 'LaneWeChat/lanewechat.php';
		 		
		 $url="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$accessToken&type=image";
		 $data['media']=Curl::addFile($file);
		 $ret=Curl::callWebServer($url,$data,'post',1,0);
		 // dump($ret);
		 // exit;
		 // 
 		    // echo $url;
 		   if (isset($ret['media_id'])) {
 		   	# code...
 		  
 			$data['url']=$ret['url'];
 			$data['media_id']=$ret['media_id'];
 			$image=M('reply_image');
 			$str=$image->add($data);
 			if (isset($str)) {
 			$mp=$this->mp;
			$data1['mpid']=$mp['id'];
			$keyword=I('post.keyword');
			$data1['keyword']=$keyword;
			$data1['type']='image';
			$data1['status']=$mp['is_use'];
		    $data1['reply_id']=$str;
			$rule=M('mp_rule');
			$rule->add($data1);
 			}
	
		$this->ajaxReturn(array('msg'=>'新增成功'));
		}else{
 	 	$this->ajaxReturn($ret);
 	 }	
  
	}

被動回覆文字跟被動回覆圖片差不多,將獲取的資訊新增到reply_text資料表中,程式碼如下

public function inserttext(){
		$content=I('post.content');
		$model=M('reply_text');
		$data['content'] = $content;
		$ret=$model->add($data);
		$mp=$this->mp;
		$data1['mpid']=$mp['id'];
		$keyword=I('post.keyword');
		$data1['keyword']=$keyword;
		$data1['type']='text';
		$data1['status']=$mp['is_use'];
	    $data1['reply_id']=$ret;
		$rule=M('mp_rule');
		$rule->add($data1);

		if ($ret===false) {
			$this->ajaxReturn(array('msg'=>'新增失敗'));
		}else{
			$this->ajaxReturn(array('msg'=>'新增成功'));
		}
	}
在wechatrequest.lib.php 寫一個text方法
        $mpid=$_GET['id'];
        $content=$request['content'];
        $where['mpid']=$mpid;
        $where['keyword']=$content;
        $data=M('mp_rule')->where($where)->find();
        if ($data) {
            $reply_id=$data['reply_id'];
            $type=$data['type'];

            switch ($type) {
                case 'text':
                   $reply=M('reply_text')->find($reply_id);
                   if ($reply) {
                       $reply_text=$reply['content'];

                   }else{
                    $reply_text='出錯了';

                   }
                   return ResponsePassive::text($request['fromusername'],$request['tousername'],$reply_text); 
                    break;
                case 'image';
                $reply=M('reply_image')->find($reply_id);
                if ($reply) {
                    $media_id=$reply['media_id'];
                    return ResponsePassive::image($request['fromusername'],$request['tousername'],$media_id); 
                }else{
                    $reply_text='出錯了';
                    return ResponsePassive::text($request['fromusername'],$request['tousername'],$reply_text); 
                }
                break;