uniapp 获取各种小程序code

各种小程序在进入小程序是  都需要去获取code 才能拿到基础信息,自己记录一下用uniapp 开发小程序是获取 微信小程序、百度小程序、头条小程序、支付宝小程序的code

Vue.prototype.$global = {
	appLogin() {
		return new Promise((resole, reject) => {
			var that = this;
			var wxLoginUrl = app.globalData.url + "/login/getUserOpenId";  //获取code接口
			uni.getProvider({
				service: 'oauth',
				success(res) {
					//微信code
					if (res.provider.includes('weixin') ) {   // 判断是微信
						uni.login({
							success(loginRes) {
								if(loginRes.code){
									uni.request({
										url: wxLoginUrl,
										method: "POST",
										data: {
											code:loginRes.code
										},
										success: function (res) {
											let info = res.data.data
											if(res.data.status==1){
												uni.setStorageSync("loginType",'0');
												uni.setStorageSync("open_id",info.open_id);  //获取的open_id
												uni.setStorageSync("sessionKey",info.sessionKey); // 获取的sessionKey
											}
										}
									})
								}
								
							}
						})
					}
					//百度code   百度不需要接口 直接跳去百度给的接口即可
					if(res.provider.includes('baidu')){
						uni.login({
							provider: uni.getStorageSync('provider'),
							success: (res) => {
								uni.request({
									url: "https://spapi.baidu.com/oauth/jscode2sessionkey",
									method: "POST",
									data: {
										code:res.code,
										client_id:'aa4pFKIEfGjHbish6HzXBnlAK2tMbtUS',
										sk:'u3K5GMEuvdhouGZwF6j4nq8nv9E42WqQ',
									},
									success: function (res) {
										uni.setStorageSync("loginType",'1');
										uni.setStorageSync("open_id",res.data.openid);
										uni.setStorageSync("sessionKey",res.data.session_key);
									}
								})
							}
						})	
					}
					//头条code
					if(res.provider.includes('toutiao')){

						// var loginUrl =  接口路劲
						uni.login({
							// provider: uni.getStorageSync('provider'),
							success: (res) => {
								
								uni.request({
									url: loginUrl,
									method: "POST",
									data: {
										code:res.code,
									},
									success: function (res) {
										uni.setStorageSync("loginType",'2');
										uni.setStorageSync("open_id",res.data.data.openid);
										uni.setStorageSync("sessionKey",res.data.data.session_key);
									}
								})
							}
						})	   
					};
					//支付宝登录
					if(res.provider.includes('alipay')){

						// var loginUrl =  接口路劲
						uni.login({
							scopes: 'auth_base', //进入支付宝不弹出授权窗口
							success: (res) => {
								uni.request({
									url: loginUrl,
									method: "POST",
									data: {
										code:res.authCode,
									},
									success: function (res) {
										uni.setStorageSync("loginType",'3');//支付时候判断是什么小程序
										uni.setStorageSync("open_id",res.data.data.open_id);
										uni.setStorageSync("sessionKey",res.data.data.sessionKey);
									}
								})
								
							}
							
						})	
					};
				}
			});
		})
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灵魂清零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值