IOS 微信获取accesstoken 40029

本文介绍了解决微信授权过程中遇到的40029错误——非法code的问题。通过在请求URL中添加参数&connect_redirect=1来避免重定向导致的code参数丢失,确保能够成功获取accesstoken。

微信授权根据code获取accesstoken时报40029 不合法的code 在浏览器中是可以获取到token的  因为在客户端

@"https://api.weixin.qq.com/sns/oauth2/access_token?appid=%@&secret=%@&code=%@&grant_type=authorization_code"请求时重定向了,第二次的时候code参数差了导致  添加&connect_redirect=1 后正常获取access token

@"https://api.weixin.qq.com/sns/oauth2/access_token?appid=%@&secret=%@&code=%@&grant_type=authorization_code&connect_redirect=1"

虽然给定引用中未直接提及Capacitor配置微信登录的方法,但可以结合iOS微信登录大致流程进行推测。 首先,在Capacitor项目里,需像iOS微信登录流程那样,第三方发起微信授权登录请求。当微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并带上授权临时票据code参数[^1]。 接着,要通过获得的code参数,加上AppID和AppSecret等,借助API换取access_token,这和iOS微信登录流程中的操作一致[^1]。 之后,利用access_token进行接口调用,从而获取用户基本数据资源或帮助用户实现基本操作[^1]。 在代码配置方面,可能要创建相关类,类似微信登录官方文档提到的WXEntryActivity类和WXPayEntryActivity类,将其放到合适的包名目录下,不过Capacitor中的目录结构也许会有所不同,要依据项目实际情况来确定[^2]。 以下是一个简单的伪代码示例,展示大致的流程: ```typescript // 模拟发起微信授权登录请求 function requestWechatLogin() { // 这里调用微信SDK发起请求 // 当用户授权后会返回code const code = 'your_code_here'; return code; } // 模拟通过code换取access_token async function getAccessToken(code: string) { const appId = 'your_app_id'; const appSecret = 'your_app_secret'; // 调用API换取access_token const response = await fetch(`https://api.weixin.qq.com/sns/oauth2/access_token?appid=${appId}&secret=${appSecret}&code=${code}&grant_type=authorization_code`); const data = await response.json(); return data.access_token; } // 模拟通过access_token获取用户信息 async function getUserInfo(accessToken: string) { const response = await fetch(`https://api.weixin.qq.com/sns/userinfo?access_token=${accessToken}&openid=your_openid`); const userInfo = await response.json(); return userInfo; } // 执行登录流程 async function wechatLogin() { const code = requestWechatLogin(); const accessToken = await getAccessToken(code); const userInfo = await getUserInfo(accessToken); console.log('用户信息:', userInfo); } wechatLogin(); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值