- 微信对话开放平台自定义知识问答无法保存
https://chatbot.weixin.qq.com/ [图片][图片]
04-27 - 微信开放平台扫码登陆后需要二次扫码登陆?
我在开放平台申请的网站应用已过审核,授权回调域已填写,能力专区中微信登陆、拉起小程序已获得。我现在在我的平台生成了二维码扫码后跳转到了: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(); }
2025-09-02