Login.php 4.05 KB
<?php

use Action\AbstractAction;
use Plugin\Partner\Factory;
use LibModels\Wap\Passport\LoginData;

class LoginController extends AbstractAction
{
    public function indexAction()
    {
        $data = array(
            'backUrl' => 'm.yohobuy.com',
            'showHeaderImg' => true,
            'isPassportPage' => true,
            'modulePath' => 'passport/login/login'
        );

        $this->_view->assign('title', '登录');
        $this->_view->display('index', $data);
    }

    public function interationalAction()
    {
        $data = array(
            'backUrl' => 'm.yohobuy.com',
            'headerText' => '登录',
            'isPassportPage' => true,
            'modulePath' => 'passport/login/interational',
            'countrys' => array(
                array(
                    'areaCode' => '+86',
                    'selected' => true,
                    'name' => '中国'
                ),
                array(
                    'areaCode' => '+864',
                    'name' => '中国香港'
                )
            ),
            'countryCode' => '+86'
        );

        $this->_view->assign('title', '国际账号登录');
        $this->_view->display('interational', $data);
    }


    /**
     * 支付宝账号登录:授权页面
     */
    public function alipayAction()
    {
        Factory::create('alipay')->getAuthorizeUrl();

        exit();
    }


    /**
     * QQ账号登录:授权页面
     */
    public function qqAction()
    {
        Factory::create('qqconnect')->getAuthorizeUrl();

        exit();
    }


    /**
     * 新浪微博账号登录:授权页面
     */
    public function sinaAction()
    {
        header('Location:' . Factory::create('sinaweibo')->getAuthorizeUrl());

        exit();
    }

    /**
     * 支付宝账号登录:回调方法
     */
    public function alipaycallbackAction()
    {
        $nickname = '';
        $alipay = Factory::create('alipay');
        $access = $alipay->getAccessToken();

        if (!isset($_GET['real_name']))
        {
            /* 获取支付宝用户的详细信息 */
            $userInfo = $alipay->getUserInfo($access);
            if ($userInfo && $userInfo['is_success'] === 'T' && isset($userInfo['response']['user_info']['user_name']))
            {
                $nickname = $userInfo['response']['user_info']['user_name'];
                $alipayEmail = $userInfo['response']['user_info']['email'];
            }
            var_dump($userInfo);
        }
        else
        {
            $nickname = $_GET['real_name'];
            $alipayEmail = isset($_GET['email']) ? $_GET['email'] : '';
        }
        var_dump($access);

        $result = LoginData::signinByOpenID($nickname, $access['user_id'], 'qq');

        if($result['code'] == 200)
        {
            echo '登陆成功';
        }
    }

    /**
     * QQ账号登录:回调方法
     */
    public function qqcallbackAction()
    {
        $qqconnect = Factory::create('qqconnect');
        $access = $qqconnect->getAccessToken();
        /* 获取QQ腾讯用户的详细信息 */
        $partnerInfo = $qqconnect->getUserInfo($access);
        var_dump($access, $partnerInfo);

        if ($partnerInfo && is_array($partnerInfo))
        {
            $result = LoginData::signinByOpenID($partnerInfo['nickname'], $access['openid'], 'qq');

            if($result['code'] == 200)
            {
                echo '登陆成功';
            }
        }   
    }

    /**
     * 新浪微博账号登录:回调方法
     */
    public function sinacallbackAction()
    {
        $sina = Factory::create('sina');
        $access = $sina->getAccessToken();
        /* 获取QQ腾讯用户的详细信息 */
        $partnerInfo = $sina->getUserInfo($access);
        var_dump($access, $partnerInfo);

        if ($partnerInfo && is_array($partnerInfo))
        {
            $result = LoginData::signinByOpenID($partnerInfo['screen_name'], $access['uid'], 'sina');

            if($result['code'] == 200)
            {
                echo '登陆成功';
            }
        }   
    }
}