diff --git a/pages/index/index.js b/pages/index/index.js index f3c4868..47502b2 100644 --- a/pages/index/index.js +++ b/pages/index/index.js @@ -3414,11 +3414,16 @@ Page({ // 调用服务器验证登录状态 const validateRes = await API.validateUserLogin() + console.log('验证登录状态响应:', validateRes) + console.log('验证登录状态响应完整数据:', JSON.stringify(validateRes)) if (validateRes.success && validateRes.userInfo) { // 服务器返回了用户信息,同步到本地 const app = getApp() const userInfo = validateRes.userInfo + console.log('登录时服务器返回的用户信息:', JSON.stringify(userInfo)) + console.log('登录时是否包含idcardstatus:', 'idcardstatus' in userInfo) + console.log('登录时是否包含reason:', 'reason' in userInfo) // 更新全局用户信息 app.globalData.userInfo = userInfo diff --git a/pages/profile/authentication/index.js b/pages/profile/authentication/index.js index 703dea0..8d6b6c5 100644 --- a/pages/profile/authentication/index.js +++ b/pages/profile/authentication/index.js @@ -15,7 +15,9 @@ Page({ idNumber: '', // 身份证号 address: '', // 居住地址 validStart: '', // 有效期开始 - validEnd: '' // 有效期结束 + validEnd: '', // 有效期结束 + idcardstatus: 0, // 身份证认证状态:0-待审核,1-审核通过,2-审核失败 + reason: '' // 审核失败原因 }, /** @@ -216,18 +218,40 @@ Page({ console.log('认证提交结果:', result); if (result && result.success) { - // 更新本地存储的用户信息 - const userInfo = wx.getStorageSync('userInfo') || {}; - const updatedUserInfo = { - ...userInfo, - idcard1: idcard1Url, - idcard2: idcard2Url, - businesslicenseurl: businessLicenseUrl, - name: this.data.name, - idNumber: this.data.idNumber, - address: this.data.address - }; - wx.setStorageSync('userInfo', updatedUserInfo); + // 认证成功后,获取最新的用户信息,包括认证状态 + API.getUserInfo(openid).then(userInfoRes => { + if (userInfoRes.success && userInfoRes.data) { + const latestUserInfo = userInfoRes.data; + // 更新本地存储的用户信息 + const userInfo = wx.getStorageSync('userInfo') || {}; + const updatedUserInfo = { + ...userInfo, + ...latestUserInfo, + idcard1: idcard1Url, + idcard2: idcard2Url, + businesslicenseurl: businessLicenseUrl, + name: this.data.name, + idNumber: this.data.idNumber, + address: this.data.address + }; + wx.setStorageSync('userInfo', updatedUserInfo); + console.log('认证成功,用户信息已更新,包括认证状态:', updatedUserInfo); + } + }).catch(err => { + console.error('获取最新用户信息失败:', err); + // 即使获取失败,也要更新基本认证信息 + const userInfo = wx.getStorageSync('userInfo') || {}; + const updatedUserInfo = { + ...userInfo, + idcard1: idcard1Url, + idcard2: idcard2Url, + businesslicenseurl: businessLicenseUrl, + name: this.data.name, + idNumber: this.data.idNumber, + address: this.data.address + }; + wx.setStorageSync('userInfo', updatedUserInfo); + }); wx.hideLoading(); wx.showToast({ @@ -310,7 +334,9 @@ Page({ idNumber: userData.idNumber || userData.id_number || '', address: userData.address || '', validStart: userData.validStart || userData.valid_start || '', - validEnd: userData.validEnd || userData.valid_end || '' + validEnd: userData.validEnd || userData.valid_end || '', + idcardstatus: userData.idcardstatus || 0, + reason: userData.reason || userData.reasonforfailure || '' }; // 处理身份证正面图片 diff --git a/pages/profile/authentication/index.wxml b/pages/profile/authentication/index.wxml index 70b8964..8bde99e 100644 --- a/pages/profile/authentication/index.wxml +++ b/pages/profile/authentication/index.wxml @@ -64,6 +64,13 @@ + + + + 审核失败原因 + {{reason}} + + 提交审核 diff --git a/pages/profile/authentication/index.wxss b/pages/profile/authentication/index.wxss index 92133ec..0165e20 100644 --- a/pages/profile/authentication/index.wxss +++ b/pages/profile/authentication/index.wxss @@ -167,6 +167,28 @@ line-height: 1.5; } +/* 审核失败原因 */ +.failure-reason { + background-color: #fff2f0; + border: 2rpx solid #ffccc7; + border-radius: 12rpx; + margin: 20rpx 30rpx; + padding: 24rpx; +} + +.failure-title { + font-size: 28rpx; + font-weight: bold; + color: #ff4d4f; + margin-bottom: 16rpx; +} + +.failure-content { + font-size: 24rpx; + color: #ff4d4f; + line-height: 1.5; +} + /* 认证按钮 */ .auth-btn { background-color: #07c160; diff --git a/pages/profile/index.js b/pages/profile/index.js index b3c1f8d..e9d015c 100644 --- a/pages/profile/index.js +++ b/pages/profile/index.js @@ -290,9 +290,13 @@ Page({ API.getUserInfo(openid).then(res => { console.log('从服务器获取用户信息成功:', res) + console.log('服务器返回的完整数据:', JSON.stringify(res)) if (res.success && res.data) { const serverUserInfo = res.data + console.log('服务器返回的用户信息:', JSON.stringify(serverUserInfo)) + console.log('是否包含idcardstatus:', 'idcardstatus' in serverUserInfo) + console.log('是否包含reason:', 'reason' in serverUserInfo) // 更新本地用户信息 const app = getApp() diff --git a/pages/profile/index.wxml b/pages/profile/index.wxml index b3762cc..5a42402 100644 --- a/pages/profile/index.wxml +++ b/pages/profile/index.wxml @@ -56,9 +56,18 @@ - - 个人认证 - + + + 个人认证 + + 待审核 + 审核通过 + + {{userInfo.reasonforfailure ? '审核失败: ' + userInfo.reasonforfailure : '审核失败'}} + + + + diff --git a/server-example/fix_settlement_fields.sql b/server-example/fix_settlement_fields.sql index a793384..3694ab9 100644 --- a/server-example/fix_settlement_fields.sql +++ b/server-example/fix_settlement_fields.sql @@ -88,6 +88,16 @@ IF NOT EXISTS ( ALTER TABLE users ADD COLUMN reasonforfailure TEXT COMMENT '审核失败原因' AFTER partnerstatus; END IF; +-- 检查 idcardstatus 字段(身份证认证状态) +IF NOT EXISTS ( + SELECT * FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = 'wechat_app' + AND TABLE_NAME = 'users' + AND COLUMN_NAME = 'idcardstatus' +) THEN + ALTER TABLE users ADD COLUMN idcardstatus INT DEFAULT 0 COMMENT '身份证认证状态(0:待审核,1:审核通过,2:审核失败)' AFTER reasonforfailure; +END IF; + -- 检查 audit_time 字段(审核时间) IF NOT EXISTS ( SELECT * FROM information_schema.COLUMNS diff --git a/server-example/server-mysql.js b/server-example/server-mysql.js index b210614..dfffffa 100644 --- a/server-example/server-mysql.js +++ b/server-example/server-mysql.js @@ -1199,6 +1199,12 @@ User.init({ partnerstatus: { type: DataTypes.STRING(255) // 合作商状态 }, + // 身份证认证状态字段 + idcardstatus: { + type: DataTypes.INTEGER, // 0: 待审核, 1: 审核通过, 2: 审核失败 + defaultValue: 0, // 默认值为待审核 + comment: '身份证认证状态' + }, // 授权区域字段 - 用于存储用户位置信息 authorized_region: { type: DataTypes.TEXT // 存储用户位置信息的JSON字符串 @@ -2468,7 +2474,7 @@ app.post('/api/user/validate', async (req, res) => { // 查找用户 const user = await User.findOne({ where: { openid }, - attributes: ['openid', 'userId', 'name', 'avatarUrl', 'phoneNumber', 'type'] + attributes: ['openid', 'userId', 'name', 'avatarUrl', 'phoneNumber', 'type', 'partnerstatus', 'reasonforfailure', 'idcardstatus'] }); if (!user) {