github.com/lianghucheng/zrddz@v0.0.0-20200923083010-c71f680932e2/src/common/pay.go (about)

     1  package common
     2  
     3  import (
     4  	"bytes"
     5  	"fmt"
     6  	"math/rand"
     7  	"net/url"
     8  	"sort"
     9  	"time"
    10  )
    11  
    12  func GetSignContent(v url.Values) string {
    13  	if v == nil {
    14  		return ""
    15  	}
    16  	var buf bytes.Buffer
    17  	keys := make([]string, 0, len(v))
    18  	for k := range v {
    19  		keys = append(keys, k)
    20  	}
    21  	sort.Strings(keys)
    22  	for _, k := range keys {
    23  		vs := v[k]
    24  		prefix := k + "="
    25  		for _, v := range vs {
    26  			if buf.Len() > 0 {
    27  				buf.WriteByte('&')
    28  			}
    29  			buf.WriteString(prefix)
    30  			buf.WriteString(v)
    31  		}
    32  	}
    33  	return buf.String()
    34  }
    35  
    36  func GetOutTradeNo() string {
    37  	return time.Now().Format("0102150405") + fmt.Sprintf("%05d", rand.Intn(100000))
    38  }