SysPublicController.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. package partial
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
  6. "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  7. "git.qianqiusoft.com/qianqiusoft/light-apiengine/third/alipay"
  8. "git.qianqiusoft.com/qianqiusoft/light-apiengine/third/wx"
  9. "github.com/silenceper/wechat/pay"
  10. "io/ioutil"
  11. //sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  12. //sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
  13. //"git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  14. //__import_packages__
  15. )
  16. // _WxpayCallback
  17. // @Title _WxpayCallback
  18. // @Description 微信支付回调
  19. // @Success 200 {object} Account
  20. // @Failure 403 :id is empty
  21. func SysPublic_WxpayCallback(c *entitys.CtrlContext) {
  22. r := wx.CallWxPayCallbackHandler(c)
  23. if r.Code != 200{
  24. c.Ctx.JSON(500, r)
  25. }else{
  26. res := pay.NotifyResponse{}
  27. res.ReturnCode = "SUCCESS"
  28. res.ReturnMsg = "OK"
  29. c.Ctx.XML(200,&res)
  30. }
  31. }
  32. // _WxoauthParams
  33. // @Title _WxoauthParams
  34. // @Description 获取微信oauth配置
  35. // @Success 200 {object} Account
  36. // @Failure 403 :id is empty
  37. func SysPublic_WxoauthParams(c *entitys.CtrlContext) {
  38. contentBody, err := ioutil.ReadAll(c.Ctx.Request.Body)
  39. if err != nil{
  40. fmt.Println("读取body错误", err.Error())
  41. c.Ctx.JSON(500, models.SysReturn{500, err.Error(), ""})
  42. return
  43. }
  44. bmap := make(map[string]string)
  45. err = json.Unmarshal(contentBody, &bmap)
  46. if err != nil{
  47. fmt.Println("Unmarshal错误", err.Error())
  48. c.Ctx.JSON(500, models.SysReturn{500, err.Error(), ""})
  49. return
  50. }
  51. param, err := wx.GetOAuthParams(bmap)
  52. if err != nil{
  53. c.Ctx.JSON(500, models.SysReturn{500, "", ""})
  54. }else{
  55. c.Ctx.JSON(200, models.SysReturn{200, "", param})
  56. }
  57. }
  58. // _WxLogin
  59. // @Title _WxLogin
  60. // @Description 获取微信oauth配置
  61. // @Param body false "微信登录参数,必须包含code字段(微信临时令牌)"
  62. // @Success 200 {object} Account
  63. // @Failure 403 :id is empty
  64. func SysPublic_WxLogin(c *entitys.CtrlContext) {
  65. body, err := ioutil.ReadAll(c.Ctx.Request.Body)
  66. if err != nil{
  67. fmt.Println("SysPublic_WxLogin 读取请求数据错误", err.Error())
  68. c.Ctx.JSON(200, models.SysReturn{500, err.Error(), ""})
  69. return
  70. }
  71. params := make(map[string]interface{})
  72. err = json.Unmarshal(body, &params)
  73. if err != nil{
  74. fmt.Println("SysPublic_WxLogin unmarshal err", err.Error())
  75. c.Ctx.JSON(200, models.SysReturn{500, err.Error(), ""})
  76. return
  77. }
  78. code := ""
  79. var v interface{} = nil
  80. ok := false
  81. if v, ok = params["code"]; !ok{
  82. fmt.Println("SysPublic_WxLogin 不存在临时令牌code字段")
  83. c.Ctx.JSON(200, models.SysReturn{500, "不存在临时令牌code字段", ""})
  84. return
  85. }
  86. if code, ok = v.(string); !ok{
  87. fmt.Println("临时令牌code字段不能转换为string")
  88. c.Ctx.JSON(200, models.SysReturn{500, "临时令牌code字段不能转换为string", ""})
  89. return
  90. }
  91. if code == ""{
  92. fmt.Println("临时令牌code为空")
  93. c.Ctx.JSON(200, models.SysReturn{500, "临时令牌code为空", ""})
  94. return
  95. }
  96. // 获取微信信息
  97. userInfo, err := wx.GetUserInfoByCode(code)
  98. if err != nil {
  99. fmt.Println("wx.GetUserInfoByCode 错误", err.Error())
  100. c.Ctx.JSON(200, models.SysReturn{500, err.Error(), nil})
  101. return
  102. }
  103. ret := wx.CallWxLoginCallbackHandler(c, body, userInfo)
  104. c.Ctx.JSON(200, ret)
  105. }
  106. // _WxjssdkParams
  107. // @Title _WxjssdkParams
  108. // @Description 获取微信jssdk配置
  109. // @Success 200 {object} Account
  110. // @Failure 403 :id is empty
  111. func SysPublic_WxjssdkParams(c *entitys.CtrlContext) {
  112. url := c.Ctx.DefaultQuery("url", "")
  113. if url == ""{
  114. c.Ctx.JSON(200, models.SysReturn{500, "参数rul为空", ""})
  115. return
  116. }
  117. config, err := wx.GetJSSDKRarams(url)
  118. if err != nil{
  119. c.Ctx.JSON(200, models.SysReturn{500, err.Error(), ""})
  120. }else{
  121. c.Ctx.JSON(200, models.SysReturn{200, "", config})
  122. }
  123. }
  124. // _AlipayCallback
  125. // @Title _AlipayCallback
  126. // @Description 支付宝支付回调
  127. // @Success 200 {object} Account
  128. // @Failure 403 :id is empty
  129. func SysPublic_AlipayCallback(c *entitys.CtrlContext) {
  130. alipay.CallWxPayCallbackHandler(c)
  131. }
  132. func __none_func_sys_public__(params ... interface{}) bool{
  133. return true
  134. }