开发支付宝小程序,在登录的时候,由于需要手机号登陆,所以需要在支付宝小程序后台去申请手机号登陆权限。
支付宝小程序登陆组件设置
<!-- #ifdef MP-ALIPAY -->
<button class="login" type="default" open-type="getAuthorize" @getAuthorize="onGetAuthorize" @error="onAuthError" scope='phoneNumber'>授权手机号一键登录</button>
<!-- #endif -->
支付宝登陆官方代码、
onGetAuthorize:function() {
return new Promise((resolve, reject) => {
my.getPhoneNumber({
scopes: "auth_user",
success: res => {
var response = JSON.parse(res.response);
let encry = response.response; //获取 encry 微信小程序叫这个名字
this.zhifubao(encry); // 调取这个自定义方法
resolve(res);
},
fail: res => {
reject(res);
}
});
});
},
支付宝方法
//支付宝登录
zhifubao:function(encry){
var that = this;
let openId = that.openId; //进入小程序时获取code 请求的openid
let key = that.key; // 请求的sessionKey 保存本地拿过来的
var loginUrl = getApp().globalData.url + "/login/wxLogin"; //请求路径
uni.request({
url:loginUrl,
data:{
encryptedData: encry, //这个是上传过来的值
sessionKey: key, //b本地请求的
open_id:openId, //本地sessionKey
// 其他参数跟后台需求传
},
success: (res) => {
console.log(res,'login')
//自己的逻辑处理
},
fail: (res) => {
console.log(res,"error")
}
})
},
这样就能登陆成功了