# alien-store-platform Web端商户平台 - 身份验证接口配置说明 ## 接口说明 本次开发在 `alien-store-platform` 服务中新增了商户身份信息验证接口,复用了 `alien-store` 服务中的支付宝身份验证业务逻辑。 ### 接口地址 ``` GET /merchantAuth/verifyIdInfo ``` ### 请求参数 | 参数名 | 类型 | 必填 | 说明 | 默认值 | |--------|------|------|------|--------| | name | String | 是 | 姓名 | - | | idCard | String | 是 | 身份证号 | - | | appType | Integer | 是 | 端区分(0:用户, 1:商家) | 1 | ### 请求示例 ```http GET /merchantAuth/verifyIdInfo?name=张三&idCard=440123199001011234&appType=1 ``` ### 响应示例 **成功响应:** ```json { "code": 200, "success": true, "msg": "身份验证成功", "data": "身份验证成功" } ``` **失败响应:** ```json { "code": 500, "success": false, "msg": "该身份证已实名认证过", "data": null } ``` 或 ```json { "code": 500, "success": false, "msg": "身份证号与姓名不一致,请检查后重新填写", "data": null } ``` ## 业务逻辑说明 1. **身份证重复校验**:根据 `appType` 参数判断查询用户表(`life_user`)或商家表(`store_user`),检查该身份证和姓名是否已实名认证 2. **支付宝身份验证**:调用支付宝二要素核验接口,验证身份证号与姓名是否一致 3. **返回验证结果**:根据验证结果返回相应的成功或失败信息 ## Nacos 配置要求 在 Nacos 配置中心的 `alien-store-platform.yml` 配置文件中,需要添加以下支付宝相关配置: ```yaml # 支付宝商家端配置 app: business: # 商家端应用ID appId: your_app_id_here # 商家端应用私钥 appPrivateKey: your_private_key_here # 商家端应用公钥 appPublicKey: your_public_key_here # Windows环境证书路径 win: # 应用公钥证书文件路径 appCertPath: D:/path/to/appCertPublicKey.crt # 支付宝公钥证书文件路径 alipayPublicCertPath: D:/path/to/alipayCertPublicKey_RSA2.crt # 支付宝根证书文件路径 alipayRootCertPath: D:/path/to/alipayRootCert.crt # Linux环境证书路径 linux: # 应用公钥证书文件路径 appCertPath: /path/to/appCertPublicKey.crt # 支付宝公钥证书文件路径 alipayPublicCertPath: /path/to/alipayCertPublicKey_RSA2.crt # 支付宝根证书文件路径 alipayRootCertPath: /path/to/alipayRootCert.crt ``` **注意事项:** - 配置值需要从 `alien-store` 服务的 Nacos 配置中获取,确保使用相同的支付宝账号配置 - 证书文件需要上传到服务器对应的路径 - Windows 和 Linux 环境的证书路径需要分别配置 ## 代码结构 ### 新增文件列表 ``` alien-store-platform/ ├── src/main/java/shop/alien/storeplatform/ │ ├── controller/ │ │ └── MerchantAuthController.java # 商户身份验证控制器 │ ├── service/ │ │ ├── MerchantAuthService.java # 商户身份验证服务接口 │ │ └── impl/ │ │ └── MerchantAuthServiceImpl.java # 商户身份验证服务实现 │ └── util/ │ └── AliApiUtil.java # 支付宝API工具类 ``` ### 核心类说明 1. **MerchantAuthController**:Web端商户身份验证管理控制器 - 提供 `/merchantAuth/verifyIdInfo` 接口 - 参数校验和日志记录 2. **MerchantAuthService & MerchantAuthServiceImpl**:商户身份验证服务 - 实现身份证重复校验逻辑 - 调用支付宝验证接口 - 处理返回结果 3. **AliApiUtil**:支付宝API工具类 - 封装支付宝身份证二要素核验接口 - 支持Windows和Linux环境自适应 - 订单号生成等公共方法 ## 技术栈 - Spring Boot 2.3.2.RELEASE - MyBatis-Plus 3.2.0 - 支付宝 SDK - Swagger 2.9.2 ## 测试访问 启动服务后,可通过以下方式访问: 1. **Swagger UI**:`http://localhost:{port}/doc.html` 2. **直接调用**:`http://localhost:{port}/merchantAuth/verifyIdInfo?name=xxx&idCard=xxx&appType=1` ## 注意事项 1. 确保 Nacos 配置中心已添加必要的支付宝配置 2. 确保支付宝证书文件已上传到指定路径 3. 接口调用时需要传递正确的 `appType` 参数 4. 身份证号和姓名必须真实有效才能通过支付宝验证