这个错误 redirect_uri域名与后台配置不一致,错误代码10003
是微信OAuth授权的常见问题。
错误原因:
移动端微信授权使用的是公众号网页授权,回调域名需要在微信公众平台后台单独配置,而不是开放平台。
解决方案:
1. 配置微信公众号授权回调域名
登录 微信公众平台 (mp.weixin.qq.com):
- 进入公众号后台
- 左侧菜单:开发 → 接口权限 → 网页服务 → 网页授权
- 点击"修改",添加您的域名(示例):
注意:www.pygrow.cn
- 只填写域名,不要加
http://
或https://
- 不要加路径,只要主域名
- 确保域名已备案
- 只填写域名,不要加
2. 检查当前回调URL
让我检查一下当前代码生成的回调URL:
python3 manage.py shell -c "from django.test import RequestFactory; from django.urls import reverse; factory = RequestFactory(); request = factory.get('/social_auth/login/', HTTP_HOST='www.pygrow.cn'); callback_url = request.build_absolute_uri(reverse('social_auth:wechat_callback')); print('当前回调URL:', callback_url)"
让我直接告诉您解决方案:
当前回调URL应该是:
https://www.pygrow.cn/social_auth/wechat/callback/
配置步骤:
1. 微信公众平台配置
- 登录 微信公众平台
- 进入您的公众号管理后台
- 左侧菜单:设置与开发 → 基本配置 → 服务器配置
- 或者:开发 → 接口权限 → 网页服务 → 网页授权
- 在"授权回调页面域名"中添加:
www.pygrow.cn
2. 检查域名配置
确保配置的域名格式正确:
- ✅ 正确:
www.pygrow.cn
- ❌ 错误:
https://www.pygrow.cn
- ❌ 错误:
www.pygrow.cn/social_auth/wechat/callback/
3. 检查SSL证书
确保您的网站支持HTTPS,微信要求回调URL必须是HTTPS。
4. 验证配置
配置完成后,您可以通过以下命令检查:
python3 manage.py check_wechat_config
重要提醒:
-
微信公众号 和 微信开放平台 是两个不同的后台:
- 桌面端扫码登录:使用微信开放平台的网站应用
- 移动端网页授权:使用微信公众平台的公众号
-
确保两个平台都配置了正确的回调域名:
- 微信开放平台:
www.pygrow.cn
- 微信公众平台:
www.pygrow.cn
- 微信开放平台:
-
域名必须已备案,否则微信不允许配置
配置完成后,移动端微信授权就应该能正常工作了。如果还有问题,请检查:
- 域名是否正确
- SSL证书是否有效
- 网站是否可以正常访问