Files
danyang-match/miniapp/services/verificationService.js
T

34 lines
1.2 KiB
JavaScript
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.
/**
* 实名认证服务(API_INVENTORY 行 30-31)
*
* 封装提交与查询两个端点。
* 提交走 POST + 幂等键(同一身份证不可重复提交)。
* 身份证号等敏感字段由 stores/userStore 在收集阶段加密传输,本层不缓存明文。
*/
const api = require('../utils/api');
/**
* 提交实名认证(API_INVENTORY 行 30)
* @param {{ realName: string, idCardNumber: string, faceImageUrl?: string }} payload
* @returns {Promise<{ submitted: true, status: 'pending' }>}
*/
function submit(payload) {
// 幂等键:身份证号后4位 + 当前秒,避免用户多次点击
const tail = (payload.idCardNumber || '').slice(-4).toUpperCase();
const idempotencyKey = 'verification-submit:' + tail + ':' + Math.floor(Date.now() / 1000);
return api.post('/verification/submit', payload, undefined, idempotencyKey);
}
/**
* 查询认证状态(API_INVENTORY 行 31)
* @returns {Promise<{ status: 'not_submitted'|'pending'|'approved'|'rejected', rejectReason?: string, submittedAt?: number, reviewedAt?: number }>}
*/
function getStatus() {
return api.get('/verification/status');
}
module.exports = {
submit,
getStatus,
};