软录 · 2022年11月28日

微信缺少oauthcode|微信OAuth20授权回调页面域名设置问题

⑴ 微信公众号提示10005错误

出现这种错误的原因一般有三种:

①订阅号没有相关的权限

②账号没有认证,没有相关的权限

③scope 参数位置错误

三种情况的解决方案为:

一、首先检查您的微信号是服务号还是订阅号, 如果是订阅号,腾讯没有开放接口,故没有权限

在开发者中心可以查看是否为服务号,如图,

注意:

授权回调域名配置规范为全域名且不带http,假如需要网页授权的域名为:”www.qq.com“,

配置以后此域名下面页面“http://www.qq.com/music.html、

http://www.qq.com/login.html”都可以进行OAuth2.0鉴权。

但是如“http://pay.qq.com 、 http://music.qq.com 、 http://qq.com”无法进行OAuth2.0鉴

权。

三、可能是配置错误

举个例子,

错误的配置为:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&scope=snsapi_userinfo&response_type=code&state=STATE#wechat_redirect

正确的配置为:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

具体原因为scope的位置不一样,当 scope 为 snsapi_base的时候没有影响。

但是当scope为snsapi_userinfo 就会提示 scope参数错误或没有scope权限

⑵ oauth2.0网页授权微信怎么用java获取code

@RequestMapping(value="oauth2/{type}/{appId}/{scope}", method=RequestMethod.GET)public ModelAndView index(@PathVariable String type,@PathVariable String appId,@PathVariable String scope,String openId){ModelAndView view=new ModelAndView();if(StringUtils.isEmpty(appId)||mapWxAppInfo.get(appId)==null){view.setViewName("fail");return view;}//scope=snsapi_base 获取用户openId,无需授权//scope=snsapi_userinfo 获取用户基本信息,需授权String oauthUrl="https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=%s#wechat_redirect";//处理授权回调地址String callback="http://wx.lrlz.com/wx/callback/"+appId;if(!StringUtils.isEmpty(openId)){callback += "/"+openId;}oauthUrl=String.format(oauthUrl, appId,callback,scope,type);log.info("微信授权认证地址="+oauthUrl);view.setViewName("redirect:" + oauthUrl);return view;}/*** 处理网页授权回调* */@RequestMapping(value="callback/{appId}")public ModelAndView callback(@PathVariable String appId,String code,String state,String redirectUri,HttpServletRequest req,HttpServletResponse response){return getCallback(appId,code,state,null);}这样就行了

⑶ 微信如何设置开发者中心的 “OAuth2.0”网页授权

需要在微信公众后台配置授权回调域名,配置注意事项请参考公众平台接口详细说明,配置成功后,可以通过请求授权页面,直到授权后重定向到回调地址。

具体操作:粘贴如下代码:

public ActionResult WXBind(){string sUrl = "/oauth2/access_token?appid=" + ViewUtil.WXappID + "&secret=" + ViewUtil.WXappsecret + "&code=" + Request["code"] + "&grant_type=authorization_code";WebClient webClient = new WebClient();Byte[] bytes = webClient.DownloadData(sUrl);string result = Encoding.GetEncoding("utf-8").GetString(bytes);JSONObject obj = JSONConvert.DeserializeObject(result);string sParam = Request["state"];string sRedictUrl = "";switch (sParam){case "myorder":sRedictUrl = "/Account/Order?OpenID=" + obj["openid"] +"&Param=order";break;case "book":sRedictUrl = "/Book/WXHotels";break;default:sRedictUrl = "/Account/Index?OpenID={0}" + obj["openid"];break;}Response.Redirect(sRedictUrl);return View();}

⑷ 微信OAuth2.0授权回调页面域名设置问题

当下的解决方案是引入一个新的非常简单的应用来作为微信授权的代理服务,可以这么做:

1. 把公众号的网页授权接口域名设置成另外一个子域名,如proxy.your.com; 2. 然后把php_weixin_proxy里面的index.php部署到proxy.your.com

php_weixin_proxy下的index.php是一个很简单的php文件,你可以直接查看源码了解它的实现方式。因为当前项目的环境,我采用php来完成这个代理服务实现,实际上,你完全可以用任意平台语言来完成类似的功能。

当其它业务需要发起微信授权时,将授权请求先发到proxy.your.com,然后proxy.your.com会把这个请求转发到微信; 当用户同意授权后,proxy.your.com会收到微信的授权回调,并把回调结果(code、state参数)原封不动地再返回给最开始发起授权的业务。

唯一的区别在于,在不使用proxy.your.com的时候,你从应用发起微信授权的链接应该是这样的: https://open.weixin.qq.com/connect/qrconnect?appid=xxxxx&redirect_uri=http%3A%2F%2Fpassport.your.com%2F&response_type=code&scope=snsapi_login&state=584bc87e11ff37492#wechat_redirect 用了proxy.your.com之后,这个授权链接就应该是这样的: http://proxy.your.com/?appid=xxxxx&redirect_uri=http%3A%2F%2Fpassport.your.com%2Flogin%2Fnotify&response_type=code&scope=snsapi_base&state=584bc87e11ff37492&device=pc

后面这个链接跟上面的比: 1. 后面的链接中的host变成了proxy.your.com,也就是代理的授权回调域名; 2. 后面的多了一个device参数,这个是必要的。因为微信pc端跟移动端的授权地址是不一样的,而后面的链接是发送个proxy.your.com的,所以需要多加个参数告诉它在转发给授权申请给微信的时候,是用PC端还是移动端的授权地址。

⑸ 微信授权登陆时显示“获取code”怎么解决

解决方法:

1、先注册应用:

private IWXAPI msgApi;

msgApi = WXAPIFactory.createWXAPI(this, null);

msgApi.registerApp(Constants.APP_ID)。

2、然后拉取微信到授权登陆界面:

final SendAuth.Req req = new SendAuth.Req();

req.scope = "snsapi_userinfo";

req.state = "wxdemo";

msgApi.sendReq(req);

3、在WXEntryActivity中的onResp(BaseResp resp)方法中获取code:

String code = ((SendAuth.Resp) resp).code;//需要转换一下才可以。

⑹ 紧急求助,微信设置“开发者中心”的 OAuth2.0网页授权设置

要在微信中使用OAuth2.0 ,首先需要在微信公众后台配置授权回调域名,配置注意事项请参考公众平台接口详细说明,配置成功后,我们就可以通过请求授权页面,直到授权后重定向到回调地址。​如何构造请求方式就不解释了,公众平台有详细介绍,我在这里主要介绍一下如果通过回调方法获取相关参数,如OpenID,State等参数。直接贴代码:public ActionResult WXBind(){string sUrl = "/oauth2/access_token?appid=" + ViewUtil.WXappID + "&secret=" + ViewUtil.WXappsecret + "&code=" + Request["code"] + "&grant_type=authorization_code";WebClient webClient = new WebClient();Byte[] bytes = webClient.DownloadData(sUrl);string result = Encoding.GetEncoding("utf-8").GetString(bytes);JSONObject obj = JSONConvert.DeserializeObject(result);string sParam = Request["state"];string sRedictUrl = "";switch (sParam){case "myorder":sRedictUrl = "/Account/Order?OpenID=" + obj["openid"] +"&Param=order";break;case "book":sRedictUrl = "/Book/WXHotels";break;default:sRedictUrl = "/Account/Index?OpenID={0}" + obj["openid"];break;}Response.Redirect(sRedictUrl);return View();}

⑺ OAuth2.0微信code获取失败怎么办

在用户没有关注的情况下,还是会产生一个与公众号对应的openid,可以根据这个openid和基础支持的access_token(不是用code换取的access_token)获取到用户的基

⑻ 微信OAuth2.0网页授权​可以添加多个域名吗

不可以,只能添加一个域名。授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com 无法进行OAuth2.0鉴权。

⑼ 微信服务器地址在线等

获取微信服务器IP地址出自微信公众平台开发者文档跳转到: 导航, 搜索 如果公众号基于安全等考虑,需要获知微信服务器的IP地址列表,以便进行相关限制,可以通过该接口获得微信服务器IP地址列表。接口调用请求说明http请求方式: GEThttps://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN参数说明参数是否必须说明access_token 是 公众号的access_token 返回说明正常情况下,微信会返回下述JSON数据包给公众号:{"ip_list":["127.0.0.1","127.0.0.1"]}参数说明ip_list 微信服务器IP地址列表 错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):{"errcode":40013,"errmsg":"invalid appid"}公众号每次调用接口时,可能获得正确或错误的返回码,开发者可以根据返回码信息调试接口,排查错误。全局返回码说明如下:返回码说明-1 系统繁忙,此时请开发者稍候再试 0 请求成功 40001 获取access_token时AppSecret错误,或者access_token无效。请开发者认真比对AppSecret的正确性,或查看是否正在为恰当的公众号调用接口 40002 不合法的凭证类型 40003 不合法的OpenID,请开发者确认OpenID(该用户)是否已关注公众号,或是否是其他公众号的OpenID 40004 不合法的媒体文件类型 40005 不合法的文件类型 40006 不合法的文件大小 40007 不合法的媒体文件id 40008 不合法的消息类型 40009 不合法的图片文件大小 40010 不合法的语音文件大小 40011 不合法的视频文件大小 40012 不合法的缩略图文件大小 40013 不合法的AppID,请开发者检查AppID的正确性,避免异常字符,注意大小写 40014 不合法的access_token,请开发者认真比对access_token的有效性(如是否过期),或查看是否正在为恰当的公众号调用接口 40015 不合法的菜单类型 40016 不合法的按钮个数 40017 不合法的按钮个数 40018 不合法的按钮名字长度 40019 不合法的按钮KEY长度 40020 不合法的按钮URL长度 40021 不合法的菜单版本号 40022 不合法的子菜单级数 40023 不合法的子菜单按钮个数 40024 不合法的子菜单按钮类型 40025 不合法的子菜单按钮名字长度 40026 不合法的子菜单按钮KEY长度 40027 不合法的子菜单按钮URL长度 40028 不合法的自定义菜单使用用户 40029 不合法的oauth_code 40030 不合法的refresh_token 40031 不合法的openid列表 40032 不合法的openid列表长度 40033 不合法的请求字符,不能包含\uxxxx格式的字符 40035 不合法的参数 40038 不合法的请求格式 40039 不合法的URL长度 40050 不合法的分组id 40051 分组名字不合法 40117 分组名字不合法 40118 media_id大小不合法 40119 button类型错误 40120 button类型错误 40121 不合法的media_id类型 40132 微信号不合法 40137 不支持的图片格式 41001 缺少access_token参数 41002 缺少appid参数 41003 缺少refresh_token参数 41004 缺少secret参数 41005 缺少多媒体文件数据 41006 缺少media_id参数 41007 缺少子菜单数据 41008 缺少oauth code 41009 缺少openid 42001 access_token超时,请检查access_token的有效期,请参考基础支持-获取access_token中,对access_token的详细机制说明 42002 refresh_token超时 42003 oauth_code超时 43001 需要GET请求 43002 需要POST请求 43003 需要HTTPS请求 43004 需要接收者关注 43005 需要好友关系 44001 多媒体文件为空 44002 POST的数据包为空 44003 图文消息内容为空 44004 文本消息内容为空 45001 多媒体文件大小超过限制 45002 消息内容超过限制 45003 标题字段超过限制 45004 描述字段超过限制 45005 链接字段超过限制 45006 图片链接字段超过限制 45007 语音播放时间超过限制 45008 图文消息超过限制 45009 接口调用超过限制 45010 创建菜单个数超过限制 45015 回复时间超过限制 45016 系统分组,不允许修改 45017 分组名字过长 45018 分组数量超过上限 46001 不存在媒体数据 46002 不存在的菜单版本 46003 不存在的菜单数据 46004 不存在的用户 47001 解析JSON/XML内容错误 48001 api功能未授权,请确认公众号已获得该接口,可以在公众平台官网-开发者中心页中查看接口权限 50001 用户未授权该api 50002 用户受限,可能是违规后接口被封禁 61451 参数错误(invalid parameter) 61452 无效客服账号(invalid kf_account) 61453 客服帐号已存在(kf_account exsited) 61454 客服帐号名长度超过限制(仅允许10个英文字符,不包括@及@后的公众号的微信号)(invalid kf_acount length) 61455 客服帐号名包含非法字符(仅允许英文+数字)(illegal character in kf_account) 61456 客服帐号个数超过限制(10个客服账号)(kf_account count exceeded) 61457 无效头像文件类型(invalid file type) 61450 系统错误(system error) 61500 日期格式错误 61501 日期范围错误 9001001 POST数据参数不合法 9001002 远端服务不可用 9001003 Ticket不合法 9001004 获取摇周边用户信息失败 9001005 获取商户信息失败 9001006 获取OpenID失败 9001007 上传文件缺失 9001008 上传素材的文件类型不合法 9001009 上传素材的文件尺寸不合法 9001010 上传失败 9001020 帐号不合法 9001021 已有设备激活率低于50%,不能新增设备 9001022 设备申请数不合法,必须为大于0的数字 9001023 已存在审核中的设备ID申请 9001024 一次查询设备ID数量不能超过50 9001025 设备ID不合法 9001026 页面ID不合法 9001027 页面参数不合法 9001028 一次删除页面ID数量不能超过10 9001029 页面已应用在设备中,请先解除应用关系再删除 9001030 一次查询页面ID数量不能超过50 9001031 时间区间不合法 9001032 保存设备与页面的绑定关系参数错误 9001033 门店ID不合法 9001034 设备备注信息过长 9001035 设备申请参数不合法 9001036 查询起始值begin不合法

⑽ 如何在微信开发平台接入公众号第三方平台如果点击绑定公众号直接报参数缺少preauthcode哪位大神回复

需要检查

1.服务器ip是填写正确

2.检查一下开放平台—管理中心—公众号第三方平台—详情—有没有网址后缀是amp的

3.可能是因为没有在开发者中心申请资质认证,直接在总后台开启了微信托管

4.微信托管里面的appid和appsecret填写的需是开放平台的,如果这里面填写错了(注意空格),如【图2】

【图2】

那么也会直接弹出如上【图1】所示的报错

希望我的回答对你有帮助哦,望采纳~!