技术支持请求:关于微信登录 redirect_uri 统一中转配置
1. 问题描述
我们使用贵公司 CRMEB 标准版搭建了多站点商城系统(域名:mall.yidaotang.club)。业务需求是,将所有子站点的微信网页授权登录,通过一个统一的中转域名(api.yidaotang.club)进行处理,以便集中管理微信公众平台的“网页授权域名”配置。
2. 具体需求
需要将 mall.yidaotang.club 站点发起微信登录时生成的 redirect_uri 参数,修改为指向中转地址:
https://api.yidaotang.club/wechat_oauth.php?state=mall
3. 我们已经尝试过的操作(均未生效)
修改 app/services/wechat/WechatServices.php 中的 authLogin 方法,尝试使用 setRedirectUrl 覆盖。
修改 crmeb/services/oauth/storage/Wechat.php 驱动中的 oauth 方法,在调用 WechatService::oauth2Service()->oauth() 前设置 setRedirectUrl。
在 Nginx 层面对 mall.yidaotang.club 配置 location = /api/v1/wechat/serve 重定向规则。
在 api.yidaotang.club 的 Nginx 中配置捕获规则。
通过修改数据库 eb_system_config 表中的 site_url 进行测试(已恢复)。
清理了所有缓存(Runtime、Redis、OPcache),并重启了 PHP 服务。
4. 关键发现
当微信公众平台“网页授权域名”设置为 mall.yidaotang.club 时,登录功能正常,证明站点自身授权流程无误。
当授权域名设置为 api.yidaotang.club 时,报错 10003,提示 redirect_uri 域名与后台配置不一致。
所有修改 redirect_uri 的尝试均未生效,生成的授权链接中该参数仍固定为 mall.yidaotang.club 域名。
5. 需要贵方协助
我们怀疑 redirect_uri 的生成逻辑在 CRMEB 核心库中被深度绑定,无法通过常规方式覆盖。烦请贵方技术支持:
告知在标准版 v5.4 中,生成微信登录 redirect_uri 的确切代码位置。
提供官方推荐的方法,用于在运行时动态修改或覆盖该 redirect_uri,以便实现统一中转。
6. 环境信息
CRMEB 版本:标准版 v5.4
PHP 版本:7.4
服务器环境:Linux,Nginx,宝塔面板
涉及域名:mall.yidaotang.club(业务站点)、api.yidaotang.club(中转站点)
謝謝!

