コード例 #1
0
ファイル: utility.class.php プロジェクト: dlpc/weixin
 public static function Forward($url)
 {
     if (strpos($url, '?')) {
         $url .= '&';
     } else {
         $url .= '?';
     }
     foreach (self::$GET_FIELDS as $f) {
         if (isset($_GET[$f])) {
             $url .= $f . '=' . urlencode($_GET[$f]) . '&';
         }
     }
     $post = spWxTransport::Input();
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($ch, CURLOPT_URL, $url);
     curl_setopt($ch, CURLOPT_POST, 1);
     curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
     curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type' => $_SERVER['HTTP_CONTENT_TYPE']]);
     $s = curl_exec($ch);
     $i = curl_getinfo($ch);
     curl_close($ch);
     spWxLogger::Log('spWxRequestForwarder', ['url' => $url, 'data' => $post, 'result' => $s, 'info' => $i]);
     return $s;
 }
コード例 #2
0
ファイル: request.class.php プロジェクト: dlpc/weixin
 public function response()
 {
     $msg = $this->createMessage(spWxMessage::RESPONSE_TEXT);
     if ($this->message->msg_type == spWxMessage::REQUEST_TEXT) {
         $msg->setContent('你输入了文本消息,消息内容是:' . $this->message->content);
     } else {
         if ($this->message->msg_type == spWxMessage::REQUEST_IMAGE) {
             $msg->setContent('你发送了一张图片,图片地址是:' . $this->message->pic_url);
         } else {
             if ($this->message->msg_type == spWxMessage::REQUEST_LOCATION) {
                 $msg->setContent('你发送了一个坐标,地址是:(' . $this->message->latitude . ', ' . $this->message->longitude . ')');
             } else {
                 if ($this->message->msg_type == spWxMessage::REQUEST_LINK) {
                     $msg->setContent('你发送了一个链接,地址是:' . $this->message->url);
                 } else {
                     if ($this->message->msg_type == spWxMessage::REQUEST_EVENT) {
                         $msg->setContent('你发送了一个事件,类型是:' . $this->message->event);
                     } else {
                         $msg->setContent('为什么你会发送这样的消息?');
                     }
                 }
             }
         }
     }
     spWxTransport::Output($msg);
 }
コード例 #3
0
ファイル: weixin.class.php プロジェクト: dlpc/weixin
 /**
  * 消息API
  *
  */
 public static function MessageAPI()
 {
     if ($_SERVER['REQUEST_METHOD'] == 'GET') {
         if (isset($_GET['echostr'])) {
             # ping/pong
             return self::ProcessRequest(self::REQUEST_VALIDATE, new spWxRequestValidationObject(array('echostr' => $_GET['echostr'])));
         }
     } else {
         $input = spWxTransport::Input();
         $postObj = simplexml_load_string($input, 'SimpleXMLElement', LIBXML_NOCDATA);
         $message = array();
         $message['from_username'] = (string) $postObj->FromUserName;
         $message['to_username'] = (string) $postObj->ToUserName;
         $message['create_time'] = (int) $postObj->CreateTime;
         $message['msg_id'] = (int) $postObj->MsgId;
         $message['msg_type'] = (string) $postObj->MsgType;
         switch ($message['msg_type']) {
             case self::REQUEST_TEXT:
                 # 文本类型消息
                 $message['content'] = (string) $postObj->Content;
                 $object = new spWxRequestTextObject($message);
                 break;
             case self::REQUEST_IMAGE:
                 # 图片类型消息
                 $message['pic_url'] = (string) $postObj->PicUrl;
                 $message['media_id'] = (string) $postObj->MediaId;
                 $object = new spWxRequestImageObject($message);
                 break;
             case self::REQUEST_LOCATION:
                 # 地理位置类型消息
                 $message += array('latitude' => (string) $postObj->Location_X, 'longitude' => (string) $postObj->Location_Y, 'scale' => (int) $postObj->Scale, 'label' => (string) $postObj->Label);
                 $object = new spWxRequestLocationObject($message);
                 break;
             case self::REQUEST_URL:
                 # 链接消息(old)
             # 链接消息(old)
             case self::REQUEST_LINK:
                 # 链接消息
                 $message += array('title' => (string) $postObj->Title, 'description' => (string) $postObj->Description, 'url' => (string) $postObj->Url);
                 $object = new spWxRequestLinkObject($message);
                 break;
             case self::REQUEST_EVENT:
                 # 事件消息
                 $message += array('event' => (string) $postObj->Event, 'event_key' => (string) $postObj->EventKey);
                 $object = new spWxRequestEventObject($message);
                 break;
             case self::REQUEST_VOICE:
                 # 语音消息
                 $message += array('media_id' => (string) $postObj->MediaId, 'format' => (string) $postObj->Format, 'recognition' => (string) $postObj->Recognition);
                 $object = new spWxRequestVoiceObject($message);
                 break;
             case self::REQUEST_VIDEO:
                 # 视频
             # 视频
             case self::REQUEST_SHORTVIDEO:
                 # 短视频
                 $message += array('media_id' => (string) $postObj->MediaId, 'thumb_media_id' => (string) $postObj->ThumbMediaId);
                 $object = new spWxRequestVideoObject($message);
                 break;
             default:
                 throw new spWxException('Invalid Message Type');
         }
         return self::ProcessRequest($message['msg_type'], $object);
     }
     return 0;
 }
コード例 #4
0
ファイル: example.php プロジェクト: dlpc/weixin
 protected function reply_text($text)
 {
     spWxTransport::Output($this->createMessage(spWxMessage::RESPONSE_TEXT)->setContent($text));
 }
コード例 #5
0
ファイル: response.class.php プロジェクト: dlpc/weixin
 public final function output()
 {
     spWxTransport::Output($this);
 }