YingXingAI/pages/login/recognitionResult/recognitionFailed.vue

148 lines
3.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="recognition-result-page">
<u-navbar title="认证结果" :is-back="false"></u-navbar>
<view class="result-container">
<image
:src="isSuccess ? resultSuccess : resultError"
class="result-image"
mode="widthFix"
></image>
<text class="result-text">{{
isSuccess ? "认证通过" : "认证未通过"
}}</text>
</view>
<view class="btn-container">
<button class="next-btn" @click="handleNext">
{{ isSuccess ? "进入系统" : "重新识别" }}
</button>
</view>
</view>
</template>
<script>
import resultSuccess from "@/static/common/img/result-success.png";
import resultError from "@/static/common/img/result-error.png";
export default {
data() {
return {
resultSuccess,
resultError,
isSuccess: false,
verifyResult: null,
verifyInfo: null,
token: null,
};
},
onLoad(options) {
// 获取token参数
if (options && options.token) {
this.token = options.token;
console.log("获取到token:", this.token);
// 使用token查询认证结果
this.queryVerificationResult();
}
},
methods: {
// 查询认证结果
queryVerificationResult() {
if (!this.token) {
console.error("token为空无法查询认证结果");
return;
}
// 调用API查询认证结果
this.$u.api
.getVerifyInfo(this.token)
.then((res) => {})
.catch((err) => {
console.log("API调用过程中出错:", err);
});
},
handleNext() {
if (this.isSuccess) {
uni.switchTab({
url: "/pages/main/index/index",
});
} else {
this.toBaiduApi();
}
},
toBaiduApi() {
this.$u.api.getAPIToken().then((res) => {
const token = res.result.verify_token;
// 跳转到百度人脸核验页面
this.redirectToBaiduVerification(token);
});
},
redirectToBaiduVerification(token) {
// 获取当前域名
const currentDomain = window.location.origin;
// 编码回调URL - 使用相对路径让uni-app处理路由
// 百度人脸核验会在回调URL后附加verify_result和verify_info参数
const successUrl = encodeURIComponent(
`${currentDomain}/#/pages/login/recognitionResult/recognitionResult?token=${token}`
);
const failedUrl = encodeURIComponent(
`${currentDomain}/#/pages/login/recognitionResult/recognitionFailed?token=${token}`
);
// 构建跳转URL
const verifyUrl = `https://brain.baidu.com/face/print/verify/verify?token=${token}&successUrl=${successUrl}&failedUrl=${failedUrl}`;
console.log("跳转到百度人脸核验页面:", verifyUrl);
// 直接跳转到百度人脸核验页面
window.location.href = verifyUrl;
return;
},
},
};
</script>
<style lang="scss">
.recognition-result-page {
padding: 0 24rpx;
.result-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 130rpx 0 36rpx;
text-align: center;
.result-image {
width: 160rpx;
height: 160rpx;
margin-bottom: 36rpx;
}
.result-text {
font-family: PingFang SC, PingFang SC;
font-size: 32rpx;
color: #000;
}
}
.btn-container {
.next-btn {
background-color: #45b5ff;
color: #ffffff;
height: 90rpx;
line-height: 90rpx;
border-radius: 45rpx;
font-size: 32rpx;
font-weight: 500;
border: none;
}
}
}
</style>