client_card.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package shanghu
  2. import (
  3. "duoduo/apis/common"
  4. "duoduo/apis/pdd"
  5. "duoduo/apis/shanghu/models"
  6. "duoduo/models/shanghu"
  7. "duoduo/tools"
  8. "duoduo/tools/app"
  9. "encoding/base64"
  10. "encoding/json"
  11. "fmt"
  12. "github.com/gin-gonic/gin"
  13. "strconv"
  14. )
  15. func ClientCardList(c *gin.Context) {
  16. var inData models.ClientCardListRequest
  17. var sqlData shanghu.MerchantClientCard
  18. err := c.ShouldBindJSON(&inData)
  19. if err != nil {
  20. app.Error(c, 400, err, err.Error())
  21. return
  22. }
  23. var pageSize = 10
  24. var pageIndex = 1
  25. if inData.PageSize != 0 {
  26. pageSize = inData.PageSize
  27. }
  28. if inData.PageIndex != 0 {
  29. pageIndex = inData.PageIndex
  30. }
  31. fmt.Println(inData.OpenId)
  32. sqlData.OpenID = inData.OpenId
  33. merchantCard, count, err := sqlData.GetOpenIdList(pageSize, pageIndex, inData.TypeList)
  34. if err != nil {
  35. app.Error(c, 500, err, err.Error())
  36. return
  37. }
  38. app.PageOK(c, merchantCard, count, pageIndex, pageSize, app.Success)
  39. }
  40. func GetClientCard(c *gin.Context) {
  41. var inData models.ClientCardRequest
  42. var sqlData shanghu.MerchantClientCard
  43. err := c.ShouldBindJSON(&inData)
  44. if err != nil {
  45. app.Error(c, 400, err, err.Error())
  46. return
  47. }
  48. sqlData.ID = inData.ClientCardId
  49. clientCard, err := sqlData.GetMerchantCard()
  50. if err != nil {
  51. app.Error(c, 500, err, err.Error())
  52. return
  53. }
  54. app.OK(c, clientCard, app.Success)
  55. }
  56. func GetClientCardQR(c *gin.Context) {
  57. var inData models.ClientCardQRRequest
  58. var sqlData shanghu.MerchantClientCard
  59. var outData models.ClientCardQRReply
  60. var qr models.QRRequest
  61. var getQR models.GetQRRequest
  62. err := c.ShouldBindJSON(&inData)
  63. if err != nil {
  64. app.Error(c, 400, err, err.Error())
  65. return
  66. }
  67. sqlData.ID = inData.MerchantCardId
  68. val, err := pdd.DuoDuoGet("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx25357518f710b8ce&secret=83c7dca801a6c93fbfac3c91f57a4eb2")
  69. if err != nil {
  70. app.Error(c, 500, err, err.Error())
  71. return
  72. }
  73. err = tools.JsonUnmarshal(val, &outData)
  74. if err != nil {
  75. app.Error(c, 500, err, err.Error())
  76. return
  77. }
  78. if outData.AccessToken == "" {
  79. app.Error(c, 500, err, "token error")
  80. return
  81. }
  82. url := "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + outData.AccessToken
  83. qr.CheckPath = true
  84. qr.Page = "pages/home/home"
  85. qr.EnvVersion = "release"
  86. qr.Scene = strconv.FormatInt(inData.MerchantCardId, 10)
  87. data, err := json.Marshal(&qr)
  88. if err != nil {
  89. app.Error(c, 500, err, err.Error())
  90. return
  91. }
  92. reply, err := common.Post(data, url)
  93. if err != nil {
  94. app.Error(c, 500, err, err.Error())
  95. return
  96. }
  97. //err = json.Unmarshal(reply, &getQR)
  98. //if err != nil {
  99. // app.Error(c, 500, err, err.Error())
  100. // return
  101. //}
  102. if getQR.Errcode != 0 {
  103. app.Error(c, 500, err, getQR.Errmsg)
  104. return
  105. }
  106. //fmt.Println(string(reply))
  107. encoded := base64.StdEncoding.EncodeToString(reply)
  108. app.OK(c, encoded, app.Success)
  109. }