Переглянути джерело

1.设置小程序appid
2.调试登录接口
3.调试授权接口
4.测试手机授权接口

zizhong.wang 6 роки тому
батько
коміт
9d60f2c200
5 змінених файлів з 222 додано та 94 видалено
  1. 7 2
      App.vue
  2. 56 61
      manifest.json
  3. 53 19
      pages/auth/index.vue
  4. 38 6
      pages/index/index.vue
  5. 68 6
      pages/selfCenter/index.vue

+ 7 - 2
App.vue

@@ -7,15 +7,20 @@
 			globalTimestamp: (Date.now()).toString(),
 			user_id: '',
 			open_id:'',
+			user_status:'',
 			user_name:'',
+			user_phone:'',
 			user_headUrl:'',
 			isAuth:true,
-			sessionId: '',
+			session_key: '',
+			inviteId:'',
 			cleanPayTime: '',
 			pageSize: '', // 列表加载的pageSize
 			isAndroid:Boolean,
 			isIos:false,
 			globalShareCounts:'',
+			appId:'wx78d5c9d2169503fa',
+			appSecret:'9241c2a4d722946571c696e59c00f235'
 		},
 		onLaunch: function() {
 			// console.log('App Launch')
@@ -36,7 +41,7 @@
 			// }
 		},
 		onShow: function() {
-			console.log('App Show')
+			console.log(2)
 		},
 		onHide: function() {
 			console.log('App Hide')

+ 56 - 61
manifest.json

@@ -1,73 +1,68 @@
 {
-	"name" : "retailStore",
-	"appid" : "",
-	"description": "",
-	"versionName": "1.0.0",
-	"versionCode": "100",
-	"transformPx": false,
+    "name" : "retailStore",
+    "appid" : "",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
     /* 5+App特有相关 */
-	"app-plus": {
-		"usingComponents": true,
-		"splashscreen": {
-			"alwaysShowBeforeRender": true,
-			"waiting": true,
-			"autoclose": true,
-			"delay": 0
-		},
+    "app-plus" : {
+        "usingComponents" : true,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
         /* 模块配置 */
-		"modules": {
-
-		},
+        "modules" : {},
         /* 应用发布信息 */
-		"distribute": {
+        "distribute" : {
             /* android打包配置 */
-			"android": {
-				"permissions": ["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-					"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
-					"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-					"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
-					"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
-					"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.CAMERA\"/>",
-					"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
-					"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-					"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
-					"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-					"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
-					"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
-					"<uses-feature android:name=\"android.hardware.camera\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
-					"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
-				]
-			},
+            "android" : {
+                "permissions" : [
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ]
+            },
             /* ios打包配置 */
-			"ios": {
-
-			},
+            "ios" : {},
             /* SDK配置 */
-			"sdkConfigs": {
-
-			}
-		}
-	},
+            "sdkConfigs" : {}
+        }
+    },
     /* 快应用特有相关 */
-	"quickapp": {
-
-	},
+    "quickapp" : {},
     /* 小程序特有相关 */
-	"mp-weixin": {
-		"appid": "",
-		"setting": {
-			"urlCheck": false
-		},
-		"usingComponents": true
-	},
+    "mp-weixin" : {
+        "appid" : "wx78d5c9d2169503fa",
+        "setting" : {
+            "urlCheck" : false,
+            "minified" : true
+        },
+        "usingComponents" : true,
+        "permission" : {}
+    },
     "mp-alipay" : {
         "usingComponents" : true
     },

+ 53 - 19
pages/auth/index.vue

@@ -9,7 +9,9 @@
 		
 		<view class="margin-top-3">
 			<button type='default' class="refuse" @click="refuseBtn">暂不授权</button>
-			<button type='primary' class="allow" open-type="getUserInfo" @getuserinfo="getUserInfo">允许授权</button>
+			<button type='primary' class="allow" open-type="getUserInfo" @getuserinfo="getUserInfo" v-if="!isAuth">登录授权</button>
+			<button type="primary" class="allow"  open-type="getPhoneNumber"  style="font-size: 12px;"
+			bindgetphonenumber="getPhoneNumber" v-if="isAuth && !isNeedPhone">手机号码授权</button> 
 		</view>
 		
 	</view>
@@ -21,32 +23,63 @@
 		data(){
 			return {
 				iv:'',
-				encryptedData:''
+				encryptedData:'',
+				isNeedPhone:getApp().globalData.user_phone,
+			    isAuth:getApp().globalData.isAuth
 			}
 		},
 		onLoad() {
 		},
 		methods:{
 			getUserInfo(e) {
-				console.log(e);
 				if (e.detail.errMsg == "getUserInfo:ok") {
+					console.log(e)
+					getApp().globalData.user_headUrl = e.detail.userInfo.avatarUrl;
+					getApp().globalData.user_name = e.detail.userInfo.nickName;
 					this.iv = e.detail.iv;
 					this.encryptedData = e.detail.encryptedData;
-					//this.loginUserInfo()
+					this.loginUserInfo()
 				} else {
 					console.log("用户信息授权失败");
-					//getApp().globalData.isAuth = false;
+					getApp().globalData.isAuth = false;
 				}
 			},
+			getPhoneNumber(e){
+				let that = this;
+				 if (e.detail.errMsg == 'getPhoneNumber:user deny') { //用户点击拒绝
+				 that.isNeedPhone = false;
+				} else { //允许授权执行跳转
+				  that.phoneRequest(e.detail.iv, e.detail.encryptedData, app.globalData.sessionKey)    
+				}
+			},
+			phoneRequest(myIv,myEncryptedData,sKey){
+				let that = this;
+				uni.request({
+					url:getApp().globalData.shareUrl, //需要设置为全局
+					method: 'POST',
+					header: {
+						'content-type': 'application/x-www-form-urlencoded'
+					},
+					data: {
+						method: 'getPhoneNumber',
+						timestamp: getApp().globalData.globalTimestamp, //Date.now()
+						uid:getApp().globalData.user_id,
+						sign: md5('getPhoneNumber' + getApp().globalData.globalTimestamp),
+						iv:that.iv,
+						sessionKey:getApp().globalData.session_key,
+						encryptedData:that.encryptedData,
+					},
+					success: res => {
+						console.log(res)
+					} 
+				});
+			},
 			refuseBtn(){
 				uni.navigateBack({
 				});
 			},
 			loginUserInfo(){
 				let that = this;
-				// console.log('inviteId:',getApp().globalData.inviteId)
-				// console.log('session_key:',getApp().globalData.session_key)
-				// console.log('userId:',getApp().globalData.user_id)
 				uni.request({
 					url:getApp().globalData.shareUrl, //需要设置为全局
 					method: 'POST',
@@ -56,25 +89,26 @@
 					data: {
 						method: 'auth',
 						timestamp: getApp().globalData.globalTimestamp, //Date.now()
-						//uid:getApp().globalData.user_id,
+						id:getApp().globalData.user_id,
 						sign: md5('auth' + getApp().globalData.globalTimestamp),
-							//nickname:getApp().globalData.user_name,
-							//headimg:getApp().globalData.user_headUrl,
-						iv:that.iv,
-						session_key:getApp().globalData.session_key,
-						encryptedData:that.encryptedData,
-						invited:getApp().globalData.inviteId
+						nickname:getApp().globalData.user_name,
+						headimg:getApp().globalData.user_headUrl,
+						// iv:that.iv,
+						// session_key:getApp().globalData.session_key,
+						// encryptedData:that.encryptedData,
+						auth_status:1,
+						shangjiid:getApp().globalData.inviteId || getApp().globalData.user_id
 					},
 					success: res => {
 						getApp().globalData.user_id = res.data.msg.id;
 						getApp().globalData.open_id = res.data.msg.openid;
 						getApp().globalData.isAuth = true;
-						getApp().globalData.times = res.data.msg.times;
-						getApp().globalData.total_times = res.data.msg.total_times;
 						getApp().globalData.user_headUrl = res.data.msg.headimg;
 						getApp().globalData.user_name = res.data.msg.name;
-						uni.navigateBack({
-						});
+						getApp().globalData.user_status = res.data.msg.status;
+						getApp().globalData.user_phone = res.data.msg.phone;
+						// uni.navigateBack({
+						// });
 					} 
 				});
 			},

+ 38 - 6
pages/index/index.vue

@@ -66,18 +66,50 @@
 			}
 		},
 		onLoad() {
-          this.getPageInfo();
+          this.loginRequest();
 		  this.getPageProductList();
 		},
 		onShareAppMessage() {
 			console.log(111);
 			  return {
 			      title: '分销小助手',
-			      path:'/pages/index/index?inviteId=' + '111'
+			      path:'/pages/index/index?inviteId=' + getApp().globalData.user_id
 			    }
 		},
 		methods: {
-			 getPageInfo(){ //获取首页面基本信息接口
+			 loginRequest(){
+				 	uni.login({
+				 		success: (res) => {
+				 			uni.request({
+				 				url: getApp().globalData.shareUrl, //需要设置为全局
+				 				method: 'POST',
+				 				header: {
+				 					'content-type': 'application/x-www-form-urlencoded'
+				 				},
+				 				data: {
+				 					method: 'login',
+				 					timestamp: getApp().globalData.globalTimestamp, //Date.now()
+				 					code: res.code,
+				 					sign: md5('login' + getApp().globalData.globalTimestamp)
+				 				},
+				 				success: res => {
+				 					// 通过openid发起会员登录
+									getApp().globalData.user_id = res.data.msg.id;
+									getApp().globalData.open_id = res.data.msg.openid;
+									getApp().globalData.isAuth = res.data.msg.auth_status === '1';
+									getApp().globalData.user_name = res.data.msg.name;
+									getApp().globalData.user_headUrl = res.data.msg.headimg;
+									getApp().globalData.sessionId = res.data.msg.session_key;
+									getApp().globalData.user_phone = res.data.msg.phone;
+									// getApp().globalData.times = res.data.msg.times;
+									// getApp().globalData.total_times = res.data.msg.total_times;
+									this.getPageInfo(res.data.msg.id);
+				 				}
+				 			});
+				 	}
+				 });
+			 },
+			 getPageInfo(uId){ //获取首页面基本信息接口
 				 let that = this;
 				uni.request({
 					url: getApp().globalData.shareUrl, //需要设置为全局
@@ -88,7 +120,7 @@
 					data: {
 						method: 'getHomePageInfo',
 						timestamp: getApp().globalData.globalTimestamp, //Date.now()
-						id: 1,
+						id: uId,
 						sign: md5('getHomePageInfo' + getApp().globalData.globalTimestamp)
 					},
 					success: res => {
@@ -120,7 +152,7 @@
 					}
 				});
 			},
-			goDetail(){
+			 goDetail(){
 				uni.navigateTo({
 					url: '/pages/index/detailPage/index',
 					success: res => {},
@@ -128,7 +160,7 @@
 					complete: () => {}
 				});
 			},
-			copyCode(){
+			 copyCode(){
 				uni.setClipboardData({
 					data:'xxx',
 					success() {

+ 68 - 6
pages/selfCenter/index.vue

@@ -1,11 +1,16 @@
 <template>
 	<view class="content">
 		<view class="selfInfo-box">
-			<view class="self-auth">
-				<image src="../../static/bed-bg.png" mode=""></image>
+			<view>
+				<button type="primary" @click.stop="goAuth" v-if="!isAuth"  class="authUser">点击授权</button>
+			</view>
+			<view class="self-auth" v-if='isAuth'>
+				<image :src="userHead" mode=""></image>
 				<view>
-					<text>棉花糖</text>
-					<text style="margin-left: 30%;font-size: 28rpx;">156****3232</text>
+					<text style="margin-left: 10%;">{{userName}}</text>
+					<text style="margin-left: 10%;font-size: 28rpx;" v-if="isAuthPhone">{{userPhone}} </text>
+					<button type="primary" class="authPhone"  open-type="getPhoneNumber"  style="font-size: 12px;"
+					bindgetphonenumber="getPhoneNumber" v-else>手机号码授权</button> 
 				</view>
 			</view>
 
@@ -83,7 +88,12 @@ export default {
 	},
 	data() {
 		return {
-			title: 'selfCenter'
+			title: 'selfCenter',
+			userName:getApp().globalData.user_name,
+			userHead:getApp().globalData.user_headUrl || '/static/logo.png',
+			userPhone:getApp().globalData.user_phone  || '156****3232',
+			isAuth:getApp().globalData.isAuth,
+			isAuthPhone:getApp().globalData.user_phone
 		}
 	},
 	onLoad() {
@@ -157,7 +167,45 @@ export default {
 	 },
 	 change(e) {
 	 	console.log('是否打开:' + e.show)
-	 }
+	 },
+	 goAuth(){
+		 uni.navigateTo({
+		 	url: '/pages/auth/index',
+		 	success: res => {},
+		 	fail: () => {},
+		 	complete: () => {}
+		 });
+	 },
+	 getPhoneNumber(e){
+	 	let that = this;
+	 	 if (e.detail.errMsg == 'getPhoneNumber:user deny') { //用户点击拒绝
+	 	 that.isNeedPhone = false;
+	 	} else { //允许授权执行跳转
+	 	  that.phoneRequest(e.detail.iv, e.detail.encryptedData, app.globalData.sessionKey)    
+	 	}
+	 },
+	 		phoneRequest(myIv,myEncryptedData,sKey){
+	 	let that = this;
+	 	uni.request({
+	 		url:getApp().globalData.shareUrl, //需要设置为全局
+	 		method: 'POST',
+	 		header: {
+	 			'content-type': 'application/x-www-form-urlencoded'
+	 		},
+	 		data: {
+	 			method: 'getPhoneNumber',
+	 			timestamp: getApp().globalData.globalTimestamp, //Date.now()
+	 			uid:getApp().globalData.user_id,
+	 			sign: md5('getPhoneNumber' + getApp().globalData.globalTimestamp),
+	 			iv:that.iv,
+	 			sessionKey:getApp().globalData.session_key,
+	 			encryptedData:that.encryptedData,
+	 		},
+	 		success: res => {
+	 			console.log(res)
+	 		} 
+	 	});
+	 },
 	}
 }
 </script>
@@ -262,6 +310,20 @@ export default {
 .margin-left5 {
 	margin-left: 5%;
 }
+.authUser {
+	width: 70%;
+	font-size: 14px;
+	background-color: #fff!important;
+	color: #1fa1fb!important;
+}
+.authPhone {
+	font-size: 12px;
+	margin-left: ;
+	margin-left: 10px;
+	margin-top: 5px;
+	background-color: #fff!important;
+	color: #1fa1fb!important;
+}
 /* 提示窗口 */
 .uni-tip {
 	padding: 15px;