public function getWeixQrCodeUrl($userId)
    {/*{{{*/
        $space = DAL::get()->find('space', $userId);
        if($space->isNull())
        {
            $this->setErrorCode(144);
            return 0;
        }
        $doc_scene = DAL::get()->find_by_spaceid("weixdoctorqrcodescene", $space->id);
        if(false == $doc_scene->isNull())
        {
            $sceneId = $doc_scene->sceneId;
        }
        else
        {
            $sceneId = WeixClient::getInstance()->queryMaxSceneId(); 
            WeixClient::getInstance()->createDoctorScene($sceneId, $space->id);
        }
        $wenxUrl = '';
        for($count = 0; $count < 3; $count++)
        {
            $wenxUrl =  WeixApi::getQrcodeUrl($sceneId, WeixUser::WEIXINTYPE_PATIENT);
            if ($wenxUrl != '') break;
        }
        $this->content = array('spaceQrCodeUrl' => $wenxUrl);

    }/*}}}*/
    public static function getQRCode4PhoneClient($curUser, $nowSpaceUser = '')
    {/*{{{*/
        if(empty($nowSpaceUser))
        {
            $nowSpaceUser = new NullEntity;
        }
        //患者和未登录用户
        if(false == $curUser->hasSpace())
        {
            echo '<script type="text/javascript"  src="http://i1.hdfimg.com/space/js/twodimension.js?20131118"></script>';
        }

        //医生登录
        if($curUser->hasSpace() && false == $nowSpaceUser->isNull() && $curUser->id == $nowSpaceUser->id && false == $curUser->space->hasLoginMobileTerminal() && $curUser->space->isConfirmed())
        {
           //echo '<script type="text/javascript"  src="http://i1.hdfimg.com/space/js/twodimension_doc.js?20131118"></script>';
        }
        //微信医生服务号二维码
        if($curUser->hasSpace() && false == $nowSpaceUser->isNull() && $curUser->id == $nowSpaceUser->id && $curUser->space->isConfirmed())
        {
            $doc_scene = DAL::get()->find_by_spaceid("weixdoctorqrcodescene", $nowSpaceUser->id);
            if(false == $doc_scene->isNull())
            {
                $sceneId = $doc_scene->sceneId;
            }
            else
            {
                $sceneId = WeixClient::getInstance()->queryMaxSceneId(); 
                WeixClient::getInstance()->createDoctorScene($sceneId, $nowSpaceUser->id);
            }
            $ticket = WeixApi::getTicket($sceneId, WeixUser::WEIXINTYPE_SPACE);
            if(false == empty($ticket))
            {
                $codeUrl = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=' . urlencode($ticket);
                echo '<script type="text/javascript"  src="http://i1.hdfimg.com/space/js/twodimension_wxdoc.js?20141105"></script>';
                echo "<script>loadTwoDimension('{$codeUrl}'); scrollx({id: 'two_dimen'}) </script>";
            }
        }

    }/*}}}*/
 public function understandSubsidyPolicy($request, $response)
 {
     /*{{{*/
     $response->spaceId = $this->space->id;
     $space = $this->space;
     $doc_scene = DAL::get()->find_by_spaceid("weixdoctorqrcodescene", $space->id);
     if (false == $doc_scene->isNull()) {
         $sceneId = $doc_scene->sceneId;
     } else {
         $sceneId = WeixClient::getInstance()->queryMaxSceneId();
         WeixClient::getInstance()->createDoctorScene($sceneId, $space->id);
     }
     $response->crCodeMsg = "";
     $ticket = WeixApi::getTicket($sceneId, WeixUser::WEIXINTYPE_SPACE);
     if (false == empty($ticket)) {
         $url = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=' . urlencode($ticket);
         $response->crCodeMsg = "<p>{$space->name}大夫,扫描如下二维码可以立即关注“好大夫在线医生服务号”并快速绑定</p>\n                <p><img src='{$url}' width='200px' heigh  t='200px'/></p>";
     }
 }
 public function ajaxStartAsk($request, $response)
 {
     $patientId = $request->patientId;
     $spaceId = $request->spaceId;
     $type = $request->type;
     $openid = $request->openid;
     if(empty($openid))
     {
         return parent::DIRECT_OUTPUT;
     }
     $weixUser = DAL::get()->find_by_openid_and_weixintype('WeixUser', $openid, WeixUser::WEIXINTYPE_PATIENT);
     if($weixUser->isNull())
     {
         return parent::DIRECT_OUTPUT;
     }
     $weixMsgDto = new WeixMsgDto();
     $weixMsgDto->weixUserId = $weixUser->id;
     $weixMsgDto->event = 'wap';
     $weixMsgDto->fromUserName = $openid;
     $configs = WeixApi::getWeixConfigs(WeixUser::WEIXINTYPE_PATIENT);
     $ourOpenId = $configs['Openid'];
     $weixMsgDto->toUserName = $ourOpenId;
     if(false == empty($patientId))
     {
         $weixMsgDto->patientId = $patientId;
     }
     if(false == empty($spaceId))
     {
         $weixMsgDto->spaceId = $spaceId;
     }
     if(empty($type))
     {
         $type = "flow";//这里包括了补充报到和流交流
     }
     
     $this->noticeWeix($weixMsgDto, $type);
     return parent::DIRECT_OUTPUT;
 }
Example #5
0
 public function getToken($request, $response)
 {/*{{{*/
     $weixintype = $request->weixintype;
     echo WeixApi::getAccess_token($weixintype);
     exit;
 }/*}}}*/
				<li>病情不明白、不理解地方可以告诉我,直接与我沟通</li>
			</ul>
			<h3 class="list_title">报到方法:</h3>
			<div class="clearfix">
				<div class="left_ewm">
					<b>方法一:微信扫描二维码</b>
					<div class="ewm_box">
                    <?php 
$doc_scene = DAL::get()->find_by_spaceid("weixdoctorqrcodescene", $space->id);
if (false == $doc_scene->isNull()) {
    $sceneId = $doc_scene->sceneId;
} else {
    $sceneId = WeixClient::getInstance()->queryMaxSceneId();
    WeixClient::getInstance()->createDoctorScene($sceneId, $space->id);
}
$ticket = WeixApi::getTicket($sceneId, WeixUser::WEIXINTYPE_PATIENT);
?>
                        <img src="https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=<?php 
echo urlencode($ticket);
?>
" alt="" width="174" height="174">
					</div>
					扫描<?php 
echo $space->name;
?>
医生二维码<br>
					完成“报到”
				</div>
				<div class="right_src">
					方法二:记下我的网址,回家上网报到<br><br>
                    <?php 
 public function createWeixinQrcode4Space($request, $response)
 {
     /*{{{*/
     if ($request->username == '') {
         return;
     }
     $response->username = $request->username;
     $space = DAL::get()->find_by_fld_spaceusername('space', $request->username);
     if ($space->isNull()) {
         $response->msg = "无效的医生用户名!";
         return;
     }
     $doc_scene = DAL::get()->find_by_spaceid("weixdoctorqrcodescene", $space->id);
     if (false == $doc_scene->isNull()) {
         $sceneId = $doc_scene->sceneId;
     } else {
         $sceneId = WeixClient::getInstance()->queryMaxSceneId();
         WeixClient::getInstance()->createDoctorScene($sceneId, $space->id);
     }
     $ticket = WeixApi::getTicket($sceneId, WeixUser::WEIXINTYPE_SPACE);
     $url = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=' . urlencode($ticket);
     $response->msg = "<p>医生姓名:{$space->name}</p>\n            <p>所在医院科室:{$space->host->hospitalfaculty->hospital->name}{$space->host->hospitalfaculty->name}</p>\n            <p>二维码连接:" . $url . "</p>\n            <p><img src='{$url}' /></p>";
 }
    public function successPatientSignin($request, $response)
    {/*{{{*/
        if('patientsigninaftervisit' == $request->from)
        {
            $response->signinType = "复诊报道";
        }
        else
        {
            $response->signinType = "门诊/住院患者报到";
        }

        //二维码
        $response->space = DAL::get()->find('space', $request->spaceId);
        $doc_scene = DAL::get()->find_by_spaceid("weixdoctorqrcodescene", $response->space->id);
        if(false == $doc_scene->isNull())                                           
        {                                                                           
            $sceneId = $doc_scene->sceneId;                                         
        }                                                                           
        else                                                                        
        {                                                                           
            $sceneId = WeixClient::getInstance()->queryMaxSceneId();                
            WeixClient::getInstance()->createDoctorScene($sceneId, $space->id);       
        }                                                                           
        $ticket = WeixApi::getTicket($sceneId, WeixUser::WEIXINTYPE_PATIENT);
        $url = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=' . urlencode($ticket);
        $response->url = $response->space->getUrl();
        $response->weixUrl = $url;       
    }/*}}}*/