mirror of
https://github.com/kongyuebin1/dongfeng-pay.git
synced 2024-12-26 12:12:25 +08:00
75 lines
1.6 KiB
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()
|
|
}
|