/* * @Descripttion:实名认证 * @version: * @Author: Neo,Huang * @Date: 2021-04-17 11:04:16 * @LastEditors: Neo,Huang * @LastEditTime: 2021-05-10 15:52:40 */ package nppa import ( "fmt" "log" "box-3rdServer/utils" "github.com/bitly/go-simplejson" ) type NppaInfo struct { Ai string `json:"ai,omitempty"` Name string `json:"name,omitempty"` IdNum string `json:"idNum,omitempty"` Status int `json:"status,omitempty"` // -1 未认证 0 认证成功 1 认证中 2 认证失败 Pi string `json:"pi,omitempty"` } // 公安部实名认证 - 校验 func NppaCheckPlayerId(chn int, ai string, name string, idNum string) map[string]interface{} { ret := make(map[string]interface{}) ret["code"] = 400 // 参数错误 if name == "" || idNum == "" { log.Println("NppaCheckPlayerId 参数错误") // 未响应 ret["msg"] = "参数错误" return ret } mapHead := ConfGetInfoByChannel(chn) if mapHead == nil { ret["code"] = 200 ret["status"] = 0 // 未响应 ret["msg"] = "配置错误" return ret } mapBody := make(map[string]interface{}) mapBody["ai"] = ai mapBody["name"] = name mapBody["idNum"] = idNum body := MakeRequestBody(mapBody, mapHead["secretKey"]) sign := MakeRequestSign(mapHead, nil, body) mapHead["sign"] = sign buff, _ := Send2Nppa("POST", utils.GetKeyConf("nppa", "host_check"), mapHead, nil, body) j, err := simplejson.NewJson(buff) if err != nil { log.Println("NppaCheckPlayerId err", err) // 未响应 ret["msg"] = "未响应" return ret } code, _ := j.Get("errcode").Int() if code == 0 { ret["code"] = 200 ret["status"], _ = j.Get("data").Get("result").Get("status").Int() if ret["status"] == 0 { ret["pi"], _ = j.Get("data").Get("result").Get("pi").String() } } else { log.Println(fmt.Sprintf("NppaCheckPlayerId chn[%d] ai[%s] name[%s] idNum[%s] ret[%v]", chn, ai, name, idNum, j)) if code == 2001 || code == 2002 || code == 2003 || code == 2004 { ret["code"] = 200 ret["status"] = 2 // 这几种情况默认认证失败 } } ret["msg"], _ = j.Get("errmsg").String() return ret } // 公安部实名认证 - 查询结果 func NppaQueryPlayerId(uid string, chn int) map[string]interface{} { ret := make(map[string]interface{}) ret["code"] = 400 mapHead := ConfGetInfoByChannel(chn) if mapHead == nil { ret["code"] = 200 ret["status"] = 0 // 未响应 ret["msg"] = "配置错误" return ret } mapParam := make(map[string]string) mapParam["ai"] = uid sign := MakeRequestSign(mapHead, mapParam, "") mapHead["sign"] = sign buff, _ := Send2Nppa("GET", utils.GetKeyConf("nppa", "host_query"), mapHead, mapParam, "") j, err := simplejson.NewJson(buff) if err != nil { log.Println("NppaQueryPlayerId err", err) // 未响应 ret["msg"] = "未响应" return ret } code, _ := j.Get("errcode").Int() if code == 0 { ret["code"] = 200 ret["status"], _ = j.Get("data").Get("result").Get("status").Int() if ret["status"] == 0 { ret["pi"], _ = j.Get("data").Get("result").Get("pi").String() } } else { log.Println(fmt.Sprintf("NppaQueryPlayerId chn[%d] uid[%s] ret[%v]", chn, uid, j)) if code == 2001 || code == 2002 || code == 2003 || code == 2004 { ret["code"] = 200 ret["status"] = 2 // 这几种情况默认认证失败 } } ret["msg"], _ = j.Get("errmsg").String() return ret } // 实名认证 - 校验 func CheckPlayerId(uid int, chn int, name string, idNum string) map[string]interface{} { ret := make(map[string]interface{}) ret["code"] = 400 if uid < 1000000 { log.Println("参数错误 uid") ret["msg"] = "参数错误 uid" return ret } if name == "" { log.Println("参数错误 name uid:", uid) ret["msg"] = "缺少参数 name" return ret } if idNum == "" { log.Println("参数错误 idNum") ret["msg"] = "缺少参数 idNum" return ret } return NppaCheckPlayerId(chn, fmt.Sprintf("%032d", uid), name, idNum) } // 实名认证 - 查询 func QueryPlayerId(uid int, chn int) map[string]interface{} { ret := make(map[string]interface{}) ret["code"] = 400 if uid < 1000000 { log.Println("参数错误 uid") ret["msg"] = "参数错误 uid" return ret } return NppaQueryPlayerId(fmt.Sprintf("%032d", uid), chn) }