This commit is contained in:
Mrx
2026-01-23 19:05:57 +08:00
parent da1eef618e
commit bce7ba9ef4

View File

@@ -32,53 +32,81 @@ func ProcessYYSYBE08Request(ctx context.Context, params []byte, deps *processors
apiPath := "/v4/id_card/check" apiPath := "/v4/id_card/check"
respBytes, err := deps.ShumaiService.CallAPIForm(ctx, apiPath, reqFormData) respBytes, err := deps.ShumaiService.CallAPIForm(ctx, apiPath, reqFormData)
if err != nil { if err != nil {
// 处理错误响应 // 处理错误响应 - 转换为目标格式
var errorCode int errorMsg := err.Error()
var errorMsg string if errorMsg == "" {
// 构建错误响应 errorMsg = "请求失败"
errorResponse := map[string]interface{}{ }
"msg": errorMsg, errorResponse := map[string]interface{}{
"success": false, "ctidRequest": map[string]interface{}{
"code": errorCode, "ctidAuth": map[string]interface{}{
"data": map[string]interface{}{}, "idCard": paramsDto.IDCard,
"name": paramsDto.Name,
"resultCode": "5XXX",
"resultMsg": errorMsg,
"verifyResult": "",
},
},
} }
return json.Marshal(errorResponse) return json.Marshal(errorResponse)
} }
// 解析数脉响应数据 // 解析数脉响应数据 - 先解析外层结构
var shumaiData struct { var shumaiResp struct {
Code int `json:"code"`
Msg string `json:"msg"`
Message string `json:"message"`
Data struct {
Result int `json:"result"` Result int `json:"result"`
OrderNo string `json:"order_no"` OrderNo string `json:"order_no"`
Desc string `json:"desc"` Desc string `json:"desc"`
Sex string `json:"sex"` Sex string `json:"sex"`
Birthday string `json:"birthday"` Birthday string `json:"birthday"`
Address string `json:"address"` Address string `json:"address"`
} `json:"data"`
} }
if err := json.Unmarshal(respBytes, &shumaiData); err != nil { if err := json.Unmarshal(respBytes, &shumaiResp); err != nil {
// 解析失败,返回系统错误 // 解析失败,返回系统错误 - 转换为目标格式
errorResponse := map[string]interface{}{ errorResponse := map[string]interface{}{
"msg": "响应解析失败", "ctidRequest": map[string]interface{}{
"success": false, "ctidAuth": map[string]interface{}{
"code": 500, "idCard": paramsDto.IDCard,
"data": map[string]interface{}{}, "name": paramsDto.Name,
"resultCode": "500",
"resultMsg": "响应解析失败",
"verifyResult": "",
},
},
} }
return json.Marshal(errorResponse) return json.Marshal(errorResponse)
} }
// 构建成功响应 // 根据 verifyResult (desc) 设置 resultCode
// 0XXX: 一致, 5XXX: 不一致
resultCode := "5XXX" // 默认为不一致
if shumaiResp.Data.Desc == "一致" {
resultCode = "0XXX"
}
resultMsg := shumaiResp.Msg
if resultMsg == "" {
resultMsg = shumaiResp.Message
}
if resultMsg == "" {
resultMsg = "成功"
}
// 构建目标格式的响应
response := map[string]interface{}{ response := map[string]interface{}{
"msg": "成功", "ctidRequest": map[string]interface{}{
"success": true, "ctidAuth": map[string]interface{}{
"code": 200, "idCard": paramsDto.IDCard,
"data": map[string]interface{}{ "name": paramsDto.Name,
"result": shumaiData.Result, "resultCode": resultCode,
"order_no": shumaiData.OrderNo, "resultMsg": resultMsg,
"desc": shumaiData.Desc, "verifyResult": shumaiResp.Data.Desc,
"sex": shumaiData.Sex, },
"birthday": shumaiData.Birthday,
"address": shumaiData.Address,
}, },
} }