需求说明:
现有的微信小程序项目,移动app项目需要实现微信提现功能,微信提现需要openid,故实际就是获取微信的openid,何为openid,即用户与应用的一种绑定关系,因此小程序和app均可通过微信授权登录方式获取openid。
因小程序授权登录早已实现,现只需实现app微信登录
官方api:微信登录
实现步骤:
1.OAuth(登录鉴权)
打开项目的manifest.json文件,在“App模块配置”项的“OAuth(登录鉴权)”下,勾选“微信登录”
2.调用uni.login获取code
uni.login({
"provider": "weixin",
"onlyAuthorize": true, // 微信登录仅请求授权认证
success: function (loginRes) {
//loginRes.code为返回的code,通过code调用后端getOpenId接口即可返回openid,前端自行存储即可
self.getOpenId(loginRes)
},
fail: function (err) {
setTimeout(() => {
uni.showToast({
title: '微信绑定失败',
icon: 'none',
duration: 3000
});
},500)
}
});
3.授权登录效果
通过微信授权登录获取openId后,即可在需要提现的地方调用后端提现接口,进行微信提现
注意!!!
1.app开发调试必须使用自定义基座调试(h5,模拟器,真机均不行)
2. 苹果登录是** iOS13** 新增加的功能,当你的应用使用了第三方登录比如微信登录,同时也需要集成苹果登录,否则提交AppStore审核会被拒绝,故ios的app同时需要授权苹果登录,同时需要去苹果开发者中心去进行应用配置
若ios app无需微信登录,则无需新增代码,与安卓版授权方式一致