quick_sdk.go 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. rpcCenter "github.com/mhaya/game/game_cluster/internal/rpc/center"
  10. sessionKey "github.com/mhaya/game/game_cluster/internal/session_key"
  11. )
  12. type quickSdk struct {
  13. app cfacade.IApplication
  14. }
  15. func (quickSdk) SdkId() int {
  16. return QuickSDK
  17. }
  18. func (p quickSdk) Login(config *data.SdkConfigRow, params Params, callback Callback) {
  19. openid, found := params.GetString("openid")
  20. if found == false || cstring.IsBlank(openid) {
  21. err := cerror.Error("openid is nil")
  22. callback(code.LoginError, nil, err)
  23. return
  24. }
  25. ip, found := params.GetString("ip")
  26. if found == false || cstring.IsBlank(ip) {
  27. err := cerror.Error("ip is nil")
  28. callback(code.LoginError, nil, err)
  29. return
  30. }
  31. plt, found := params.GetString("platform")
  32. if found == false || cstring.IsBlank(plt) {
  33. err := cerror.Error("platform is nil")
  34. callback(code.LoginError, nil, err)
  35. return
  36. }
  37. channel, found := params.GetString("channel")
  38. if found == false || cstring.IsBlank(channel) {
  39. err := cerror.Error("channel is nil")
  40. callback(code.LoginError, nil, err)
  41. return
  42. }
  43. /* url := fmt.Sprintf("%v%v/getChat?chat_id=%v", config.Params.AppUrl, config.Params.BotToken, openid)
  44. rspBody, _, err := mhayaHttp.GET(url, map[string]string{})
  45. if err != nil || rspBody == nil {
  46. callback(code.LoginError, nil, err)
  47. return
  48. }
  49. var result = struct {
  50. OK bool `json:"ok"`
  51. }{}
  52. jsoniter.Unmarshal(rspBody, &result)
  53. if !result.OK {
  54. mhayaLogger.Warnf("quick sdk login fail. rsp =%s", rspBody)
  55. callback(code.LoginError, nil, err)
  56. return
  57. }*/
  58. account := rpcCenter.RegisterAccount(p.app, openid, ip, plt, channel)
  59. if account == nil {
  60. callback(code.LoginError, nil)
  61. return
  62. }
  63. callback(code.OK, map[string]string{
  64. sessionKey.PlayerID: account.UserName, //返回 quick的uid做为 open id
  65. sessionKey.OpenID: openid,
  66. sessionKey.TargetPath: account.TargetPath,
  67. })
  68. }
  69. func (s quickSdk) PayCallback(config *data.SdkConfigRow, c *mhayaGin.Context) {
  70. // TODO 这里实现quick sdk 支付回调的逻辑
  71. c.RenderHTML("FAIL")
  72. }