facade.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package sdkFacade
  2. import (
  3. "f1-game/internal/data"
  4. cstring "github.com/cherry-game/cherry/extend/string"
  5. cgin "github.com/cherry-game/components/gin"
  6. )
  7. type (
  8. Invoke interface {
  9. SdkID() int32 // sdk配置id
  10. Login(sdkRow *data.SdkRow, input ParamsMap, callback Callback) // Login 登录验证
  11. PayCallback(sdkRow *data.SdkRow, c *cgin.Context) // PayCallback 支付回调
  12. OrderSign(sdkRow *data.SdkRow, chargeRow *data.ChargeRow, input ParamsMap) (map[string]string, int32) // 订单签名
  13. }
  14. ParamsMap map[string]string
  15. Callback func(code int32, result ParamsMap, error ...error)
  16. )
  17. func (p ParamsMap) Put(key string, value any) {
  18. p[key] = cstring.ToString(value)
  19. }
  20. func (p ParamsMap) GetInt(key string, def ...int) int {
  21. val, found := p[key]
  22. if !found {
  23. if len(def) > 0 {
  24. return def[0]
  25. }
  26. return 0
  27. }
  28. intVal, _ := cstring.ToInt(val, 0)
  29. return intVal
  30. }
  31. func (p ParamsMap) Get(key string, def ...string) string {
  32. v, found := p[key]
  33. if !found {
  34. if len(def) > 0 {
  35. return def[0]
  36. }
  37. }
  38. return v
  39. }