param.go 540 B

123456789101112131415161718192021222324252627282930313233
  1. package util
  2. import (
  3. "bytes"
  4. "sort"
  5. )
  6. // OrderParam order params
  7. func OrderParam(p map[string]string, bizKey string) (returnStr string) {
  8. keys := make([]string, 0, len(p))
  9. for k := range p {
  10. if k == "sign" {
  11. continue
  12. }
  13. keys = append(keys, k)
  14. }
  15. sort.Strings(keys)
  16. var buf bytes.Buffer
  17. for _, k := range keys {
  18. if p[k] == "" {
  19. continue
  20. }
  21. if buf.Len() > 0 {
  22. buf.WriteByte('&')
  23. }
  24. buf.WriteString(k)
  25. buf.WriteByte('=')
  26. buf.WriteString(p[k])
  27. }
  28. buf.WriteString(bizKey)
  29. returnStr = buf.String()
  30. return
  31. }