js 公众号 获取code_微信公众号开发之网页授权登录及code been used 解决!

首先微信公众号开发网页授权登录使用环境:

开发工具:eclipse;服务器:tomcat8,开发语言:JAVA。

我写的网页授权登录时用开发者模式自定义view类型按钮点击跳转链接的。

微信网页授权登录首先以官方微信开发文档为准,大体共分为4步:

d76f3f7725667800afeed7a1be67cf7c.png

先说第一步获取code:

code说明:code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5扽这未被使用自动过期。

微信公众开发文档给的有获取code的链接,建议直接复制来用,然后替换其中相应的参数即可。

链接为:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect其中参数说明:

9533594aa63d0942605fdb6301702fa7.png

这官网上都有,这里展示是想说明一下scope参数,请注意看官网上给出的demo:

9a922808f9c1101321cccb8fea872cd1.png

请注意微信授权登录scope两种redirect_url后面跟的链接使用的协议。

这个协议使用不当可能会在项目部署到服务器上测试时在安卓和ios上出现问题。

至此,以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面);

以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。

参数替换完毕如果以snsapi_userinfo为scope发起的网页授权,是在PC端点击菜单会跳出提示用户同意授权登录,如果用户未关注公众号时同样也会提示,示例页面:

f852ace7b0254d8b014c13afb984f341.png

如果是在移动端用户关注情况下则不会出现此页面。

如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE,若跳转错误请根据日志输出的错误码在官网上查看相应的说明,附上官网上错误返回码说明:

880e2adec19df566104b4578a295e3a9.png

然后是第二步根据链接传过来的code去获取网页授权access_token:

官网上给出的链接:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

这个access_token和基本的access_token不同,具体请参考官网说明,这里给出获取网页授权access_token的JAVA实现方法:

1 /**

2 * 获取网页授权凭证3 *4 *@paramappId 公众账号的唯一标识5 *@paramappSecret 公众账号的密钥6 *@paramcode7 *@returnWeixinAouth2Token8 */

9 public staticWeixinOauth2Token getOauth2AccessToken(String appId, String appSecret, String code) {10 WeixinOauth2Token wat = null;11 //拼接请求地址

12 String requestUrl = "https://api.weixin.qq.com/sns/oa

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uniapp微信登录时出现code无效的问题可能有几个原因。首先,可能是由于前后端在获取code和使用code换取openid的过程中出现了错误。请确保在登录时正确获取到了code并将其传递给后端进行处理。另外,还需要确认后端代码中是否正确使用了code获取openid。可参考官方文档中提供的示例代码来确保代码的正确性。 此外,还有可能是由于APPID配置的问题导致code无效。请检查你的项目中的project.config.json文件和manifest.json文件中的APPID是否与微信小程序管理平台上的APPID一致[2]。 最后,还有一种可能是微信小程序管理平台出现了异常,导致code无效。你可以尝试在微信小程序管理平台上重新生成新的APPID,并更新到项目配置中,然后再进行测试。 希望以上方法能够帮助你解决uniapp微信登录code无效的问题。如果仍然存在问题,建议你查阅uniapp官方文档或寻求技术支持来获取更详细的解决方案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Uniapp使用微信登录获取code been used或者invalid code错误解决方案](https://blog.csdn.net/GotYoung/article/details/128995204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [uniapp开发微信小程序登录获取openid并解决code无效问题:invalid code](https://blog.csdn.net/weixin_45308405/article/details/128868377)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [微信APIV3 JAVA SDK集成(JSAPI支付、商家转账到零钱、订单退款、多商户配置)超简单、新鲜,附源码](https://download.csdn.net/download/weixin_70946184/88269689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值