zpj 1 месяц назад
Родитель
Сommit
51f44f465e
4 измененных файлов с 93 добавлено и 19 удалено
  1. 7 0
      http/member.js
  2. 65 0
      md/member.md
  3. 20 17
      pages/index.vue
  4. 1 2
      service/tools.js

+ 7 - 0
http/member.js

@@ -0,0 +1,7 @@
+import { request } from './ajax.js'
+
+const newsUrl = '/api/member/'
+
+
+// 扫码查询收款码信息
+export const memberLogin = (data) => request(newsUrl + 'login', 'get', { ...data }, true)

+ 65 - 0
md/member.md

@@ -0,0 +1,65 @@
+# api/member
+
+> 统一响应格式:`{"code": 1, "message": "success", "data": ...}`,下文「响应参数」均指 `data` 字段。
+
+## 接口总览
+
+| # | 方法 | 路径 | 说明 | 认证 |
+|---|---|---|---|---|
+| 1 | GET | `/api/member/login` | 微信授权登录注册(纯微信入口,无手机号/验证码) | 否 |
+| 2 | GET | `/api/member/phone_login` | 手机号验证码登录注册(无微信授权) | 否 |
+
+---
+
+## 接口详情
+
+### 1. GET `/api/member/login`
+
+- **说明**: 微信授权登录注册(纯微信入口,无手机号/验证码)
+- **认证**: 否
+- **Handler**: `api.MemberController{}.AppletLogin`
+
+**请求参数**
+
+| 字段 | 类型 | 必填 | 说明 | 约束 |
+|---|---|---|---|---|
+| `code` | string | 是 | 临时登录凭证 | - |
+| `wx_type` | string | 是 | 来源类型 | 来源类型:1:微信H5,2:微信小程序 |
+| `invite_code` | string | 否 | 推荐码 | - |
+
+**响应参数**
+
+object,类型 `service.LoginData`:
+
+| 字段 | 类型 | 说明 |
+|---|---|---|
+| `m_id` | int | MId |
+| `token` | string | Token |
+
+---
+
+### 2. GET `/api/member/phone_login`
+
+- **说明**: 手机号验证码登录注册(无微信授权)
+- **认证**: 否
+- **Handler**: `api.MemberController{}.PhoneLogin`
+
+**请求参数**
+
+| 字段 | 类型 | 必填 | 说明 | 约束 |
+|---|---|---|---|---|
+| `phone` | string | 是 | 手机号 | len=11 |
+| `code` | string | 是 | 验证码 | - |
+| `invite_code` | string | 否 | 推荐码 | - |
+
+**响应参数**
+
+object,类型 `service.LoginData`:
+
+| 字段 | 类型 | 说明 |
+|---|---|---|
+| `m_id` | int | MId |
+| `token` | string | Token |
+
+---
+

+ 20 - 17
pages/index.vue

@@ -29,12 +29,9 @@
 </template>
 
 <script>
-	import {
-		payImgInfo,payPay
-	} from '@/http/shop_order.js'
-
+	import {payImgInfo,payPay} from '@/http/shop_order.js';
+	import {memberLogin} from '@/http/member.js';
 	import tools from "@/service/tools.js";
-
 	import {
 		getPhoneTopHeight,
 		getNavHeight,
@@ -57,6 +54,8 @@
 
 				code_type: 1,
 				shop_code: '',
+				m_id:'',
+				token:'',
 			}
 		},
 
@@ -85,12 +84,12 @@
 						code: queryObj.code,
 						wx_type: 1,
 					}
-					// await getUserInfo(from).then(async (res) => {
-					// 	if (res.code === 1) {
-							// uni.setStorageSync('m_id')
-							// uni.setStorageSync('token')
-					// 	}
-					// })
+					memberLogin(from).then((res)=>{
+						if (res.code == 1) {
+							uni.setStorageSync('m_id',res.data.m_id)
+							uni.setStorageSync('token',res.data.token)
+						}
+					})
 				} else {
 					// 认证失败
 					tools.wxLogin();
@@ -98,9 +97,9 @@
 				
 			}
 			
-			if(isWeiXin){
-				tools.wxInitialize(["chooseWXPay"]);
-			}
+			// if(isWeiXin){
+			// 	tools.wxInitialize(["chooseWXPay"]);
+			// }
 			// #endif
 
 			this.headH = getNavHeight();
@@ -117,6 +116,7 @@
 				return
 			}
 			
+			
 			payImgInfo({
 				code: this.shop_code
 			}).then((res) => {
@@ -172,7 +172,9 @@
 					m_id:uni.getStorageSync('m_id')?uni.getStorageSync('m_id'):0,
 					token:uni.getStorageSync('token')?uni.getStorageSync('token'):''
 				}).then((res) => {
-
+					console.log(res);
+					return
+					
 					if (res.code === 1) {
 
 						this.order_id = res.data.order_id
@@ -180,8 +182,8 @@
 						if (res.data.is_bank == 0 && res.data.is_yee == 1) {
 							if (pay_type === 1) {
 								this.isAJAX = false
-								if (res.data.wx_pay) {
-									this.weiXinPayH5(res.data.wx_pay);
+								if (res.data.pay_data) {
+									this.weiXinPayH5(res.data.pay_data);
 								} else {
 									tools.error("支付生成失败");
 								}
@@ -206,6 +208,7 @@
 			async weiXinPayH5(wxPayData) {
 				const res = await tools.weiXinPay(wxPayData);
 				if (res) {
+					console.log(res);
 					this.payOk(wxPayData.rs_sn);
 				}
 			},

+ 1 - 2
service/tools.js

@@ -165,8 +165,7 @@ tools.weiXinPay = function(data) {
 	return new Promise((resolve, reject) => {
 		wxJs.chooseWXPay({
 			appId: data.appId, // 必填,公众号的唯一标识
-			timestamp: data
-				.timeStamp, // 支付签名时间戳,注意微信 jssdk 中的所有使用 timestamp 字段均为小写。但最新版的支付后台生成签名使用的 timeStamp 字段名需大写其中的 S 字符
+			timestamp: data.timeStamp, // 支付签名时间戳,注意微信 jssdk 中的所有使用 timestamp 字段均为小写。但最新版的支付后台生成签名使用的 timeStamp 字段名需大写其中的 S 字符
 			nonceStr: data.nonceStr, // 支付签名随机串,不长于 32 位
 			package: data.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)
 			signType: data.signType, // 微信支付V3的传入 RSA ,微信支付V2的传入格式与V2统一下单的签名格式保持一致