dongfeng-pay/gateway/controllers/gateway/payfor_controller_test.go

75 lines
1.6 KiB
Go

package gateway
import (
"encoding/json"
"fmt"
"gateway/utils"
"io/ioutil"
"log"
"math/rand"
"net/http"
"testing"
"time"
)
func TestPayFor(t *testing.T) {
u := "http://127.0.0.1:12309/gateway/payfor"
m := make(map[string]string)
m["merchantKey"] = "kkkkc254gk8isf001cqrj6p0"
m["realname"] = "11"
m["cardNo"] = "123"
m["accType"] = "private"
m["amount"] = "0.1"
merchantOrderId := GenerateOrderNo()
m["merchantOrderId"] = merchantOrderId
sec := "ssssc254gk8isf001cqrj6pg"
keys := utils.SortMap(m)
sign := utils.GetMD5Sign(m, keys, sec)
m["sign"] = sign
m1 := make(map[string]interface{})
marshal, _ := json.Marshal(m)
json.Unmarshal(marshal, &m1)
req := new(utils.Request)
req.SetParams(m1)
req.SetURL(u)
resp, err := req.GET()
if err != nil {
t.Fatal("err------>", err.Error())
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(resp.Body)
t.Fatal("返回的http状态码不是200,body:", string(b))
}
b, _ := ioutil.ReadAll(resp.Body)
log.Println("result--------->", string(b))
/**
result---------> {
"resultCode": "00",
"resultMsg": "银行处理中",
"settAmount": "0.1"
}
*/
}
func GetTimeTick64() int64 {
return time.Now().UnixNano() / 1e6
}
func GetFormatTime(time time.Time) string {
return time.Format("20060102")
}
// 基础做法 日期20191025时间戳1571987125435+3位随机数
func GenerateOrderNo() string {
date := GetFormatTime(time.Now())
r := rand.Intn(1000)
code := fmt.Sprintf("%s%d%03d", date, GetTimeTick64(), r)
return code
}
func TestGenerateCode(t *testing.T) {
GenerateOrderNo()
}