realname.go 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. /*
  2. * @Descripttion:实名认证
  3. * @version:
  4. * @Author: Neo,Huang
  5. * @Date: 2021-04-17 11:04:16
  6. * @LastEditors: Neo,Huang
  7. * @LastEditTime: 2021-05-10 15:52:40
  8. */
  9. package nppa
  10. import (
  11. "fmt"
  12. "log"
  13. "box-3rdServer/utils"
  14. "github.com/bitly/go-simplejson"
  15. )
  16. type NppaInfo struct {
  17. Ai string `json:"ai,omitempty"`
  18. Name string `json:"name,omitempty"`
  19. IdNum string `json:"idNum,omitempty"`
  20. Status int `json:"status,omitempty"` // -1 未认证 0 认证成功 1 认证中 2 认证失败
  21. Pi string `json:"pi,omitempty"`
  22. }
  23. // 公安部实名认证 - 校验
  24. func NppaCheckPlayerId(chn int, ai string, name string, idNum string) map[string]interface{} {
  25. ret := make(map[string]interface{})
  26. ret["code"] = 400
  27. // 参数错误
  28. if name == "" || idNum == "" {
  29. log.Println("NppaCheckPlayerId 参数错误")
  30. // 未响应
  31. ret["msg"] = "参数错误"
  32. return ret
  33. }
  34. mapHead := ConfGetInfoByChannel(chn)
  35. if mapHead == nil {
  36. ret["code"] = 200
  37. ret["status"] = 0
  38. // 未响应
  39. ret["msg"] = "配置错误"
  40. return ret
  41. }
  42. mapBody := make(map[string]interface{})
  43. mapBody["ai"] = ai
  44. mapBody["name"] = name
  45. mapBody["idNum"] = idNum
  46. body := MakeRequestBody(mapBody, mapHead["secretKey"])
  47. sign := MakeRequestSign(mapHead, nil, body)
  48. mapHead["sign"] = sign
  49. buff, _ := Send2Nppa("POST", utils.GetKeyConf("nppa", "host_check"), mapHead, nil, body)
  50. j, err := simplejson.NewJson(buff)
  51. if err != nil {
  52. log.Println("NppaCheckPlayerId err", err)
  53. // 未响应
  54. ret["msg"] = "未响应"
  55. return ret
  56. }
  57. code, _ := j.Get("errcode").Int()
  58. if code == 0 {
  59. ret["code"] = 200
  60. ret["status"], _ = j.Get("data").Get("result").Get("status").Int()
  61. if ret["status"] == 0 {
  62. ret["pi"], _ = j.Get("data").Get("result").Get("pi").String()
  63. }
  64. } else {
  65. log.Println(fmt.Sprintf("NppaCheckPlayerId chn[%d] ai[%s] name[%s] idNum[%s] ret[%v]", chn, ai, name, idNum, j))
  66. if code == 2001 || code == 2002 || code == 2003 || code == 2004 {
  67. ret["code"] = 200
  68. ret["status"] = 2 // 这几种情况默认认证失败
  69. }
  70. }
  71. ret["msg"], _ = j.Get("errmsg").String()
  72. return ret
  73. }
  74. // 公安部实名认证 - 查询结果
  75. func NppaQueryPlayerId(uid string, chn int) map[string]interface{} {
  76. ret := make(map[string]interface{})
  77. ret["code"] = 400
  78. mapHead := ConfGetInfoByChannel(chn)
  79. if mapHead == nil {
  80. ret["code"] = 200
  81. ret["status"] = 0
  82. // 未响应
  83. ret["msg"] = "配置错误"
  84. return ret
  85. }
  86. mapParam := make(map[string]string)
  87. mapParam["ai"] = uid
  88. sign := MakeRequestSign(mapHead, mapParam, "")
  89. mapHead["sign"] = sign
  90. buff, _ := Send2Nppa("GET", utils.GetKeyConf("nppa", "host_query"), mapHead, mapParam, "")
  91. j, err := simplejson.NewJson(buff)
  92. if err != nil {
  93. log.Println("NppaQueryPlayerId err", err)
  94. // 未响应
  95. ret["msg"] = "未响应"
  96. return ret
  97. }
  98. code, _ := j.Get("errcode").Int()
  99. if code == 0 {
  100. ret["code"] = 200
  101. ret["status"], _ = j.Get("data").Get("result").Get("status").Int()
  102. if ret["status"] == 0 {
  103. ret["pi"], _ = j.Get("data").Get("result").Get("pi").String()
  104. }
  105. } else {
  106. log.Println(fmt.Sprintf("NppaQueryPlayerId chn[%d] uid[%s] ret[%v]", chn, uid, j))
  107. if code == 2001 || code == 2002 || code == 2003 || code == 2004 {
  108. ret["code"] = 200
  109. ret["status"] = 2 // 这几种情况默认认证失败
  110. }
  111. }
  112. ret["msg"], _ = j.Get("errmsg").String()
  113. return ret
  114. }
  115. // 实名认证 - 校验
  116. func CheckPlayerId(uid int, chn int, name string, idNum string) map[string]interface{} {
  117. ret := make(map[string]interface{})
  118. ret["code"] = 400
  119. if uid < 1000000 {
  120. log.Println("参数错误 uid")
  121. ret["msg"] = "参数错误 uid"
  122. return ret
  123. }
  124. if name == "" {
  125. log.Println("参数错误 name uid:", uid)
  126. ret["msg"] = "缺少参数 name"
  127. return ret
  128. }
  129. if idNum == "" {
  130. log.Println("参数错误 idNum")
  131. ret["msg"] = "缺少参数 idNum"
  132. return ret
  133. }
  134. return NppaCheckPlayerId(chn, fmt.Sprintf("%032d", uid), name, idNum)
  135. }
  136. // 实名认证 - 查询
  137. func QueryPlayerId(uid int, chn int) map[string]interface{} {
  138. ret := make(map[string]interface{})
  139. ret["code"] = 400
  140. if uid < 1000000 {
  141. log.Println("参数错误 uid")
  142. ret["msg"] = "参数错误 uid"
  143. return ret
  144. }
  145. return NppaQueryPlayerId(fmt.Sprintf("%032d", uid), chn)
  146. }