mirror of
https://git.oceanpay.cc/danial/kami_script.git
synced 2025-12-18 20:56:47 +00:00
111 lines
2.3 KiB
Go
111 lines
2.3 KiB
Go
package main
|
|
|
|
import (
|
|
"crypto/md5"
|
|
"encoding/hex"
|
|
"encoding/json"
|
|
"fmt"
|
|
gonanoid "github.com/matoous/go-nanoid/v2"
|
|
"io"
|
|
"kami_scripts/models"
|
|
"math"
|
|
"math/rand"
|
|
"net/http"
|
|
"sort"
|
|
"strconv"
|
|
"sync"
|
|
"time"
|
|
)
|
|
|
|
// SortMap 对map的key值进行排序
|
|
func SortMap(m map[string]string) []string {
|
|
var arr []string
|
|
for k := range m {
|
|
arr = append(arr, k)
|
|
}
|
|
sort.Strings(arr)
|
|
return arr
|
|
}
|
|
|
|
func genSign(data models.Data) string {
|
|
appSecret := "ssssc9kit6bimggos5kk0c9g"
|
|
|
|
params := map[string]string{}
|
|
|
|
exValue, _ := json.Marshal(data.ExValue)
|
|
|
|
params["exValue"] = string(exValue)
|
|
params["orderNo"] = data.OrderNo
|
|
params["orderPeriod"] = data.OrderPeriod
|
|
params["orderPrice"] = data.OrderPrice
|
|
params["payWayCode"] = data.PayWayCode
|
|
params["osType"] = data.OsType
|
|
params["notifyUrl"] = data.NotifyUrl
|
|
params["payKey"] = data.AppKey
|
|
params["timestamp"] = data.TimeStamp
|
|
|
|
strArr := SortMap(params)
|
|
signStr := ""
|
|
for i := 0; i < len(strArr); i++ {
|
|
k := strArr[i]
|
|
if len(params[k]) == 0 {
|
|
signStr += k
|
|
} else {
|
|
signStr += k + params[k]
|
|
}
|
|
}
|
|
signStr += appSecret
|
|
|
|
h := md5.New()
|
|
h.Write([]byte(signStr))
|
|
return hex.EncodeToString(h.Sum(nil))
|
|
}
|
|
|
|
func randomRequest(count int, stop chan int, group *sync.WaitGroup) {
|
|
defer func() {
|
|
time.Sleep(time.Second * 2)
|
|
<-stop
|
|
group.Done()
|
|
if err := recover(); err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
}()
|
|
fmt.Println("正在发送请求次数", count)
|
|
id, _ := gonanoid.New()
|
|
|
|
client := http.Client{}
|
|
formData := models.Data{
|
|
ExValue: models.ExValue{
|
|
Data: "333333333333333",
|
|
FaceType: "100",
|
|
CardNo: "1233333333",
|
|
RecoveryType: "8",
|
|
},
|
|
OrderNo: id,
|
|
OrderPeriod: strconv.Itoa(rand.Intn(24)),
|
|
OrderPrice: "100",
|
|
PayWayCode: "CARD_DH",
|
|
OsType: "1",
|
|
NotifyUrl: "https://baidu.com",
|
|
AppKey: "kkkkc9kit6bimggos5kk0c90",
|
|
TimeStamp: strconv.FormatInt(time.Now().Unix(), 10),
|
|
Sign: "",
|
|
}
|
|
formData.Sign = genSign(formData)
|
|
res, _ := client.PostForm("http://121.37.253.228:12309/gateway/scan", formData.Url())
|
|
|
|
result, _ := io.ReadAll(res.Body)
|
|
fmt.Println(string(result))
|
|
}
|
|
|
|
func main() {
|
|
group := sync.WaitGroup{}
|
|
stop := make(chan int, 50)
|
|
for i := 1; i < int(math.Pow10(5)); i++ {
|
|
group.Add(1)
|
|
stop <- 1
|
|
go randomRequest(i, stop, &group)
|
|
}
|
|
group.Wait()
|
|
}
|