Exemple #1
0
 /**
  * 扫描二维码处理
  */
 public function scanTableQrcode()
 {
     if (isset($this->request['ticket'])) {
         $qrcode = M("wx_qrcode")->where(['ticket' => $this->request['ticket']])->find();
         //判断是否是扫描的桌号
         if ($qrcode['groups'] == 'table') {
             $table = M("shop_table")->where(['qrcode_id' => $qrcode['id']])->find();
             $mid = UserModel::instance()->getUserId($this->fromUsername);
             $material = M("wx_material")->where(['key' => 'table'])->find();
             if ($table && $material) {
                 //                     $url = "http://{$table['shop_id']}.qulianchn.com/index?mid={$mid}&time=".time()."&table={$table['id']}";
                 //                     $data[] = ResponseInitiative::newsItem('你已进入'.$table['name'].'桌', '请点击图片开始点餐', 'http://www.qulianchn.com/Public/Wx/img/diancan.jpg', $url);
                 //                     $result =ResponseInitiative::news($this->fromUsername, $data);
                 $material['content'] = unserialize($material['content']);
                 foreach ($material['content'] as &$val) {
                     $val['title'] = str_replace('__桌号__', $table['name'] . "桌", $val['title']);
                     $val['url'] = str_replace("__shop_id__", $table['shop_id'], $val['url']);
                     $val['url'] = str_replace("__mid__", $mid, $val['url']);
                     $val['url'] = str_replace("__table_id__", $table['id'], $val['url']);
                     $val['url'] = str_replace("__time__", time(), $val['url']);
                 }
                 $relult = ResponseInitiative::news($this->fromUsername, $material['content']);
             }
         } else {
             //TODO
             ResponseInitiative::text($this->fromUsername, "感谢你的关注");
         }
     }
 }
Exemple #2
0
 /**
  * jsapi支付
  * @param string  $user_id    用户id
  * @param int     $order_id
  * @param string  $order_sn   订单号
  * @param int     $total_fee  费用
  * @param string  $body       商品或支付单简要描述
  * @param string  $goods_tag  商品标记
  * @param string  $attach     自定义数据
  * @return array
  */
 public function JsApiPay($user_id, $order_id, $order_sn, $total_fee, $body = '', $goods_tag = '', $attach = '')
 {
     if (empty($user_id) || empty($total_fee)) {
         return ['status' => -1, 'message' => '数据错误'];
     }
     $tools = new JsApiPay();
     $openId = UserModel::instance()->getOpenId($user_id);
     if (empty($openId)) {
         $openId = $tools->GetOpenid();
         //             return ['status'=> -2 , 'message'=>'user_id错误'];
     }
     $input = new \WxPayUnifiedOrder();
     $input->SetBody($body);
     $input->SetAttach($attach);
     $input->SetOut_trade_no($order_sn);
     //\WxPayConfig::MCHID.date("YmdHis")
     $input->SetTotal_fee($total_fee);
     $input->SetTime_start(date("YmdHis"));
     $input->SetTime_expire(date("YmdHis", time() + 600));
     $input->SetGoods_tag($goods_tag);
     $input->SetTrade_type("JSAPI");
     $input->SetOpenid($openId);
     $order = \WxPayApi::unifiedOrder($input);
     if ($order['return_code'] != 'SUCCESS') {
         return ['status' => -10, 'message' => $order['return_msg']];
     }
     $jsApiParameters = $tools->GetJsApiParameters($order);
     $this->addPayLog($openId, $order_id, $input);
     return ['status' => 1, 'message' => $jsApiParameters];
 }
Exemple #3
0
 /**
  * @descrpition 分发请求
  * @param $request
  * @return array|string
  */
 public static function switchType(&$request)
 {
     $data = "";
     $send = \Wx\Event\SendMessageEvent::instance($request);
     switch ($request['msgtype']) {
         //事件
         case 'event':
             $request['event'] = strtolower($request['event']);
             switch ($request['event']) {
                 //关注
                 case 'subscribe':
                     //二维码关注
                     if (isset($request['eventkey']) && isset($request['ticket'])) {
                         \Wx\Model\UserModel::instance()->subscribe($request['fromusername']);
                         $send->scanTableQrcode();
                         //                             $data = self::eventQrsceneSubscribe($request);
                         //普通关注
                     } else {
                         \Wx\Model\UserModel::instance()->subscribe($request['fromusername']);
                         $data = self::eventSubscribe($request);
                     }
                     break;
                     //扫描二维码
                 //扫描二维码
                 case 'scan':
                     $send->scanTableQrcode();
                     //$data = self::eventScan($request);
                     break;
                     //地理位置
                 //地理位置
                 case 'location':
                     //$data = self::eventLocation($request);
                     break;
                     //自定义菜单 - 点击菜单拉取消息时的事件推送
                 //自定义菜单 - 点击菜单拉取消息时的事件推送
                 case 'click':
                     $send->clickMenu();
                     //                         $data = self::eventClick($request);
                     break;
                     //自定义菜单 - 点击菜单跳转链接时的事件推送
                 //自定义菜单 - 点击菜单跳转链接时的事件推送
                 case 'view':
                     $data = self::eventView($request);
                     break;
                     //自定义菜单 - 扫码推事件的事件推送
                 //自定义菜单 - 扫码推事件的事件推送
                 case 'scancode_push':
                     $data = self::eventScancodePush($request);
                     break;
                     //自定义菜单 - 扫码推事件且弹出“消息接收中”提示框的事件推送
                 //自定义菜单 - 扫码推事件且弹出“消息接收中”提示框的事件推送
                 case 'scancode_waitmsg':
                     $data = self::eventScancodeWaitMsg($request);
                     break;
                     //自定义菜单 - 弹出系统拍照发图的事件推送
                 //自定义菜单 - 弹出系统拍照发图的事件推送
                 case 'pic_sysphoto':
                     $data = self::eventPicSysPhoto($request);
                     break;
                     //自定义菜单 - 弹出拍照或者相册发图的事件推送
                 //自定义菜单 - 弹出拍照或者相册发图的事件推送
                 case 'pic_photo_or_album':
                     $data = self::eventPicPhotoOrAlbum($request);
                     break;
                     //自定义菜单 - 弹出微信相册发图器的事件推送
                 //自定义菜单 - 弹出微信相册发图器的事件推送
                 case 'pic_weixin':
                     $data = self::eventPicWeixin($request);
                     break;
                     //自定义菜单 - 弹出地理位置选择器的事件推送
                 //自定义菜单 - 弹出地理位置选择器的事件推送
                 case 'location_select':
                     $data = self::eventLocationSelect($request);
                     break;
                     //取消关注
                 //取消关注
                 case 'unsubscribe':
                     \Wx\Model\UserModel::instance()->unsubscribe($request['fromusername']);
                     $data = self::eventUnsubscribe($request);
                     break;
                     //群发接口完成后推送的结果
                 //群发接口完成后推送的结果
                 case 'masssendjobfinish':
                     $data = self::eventMassSendJobFinish($request);
                     break;
                     //模板消息完成后推送的结果
                 //模板消息完成后推送的结果
                 case 'templatesendjobfinish':
                     $data = self::eventTemplateSendJobFinish($request);
                     break;
                 default:
                     return Msg::returnErrMsg(MsgConstant::ERROR_UNKNOW_TYPE, '收到了未知类型的消息', $request);
                     break;
             }
             break;
             //文本
         //文本
         case 'text':
             $data = self::text($request);
             break;
             //图像
         //图像
         case 'image':
             $data = self::image($request);
             break;
             //语音
         //语音
         case 'voice':
             $data = self::voice($request);
             break;
             //视频
         //视频
         case 'video':
             $data = self::video($request);
             break;
             //小视频
         //小视频
         case 'shortvideo':
             $data = self::shortvideo($request);
             break;
             //位置
         //位置
         case 'location':
             $data = self::location($request);
             break;
             //链接
         //链接
         case 'link':
             $data = self::link($request);
             break;
         default:
             return ResponsePassive::text($request['fromusername'], $request['tousername'], '收到未知的消息,我不知道怎么处理');
             break;
     }
     \Wx\Model\UserModel::instance()->updateInfo($request['fromusername']);
     echo $data;
 }