151 lines
5.5 KiB
Go
151 lines
5.5 KiB
Go
package key
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"encoding/json"
|
|
"gitee.com/lansexiongdi/ymt/core"
|
|
"io"
|
|
"net/http"
|
|
"testing"
|
|
)
|
|
|
|
var (
|
|
appId = "lzm"
|
|
privateKey = "MIIEowIBAAKCAQEA7a2I4l8OOdW4weVFvj4u/mBqP3aZhJ0mOTKl4MCW4Pf6gNAlZa5dZYOS/BocmG872+pd10BiI73qiAWsuVaPwCL0A37lQbCXlG0fDAfCLogXuF1qVNRZgkYKrx/5Gppo2PNed7E5YyCUkMUKVPbuwuZteMZJH8d1o6Uojbb/xJQvAGOlx5Y04VZWp/6p2GjhW0srwgbpVegMyyn2Qblx1Lo+Uq5zG8um7FTpbtb/L/itpBFEDSZGIIKDfn4FPyt+jQ0SW5TDYQClSvWHK4V3RkWOVkD1nHeBpZyp7JNehK+7kBfO6G4NJabkyoWqFEiZcTy38ZWQdqJ9N4LZuY37NwIDAQABAoIBAGs2u6e5z1YBda1pehN+Q36WCXeFTW0H4qUslq0S0zy6P/L5cdUzWYggWR6FvN56Vts2Foyxy1NqKTCgtrCIPqIiYkZtaIdAXLAkpTutCEgrNeABq6SGgbYFWG51Es6QVrl+1t9RP5zaponDiIyZM00R2tH/SB8gv41JREjhAvEuNIwPyaoVVt+U/kAdhJgiMKsDpoGaMfsJk76sORu6qQqBkBN8cglN94xC0QtROytW3EY8SnZmgGZHcY3YTXM74CWM8yBg7rNuKv0982f9hKvUDHKMFYly1PzYiSgplkT7RYCMjo2FFf1lt7k7N61+4nalS/EM6324m2poisTRFAkCgYEA+3oXvtwrTim0kXG7V7w5PS8u5dU0sAAH4ACSyzy8nEdKEk4ipoaTGm6km8ko0O+9E70SwZQgK/eAnmsYf5WtMzvItweKUUVsBCm01qSHlu5vzGO3H1ndi7hg+tH9VrOQH3+odQJP9FqC4BkncMszHM4nLglWSTixTTvGIovQLy0CgYEA8fPnu0tWqhfQV6svaA5kt4h6cL52ARKlubRuYkI4hGuikKYpd2A3WuVtD1LkuPQSjwID9730HAqLc7ZMwONjQ8NANi9ZoJR6A+Vzba9zDPQmSc80Ax7Kkjc03D1Y7yiP6P8bWnhCCbRcMy+dcobvBZc2zaWzSNjZwPOSV9xaMnMCgYAclz354hg+U7mGy7JsACdV0HZ5hOrvk6FRk18dIjOjZOuD90QzQJua5rdqSs2MK6WIh/eI8KlTtlj2KeDoKIE/kO15+a59HPJx6rf3q08LFuK5DyEzvEjW6MiF27f80n9xRVdGrlOeyWeVyOZWCZQvEzUbI86eloZ57HDTXqf1pQKBgF6T6xeJgZ0Hpgc/AU75oWEk1kfQC6yrr2CCKUv7esA4mtlUOo1RbRH48MK2snWh4sdIEGj9NbjoXk6jCim0OQ85+ZW0uKJOp8tyG8baeGyt23GqrzgxBxpUvjMBQAxsnKSFZBnfPGEywX+4syEbob9btq54gTaOncAQ9jmmBxQFAoGBAIpPbq2lYwOhgoUJ2BR34xjpmNOiOAF5AVLPGTH44a+iGMJ4tbF9AvfL4xsCWK9zMi3ExaKVN0lNn0cWx2lpXxwO6B+l4L//eczmHx4h1eLJd6ZWyTj7lq+RBOOUgHLKEssZfJ11RYTZjSD7s75JZteM2OFw7BVRRNgw387A3mj6"
|
|
publicKey = "MIIBCgKCAQEA0w4XGS1eEO9gAtWoB0E1vi1QH3xZAiHnkzZMhZRJOKeZhNUb9nmPzrGtCFD1c+to9/hxKnWZnRi1dklRGI4uXaB7PKuDhifHarBTTPBzW/8m+YqKEwjT2XWYvnG1Zeek4a45xze5cHhLA7Ow1Lwgy0u1rhalvz8GbCa9A7ZHKvZtIJJzfPSIV6gZIz5b7+v7rXZzMNNxvC7m+cwtvvERPjhJoj3O7ithcgdiT3JkZd1fZxkA6HCJx1I+TElt4qA9WnV+rqQwjka1gxBO497c0MUq+4Tx+lLGKpb61RPja4+9wiLFvEiS80WyZYkptWlA0Z5mhsxURs/OqaMyVXzbhwIDAQAB"
|
|
key = "5f42e758a38cc003c5da7cee814ddfd5"
|
|
baseURL = "https://gateway.dev.cdlsxd.cn"
|
|
signType = core.SignRSA
|
|
)
|
|
|
|
func newCore() *Key {
|
|
c, _ := core.NewCore(&core.Config{
|
|
AppID: appId,
|
|
PrivateKey: privateKey,
|
|
PublicKey: publicKey,
|
|
Key: key,
|
|
SignType: signType,
|
|
BaseURL: baseURL,
|
|
})
|
|
k := Key{c}
|
|
|
|
return &k
|
|
}
|
|
|
|
func TestOrder(t *testing.T) {
|
|
|
|
c := newCore()
|
|
|
|
h, _, r, err := c.Order(context.Background(), &OrderRequest{
|
|
OutBizNo: "cs002",
|
|
ActivityNo: "lzmcs",
|
|
Number: 1,
|
|
NotifyUrl: "",
|
|
Account: "",
|
|
Extra: "",
|
|
})
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
|
|
if !r.IsSuccess() {
|
|
t.Errorf("获取key失败:%s", r.Message)
|
|
return
|
|
}
|
|
|
|
t.Logf("data=%s", string(r.Data))
|
|
t.Logf("headers=%+v", h)
|
|
}
|
|
|
|
func TestQuery(t *testing.T) {
|
|
|
|
c := newCore()
|
|
|
|
h, _, r, err := c.Query(context.Background(), &QueryRequest{
|
|
OutBizNo: "cs001",
|
|
TradeNo: "",
|
|
})
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
|
|
if !r.IsSuccess() {
|
|
t.Errorf("查询失败:%s", r.Message)
|
|
return
|
|
}
|
|
|
|
t.Logf("data=%s", string(r.Data))
|
|
t.Logf("headers=%+v", h)
|
|
//t.Log(result.Status.IsNormal())
|
|
}
|
|
|
|
func TestDiscard(t *testing.T) {
|
|
|
|
c := newCore()
|
|
|
|
h, _, r, err := c.Discard(context.Background(), &DiscardRequest{
|
|
OutBizNo: "N123456003",
|
|
TradeNo: "",
|
|
Reason: "正常作废",
|
|
})
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
|
|
if !r.IsSuccess() {
|
|
t.Errorf(r.Message)
|
|
return
|
|
}
|
|
|
|
t.Logf("headers=%+v", h)
|
|
t.Logf("respons=%+v", r)
|
|
}
|
|
|
|
func TestResponse(t *testing.T) {
|
|
|
|
jsonBytes := []byte(`{"code":200,"data":{},"message":"成功"}`)
|
|
resp, err := core.BuildResponse(jsonBytes)
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
|
|
result, err := ConvertData(resp.Data)
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
|
|
t.Logf("%+v", result)
|
|
}
|
|
|
|
func TestCallBack(t *testing.T) {
|
|
|
|
reqStr := `{"data": {"url": "https://gateway.dev.cdlsxd.cn/yxh5/dpK5ly6oVVE2AM0W", "status": 2, "account": "18479266021", "trade_no": "794167617429315585", "notify_id": "7345294954732199936", "usage_num": 0, "out_biz_no": "0627002001", "usable_num": 2, "usage_time": "2025-06-30 11:39:46", "valid_end_time": "2026-06-30 23:59:59", "settlement_price": 2, "valid_begin_time": "2025-06-24 11:00:08"}, "sign": "XLwRQ12EBXSGOSVzUMXwjSlKP88P4Odhe6c9MrfaszKLe+3HtPTeB6QWvyAmXGeIvsy02P0YtcOYV4xQHlWo3Uh5FZc6IJU/+KN+xVnn/DlFLpc+DhCKw6o4hYv+eLLyshjFZPZYVUU2I2YmkI1ZlwBaufsB+N9ds8gBz5+hELn17/qcFcbO6pYOd2te7xmJSGKOAMn0q2c2DSvTLvyQXhKUlDZfUZZGBOc1LGChy9CHc7Z/0E8/p2YYTlMPnvk0VHjEjV5sJxDnXwhSZqE7f3mRx0IN3au3VtZnXJsgl/whxdTyab9dYpfIxK75bS0mjncdqxGf1hLdhYJhTx8bog==", "app_id": "lzm", "sign_type": "RSA", "timestamp": "2025-06-30 11:39:46"}`
|
|
headerStr := `{"Sign": ["Boj6IrOOrRATJt0IBE+z5Ie/g4mo3MZk+JpJ4bLYoBbDfMqvgTBhxqiC8CheRm/nEF9iFFJCvq9S0dL25fLexQ1k5AxE3cX1+qR5fCRdaiZvqWG4jaXOjUUW8K7fQ9g5ii6T4b3cWp71FBHiG3ZH5XohM9JuLo3W17MxrizsLLD0euGROAY3bXcakVustto07V3i0g59+ajsCTTdxF/gNcrsO5a3eTJ8CTSDnMgpwqMbU+E9YMX1zGFH/+m/RtL9s8tLRf8j4T/t8g6b94JfvBv+Fu1wV4eMUO7H4Iv0LJ1TL8qMBkWul5BbwGxSdEGQoWU0CIAehYTfR5meKxTOTQ=="], "Appid": ["lzm"], "Version": ["1.0"], "Sign-Type": ["RSA"], "Timestamp": ["2025-06-30 11:39:46"], "Content-Type": ["application/json"]}`
|
|
|
|
var headers http.Header
|
|
if err := json.Unmarshal([]byte(headerStr), &headers); err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
|
|
c := newCore()
|
|
request := &http.Request{
|
|
Header: headers,
|
|
Body: io.NopCloser(bytes.NewBuffer([]byte(reqStr))),
|
|
}
|
|
|
|
r, err := c.CallBack(context.Background(), request)
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
|
|
t.Logf("response=%+v", r)
|
|
}
|