quick_sdk.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package sdk
  2. import (
  3. mhayaGin "github.com/mhaya/components/gin"
  4. cerror "github.com/mhaya/error"
  5. cstring "github.com/mhaya/extend/string"
  6. cfacade "github.com/mhaya/facade"
  7. "github.com/mhaya/game/game_cluster/internal/code"
  8. "github.com/mhaya/game/game_cluster/internal/data"
  9. "github.com/mhaya/game/game_cluster/internal/mdb/models"
  10. "github.com/mhaya/game/game_cluster/internal/param"
  11. sessionKey "github.com/mhaya/game/game_cluster/internal/session_key"
  12. clog "github.com/mhaya/logger"
  13. )
  14. type quickSdk struct {
  15. app cfacade.IApplication
  16. }
  17. func (quickSdk) SdkId() int {
  18. return QuickSDK
  19. }
  20. func (p quickSdk) Login(config *data.SdkConfigRow, params Params, callback Callback) {
  21. openid, found := params.GetString("openid")
  22. if found == false || cstring.IsBlank(openid) {
  23. err := cerror.Error("openid is nil")
  24. callback(code.LoginError, nil, err)
  25. return
  26. }
  27. ip, found := params.GetString("ip")
  28. if found == false || cstring.IsBlank(ip) {
  29. err := cerror.Error("ip is nil")
  30. callback(code.LoginError, nil, err)
  31. return
  32. }
  33. plt, found := params.GetString("platform")
  34. if found == false || cstring.IsBlank(plt) {
  35. err := cerror.Error("platform is nil")
  36. callback(code.LoginError, nil, err)
  37. return
  38. }
  39. channel, found := params.GetString("channel")
  40. if found == false || cstring.IsBlank(channel) {
  41. err := cerror.Error("channel is nil")
  42. callback(code.LoginError, nil, err)
  43. return
  44. }
  45. sign, _ := params.GetString("sign")
  46. req := &param.LoginReq{
  47. OpenID: openid,
  48. IP: ip,
  49. Platform: plt,
  50. Channel: channel,
  51. Sign: sign,
  52. }
  53. acc := &models.Account{}
  54. account, err := acc.AccountRegisterOrLogin(req)
  55. if err > 0 {
  56. callback(code.LoginError, nil)
  57. return
  58. }
  59. nodeId, ok := SetNode(p.app)
  60. if code.IsFail(ok) {
  61. clog.Warnf("[RegisterAccount] openID = %s,nodeID=%v, errCode = %v", openid, nodeId, err)
  62. callback(code.LoginError, nil)
  63. return
  64. }
  65. targetPath := cfacade.NewChildPath(nodeId, "player", account.UserName)
  66. callback(code.OK, map[string]string{
  67. sessionKey.PlayerID: account.UserName, //返回 quick的uid做为 open id
  68. sessionKey.OpenID: openid,
  69. sessionKey.TargetPath: targetPath,
  70. })
  71. }
  72. func (s quickSdk) PayCallback(config *data.SdkConfigRow, c *mhayaGin.Context) {
  73. // TODO 这里实现quick sdk 支付回调的逻辑
  74. c.RenderHTML("FAIL")
  75. }