收藏
回答

微信开放平台扫码登陆后需要二次扫码登陆?

相关账号ID
wx12d688815cef542f

我在开放平台申请的网站应用已过审核,授权回调域已填写,能力专区中微信登陆、拉起小程序已获得。我现在在我的平台生成了二维码扫码后跳转到了:https://open.weixin.qq.com/connect/qrconnect?appid=XXX&redirect_uri=https%3A%2F%2FXXX%2Flogin%2Fcallback&response_type=code&scope=snsapi_login&state=101edd89b7468850ae72ab6e8dfca269#wechat_redirect。这个页面又显示了二维码需要扫码登陆。

private function getWechatAuthUrl() {

        $appid = Config::get('wechat.appid', '');

        $loginCallback = Config::get('wechat.login_callback', '');

        $redirectUri = urlencode($loginCallback);

        $scope = Config::get('wechat.auth_scope', 'snsapi_login');

        $state = md5(uniqid(rand(), true));


        // 保存state到session,用于验证回调的真实性

        $_SESSION['wechat_state'] = $state;


        // 生成微信授权URL

        return sprintf(

            'https://open.weixin.qq.com/connect/qrconnect?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=%s#wechat_redirect',

            $appid,

            $redirectUri,

            $scope,

            $state

        );

private function getWechatLoginUrl() {

$wechatAuthUrl = $this->getWechatAuthUrl();

            // 使用endroid/qr-code库生成二维码图片

            // 引入自动加载文件(如果尚未加载)

            if (!class_exists('Endroid\QrCode\QrCode')) {

                require_once ROOT_PATH . '/vendor/autoload.php';

            }

            // 创建二维码对象,使用微信官方的授权URL

            $qrCode = new \Endroid\QrCode\QrCode($wechatAuthUrl);

            $qrCode->setSize(300);

            $qrCode->setMargin(10);

            // 设置前景色和背景色

            $qrCode->setForegroundColor(new \Endroid\QrCode\Color\Color(0, 0, 0, 0));

            $qrCode->setBackgroundColor(new \Endroid\QrCode\Color\Color(255, 255, 255, 0));

            // 生成Data URI格式的图片

            $writer = new \Endroid\QrCode\Writer\PngWriter();

            $result = $writer->write($qrCode);

            $dataUri = $result->getDataUri();

}

回答关注问题邀请回答
收藏

1 个回答

  • 智能回答 智能回答 本次回答由AI生成
    2025-09-02
    有用
登录 后发表内容