123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- /*
- * @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)
- }
|