276 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			276 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|  | # 认证流程API说明
 | |||
|  | 
 | |||
|  | ## 概述
 | |||
|  | 
 | |||
|  | 认证流程已简化为6个主要状态,系统会自动处理认证申请的创建和完成,用户无需手动调用相关接口。 | |||
|  | 
 | |||
|  | ## 认证状态
 | |||
|  | 
 | |||
|  | 1. **待认证** (`pending`) - 用户尚未开始认证流程 | |||
|  | 2. **已提交企业信息** (`info_submitted`) - 用户已提交企业信息 | |||
|  | 3. **已企业认证** (`enterprise_verified`) - 企业信息已通过认证 | |||
|  | 4. **已申请合同** (`contract_applied`) - 已申请e签宝生成合同 | |||
|  | 5. **已签署合同** (`contract_signed`) - 合同已签署完成 | |||
|  | 6. **认证完成** (`completed`) - 认证流程全部完成 | |||
|  | 
 | |||
|  | ## API接口
 | |||
|  | 
 | |||
|  | ### 1. 获取认证状态
 | |||
|  | ``` | |||
|  | GET /api/certification/status | |||
|  | ``` | |||
|  | 获取当前用户的认证状态信息。 | |||
|  | 
 | |||
|  | **响应示例:** | |||
|  | ```json | |||
|  | { | |||
|  |   "code": 200, | |||
|  |   "message": "获取认证状态成功", | |||
|  |   "data": { | |||
|  |     "id": "cert_123", | |||
|  |     "user_id": "user_456", | |||
|  |     "status": "info_submitted", | |||
|  |     "status_name": "已提交企业信息", | |||
|  |     "progress": 33, | |||
|  |     "is_user_action_required": false, | |||
|  |     "info_submitted_at": "2024-01-01T10:00:00Z", | |||
|  |     "enterprise_verified_at": null, | |||
|  |     "contract_applied_at": null, | |||
|  |     "contract_signed_at": null, | |||
|  |     "completed_at": null, | |||
|  |     "contract_url": "", | |||
|  |     "created_at": "2024-01-01T09:00:00Z", | |||
|  |     "updated_at": "2024-01-01T10:00:00Z" | |||
|  |   } | |||
|  | } | |||
|  | ``` | |||
|  | 
 | |||
|  | ### 2. 获取认证详情
 | |||
|  | ``` | |||
|  | GET /api/certification/details | |||
|  | ``` | |||
|  | 获取当前用户的详细认证信息,包括企业信息。 | |||
|  | 
 | |||
|  | **响应示例:** | |||
|  | ```json | |||
|  | { | |||
|  |   "code": 200, | |||
|  |   "message": "获取认证详情成功", | |||
|  |   "data": { | |||
|  |     "id": "cert_123", | |||
|  |     "user_id": "user_456", | |||
|  |     "status": "enterprise_verified", | |||
|  |     "status_name": "已企业认证", | |||
|  |     "progress": 66, | |||
|  |     "is_user_action_required": true, | |||
|  |     "info_submitted_at": "2024-01-01T10:00:00Z", | |||
|  |     "enterprise_verified_at": "2024-01-01T11:00:00Z", | |||
|  |     "contract_applied_at": null, | |||
|  |     "contract_signed_at": null, | |||
|  |     "completed_at": null, | |||
|  |     "contract_url": "", | |||
|  |     "created_at": "2024-01-01T09:00:00Z", | |||
|  |     "updated_at": "2024-01-01T11:00:00Z", | |||
|  |     "enterprise": { | |||
|  |       "id": "ent_789", | |||
|  |       "company_name": "示例企业有限公司", | |||
|  |       "unified_social_code": "91110000123456789X", | |||
|  |       "legal_person_name": "张三", | |||
|  |       "legal_person_id": "110101199001011234", | |||
|  |       "is_ocr_verified": true, | |||
|  |       "is_face_verified": true, | |||
|  |       "created_at": "2024-01-01T10:00:00Z", | |||
|  |       "updated_at": "2024-01-01T10:00:00Z" | |||
|  |     } | |||
|  |   } | |||
|  | } | |||
|  | ``` | |||
|  | 
 | |||
|  | ### 3. 获取认证进度
 | |||
|  | ``` | |||
|  | GET /api/certification/progress | |||
|  | ``` | |||
|  | 获取当前用户的认证进度信息。 | |||
|  | 
 | |||
|  | **响应示例:** | |||
|  | ```json | |||
|  | { | |||
|  |   "code": 200, | |||
|  |   "message": "获取认证进度成功", | |||
|  |   "data": { | |||
|  |     "certification_id": "cert_123", | |||
|  |     "user_id": "user_456", | |||
|  |     "current_status": "contract_signed", | |||
|  |     "status_name": "已签署合同", | |||
|  |     "progress_percentage": 100, | |||
|  |     "is_user_action_required": false, | |||
|  |     "next_valid_statuses": ["completed"], | |||
|  |     "message": "合同签署完成,认证流程结束", | |||
|  |     "created_at": "2024-01-01T09:00:00Z", | |||
|  |     "updated_at": "2024-01-01T12:00:00Z" | |||
|  |   } | |||
|  | } | |||
|  | ``` | |||
|  | 
 | |||
|  | ### 4. 提交企业信息
 | |||
|  | ``` | |||
|  | POST /api/certification/submit-enterprise-info | |||
|  | ``` | |||
|  | 提交企业信息。如果用户没有认证申请,系统会自动创建。 | |||
|  | 
 | |||
|  | **请求参数:** | |||
|  | ```json | |||
|  | { | |||
|  |   "company_name": "示例企业有限公司", | |||
|  |   "unified_social_code": "91110000123456789X", | |||
|  |   "legal_person_name": "张三", | |||
|  |   "legal_person_id": "110101199001011234" | |||
|  | } | |||
|  | ``` | |||
|  | 
 | |||
|  | **响应示例:** | |||
|  | ```json | |||
|  | { | |||
|  |   "code": 200, | |||
|  |   "message": "企业信息提交成功", | |||
|  |   "data": { | |||
|  |     "id": "ent_789", | |||
|  |     "company_name": "示例企业有限公司", | |||
|  |     "unified_social_code": "91110000123456789X", | |||
|  |     "legal_person_name": "张三", | |||
|  |     "legal_person_id": "110101199001011234", | |||
|  |     "is_ocr_verified": false, | |||
|  |     "is_face_verified": false, | |||
|  |     "created_at": "2024-01-01T10:00:00Z", | |||
|  |     "updated_at": "2024-01-01T10:00:00Z" | |||
|  |   } | |||
|  | } | |||
|  | ``` | |||
|  | 
 | |||
|  | ### 5. 企业认证
 | |||
|  | ``` | |||
|  | POST /api/certification/enterprise-verify | |||
|  | ``` | |||
|  | 执行企业认证流程。 | |||
|  | 
 | |||
|  | **响应示例:** | |||
|  | ```json | |||
|  | { | |||
|  |   "code": 200, | |||
|  |   "message": "企业认证成功", | |||
|  |   "data": { | |||
|  |     "id": "cert_123", | |||
|  |     "user_id": "user_456", | |||
|  |     "status": "enterprise_verified", | |||
|  |     "status_name": "已企业认证", | |||
|  |     "progress": 66, | |||
|  |     "is_user_action_required": true, | |||
|  |     "info_submitted_at": "2024-01-01T10:00:00Z", | |||
|  |     "enterprise_verified_at": "2024-01-01T11:00:00Z", | |||
|  |     "contract_applied_at": null, | |||
|  |     "contract_signed_at": null, | |||
|  |     "completed_at": null, | |||
|  |     "contract_url": "", | |||
|  |     "created_at": "2024-01-01T09:00:00Z", | |||
|  |     "updated_at": "2024-01-01T11:00:00Z" | |||
|  |   } | |||
|  | } | |||
|  | ``` | |||
|  | 
 | |||
|  | ### 6. 申请合同
 | |||
|  | ``` | |||
|  | POST /api/certification/apply-contract | |||
|  | ``` | |||
|  | 申请e签宝生成合同文件。 | |||
|  | 
 | |||
|  | **响应示例:** | |||
|  | ```json | |||
|  | { | |||
|  |   "code": 200, | |||
|  |   "message": "合同申请成功", | |||
|  |   "data": { | |||
|  |     "id": "cert_123", | |||
|  |     "user_id": "user_456", | |||
|  |     "status": "contract_applied", | |||
|  |     "status_name": "已申请合同", | |||
|  |     "progress": 83, | |||
|  |     "is_user_action_required": true, | |||
|  |     "info_submitted_at": "2024-01-01T10:00:00Z", | |||
|  |     "enterprise_verified_at": "2024-01-01T11:00:00Z", | |||
|  |     "contract_applied_at": "2024-01-01T12:00:00Z", | |||
|  |     "contract_signed_at": null, | |||
|  |     "completed_at": null, | |||
|  |     "contract_url": "", | |||
|  |     "created_at": "2024-01-01T09:00:00Z", | |||
|  |     "updated_at": "2024-01-01T12:00:00Z" | |||
|  |   } | |||
|  | } | |||
|  | ``` | |||
|  | 
 | |||
|  | ### 7. 完成合同签署
 | |||
|  | ``` | |||
|  | POST /api/certification/complete-contract-sign | |||
|  | ``` | |||
|  | 完成合同签署。系统会自动判断是否完成认证。 | |||
|  | 
 | |||
|  | **请求参数:** | |||
|  | ```json | |||
|  | { | |||
|  |   "contract_url": "https://esign.example.com/contract/123" | |||
|  | } | |||
|  | ``` | |||
|  | 
 | |||
|  | **响应示例:** | |||
|  | ```json | |||
|  | { | |||
|  |   "code": 200, | |||
|  |   "message": "合同签署完成", | |||
|  |   "data": null | |||
|  | } | |||
|  | ``` | |||
|  | 
 | |||
|  | ## 流程说明
 | |||
|  | 
 | |||
|  | ### 自动处理逻辑
 | |||
|  | 
 | |||
|  | 1. **自动创建认证申请**:当用户首次提交企业信息时,如果用户没有认证申请,系统会自动创建一个认证申请。 | |||
|  | 
 | |||
|  | 2. **自动完成认证**:当合同签署完成后,系统会自动将认证状态更新为"认证完成"。 | |||
|  | 
 | |||
|  | 3. **企业信息创建**:企业信息在企业认证成功时自动创建,用户无需手动创建。 | |||
|  | 
 | |||
|  | ### 状态转换规则
 | |||
|  | 
 | |||
|  | - **待认证** → **已提交企业信息**:提交企业信息 | |||
|  | - **已提交企业信息** → **已企业认证**:企业认证成功 | |||
|  | - **已企业认证** → **已申请合同**:申请合同 | |||
|  | - **已申请合同** → **已签署合同**:合同签署完成 | |||
|  | - **已签署合同** → **认证完成**:自动完成 | |||
|  | 
 | |||
|  | ### 进度百分比
 | |||
|  | 
 | |||
|  | - 待认证:0% | |||
|  | - 已提交企业信息:33% | |||
|  | - 已企业认证:66% | |||
|  | - 已申请合同:83% | |||
|  | - 已签署合同:100% | |||
|  | - 认证完成:100% | |||
|  | 
 | |||
|  | ## 错误处理
 | |||
|  | 
 | |||
|  | 所有接口都会返回统一的错误格式: | |||
|  | 
 | |||
|  | ```json | |||
|  | { | |||
|  |   "code": 400, | |||
|  |   "message": "错误描述信息", | |||
|  |   "data": null | |||
|  | } | |||
|  | ``` | |||
|  | 
 | |||
|  | 常见错误: | |||
|  | - `用户未登录`:JWT token无效或过期 | |||
|  | - `用户已有企业信息`:用户已存在企业信息 | |||
|  | - `统一社会信用代码已存在`:该企业已被其他用户认证 | |||
|  | - `当前状态不允许企业认证`:状态转换不合法 | |||
|  | - `用户尚未创建认证申请`:用户没有认证申请(通常不会出现,因为会自动创建)  |