添加文件: ymt_v3/example_test.go
This commit is contained in:
parent
769b9b4ddc
commit
1910b8f573
|
|
@ -0,0 +1,138 @@
|
||||||
|
package ymt_v3
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
// 测试参数(请替换为实际值)
|
||||||
|
const (
|
||||||
|
testAppID = "xxx"
|
||||||
|
testPrivateKey = `-----BEGIN PRIVATE KEY-----
|
||||||
|
xxx
|
||||||
|
-----END PRIVATE KEY-----`
|
||||||
|
testPublicKey = `-----BEGIN PUBLIC KEY-----
|
||||||
|
xxx
|
||||||
|
-----END PUBLIC KEY-----`
|
||||||
|
testKey = "xxxx"
|
||||||
|
testEncryptType = "aes"
|
||||||
|
testBaseURL = "https://gateway.dev.cdlsxd.cn"
|
||||||
|
testActivityNo = "xxxx"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestClient_Order(t *testing.T) {
|
||||||
|
client := NewClient(&Config{
|
||||||
|
AppID: testAppID,
|
||||||
|
PrivateKey: testPrivateKey,
|
||||||
|
PublicKey: testPublicKey,
|
||||||
|
Key: testKey,
|
||||||
|
EncryptType: testEncryptType,
|
||||||
|
BaseURL: testBaseURL,
|
||||||
|
})
|
||||||
|
|
||||||
|
resp, err := client.Order(context.Background(), &OrderRequest{
|
||||||
|
OutBizNo: "order_001",
|
||||||
|
ActivityNo: testActivityNo,
|
||||||
|
Account: "18666666666",
|
||||||
|
NotifyURL: "https://notify.example.com/openapi",
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Order failed: %v", err)
|
||||||
|
}
|
||||||
|
fmt.Printf("Order response: %+v\n", resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_Query(t *testing.T) {
|
||||||
|
client := NewClient(&Config{
|
||||||
|
AppID: testAppID,
|
||||||
|
PrivateKey: testPrivateKey,
|
||||||
|
PublicKey: testPublicKey,
|
||||||
|
Key: testKey,
|
||||||
|
EncryptType: testEncryptType,
|
||||||
|
BaseURL: testBaseURL,
|
||||||
|
})
|
||||||
|
|
||||||
|
resp, err := client.Query(context.Background(), &QueryRequest{
|
||||||
|
OutBizNo: "order_001",
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Query failed: %v", err)
|
||||||
|
}
|
||||||
|
fmt.Printf("Query response: %+v\n", resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_Discard(t *testing.T) {
|
||||||
|
client := NewClient(&Config{
|
||||||
|
AppID: testAppID,
|
||||||
|
PrivateKey: testPrivateKey,
|
||||||
|
PublicKey: testPublicKey,
|
||||||
|
Key: testKey,
|
||||||
|
EncryptType: testEncryptType,
|
||||||
|
BaseURL: testBaseURL,
|
||||||
|
})
|
||||||
|
|
||||||
|
resp, err := client.Discard(context.Background(), &DiscardRequest{
|
||||||
|
TradeNo: "7251449503000383488",
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Discard failed: %v", err)
|
||||||
|
}
|
||||||
|
fmt.Printf("Discard response: %+v\n", resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_BatchOrder(t *testing.T) {
|
||||||
|
client := NewClient(&Config{
|
||||||
|
AppID: testAppID,
|
||||||
|
PrivateKey: testPrivateKey,
|
||||||
|
PublicKey: testPublicKey,
|
||||||
|
Key: testKey,
|
||||||
|
EncryptType: testEncryptType,
|
||||||
|
BaseURL: testBaseURL,
|
||||||
|
})
|
||||||
|
|
||||||
|
resp, err := client.BatchOrder(context.Background(), &BatchOrderRequest{
|
||||||
|
OutBizNo: "batch_001",
|
||||||
|
ActivityNo: testActivityNo,
|
||||||
|
Number: 10,
|
||||||
|
NotifyURL: "https://notify.example.com/openapi",
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("BatchOrder failed: %v", err)
|
||||||
|
}
|
||||||
|
fmt.Printf("BatchOrder response: %+v\n", resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_BatchQuery(t *testing.T) {
|
||||||
|
client := NewClient(&Config{
|
||||||
|
AppID: testAppID,
|
||||||
|
PrivateKey: testPrivateKey,
|
||||||
|
PublicKey: testPublicKey,
|
||||||
|
Key: testKey,
|
||||||
|
EncryptType: testEncryptType,
|
||||||
|
BaseURL: testBaseURL,
|
||||||
|
})
|
||||||
|
|
||||||
|
resp, err := client.BatchQuery(context.Background(), &BatchQueryRequest{
|
||||||
|
TradeNo: "7251449503000383499",
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("BatchQuery failed: %v", err)
|
||||||
|
}
|
||||||
|
fmt.Printf("BatchQuery response: %+v\n", resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestVerifyCallback(t *testing.T) {
|
||||||
|
// 模拟回调参数
|
||||||
|
appID := "123456"
|
||||||
|
timestamp := "2026-06-22 15:30:00"
|
||||||
|
sign := "base64_encoded_signature"
|
||||||
|
data := `{"out_biz_no":"batch_001","trade_no":"7251449503000383499","status":"success","download_url":"https://oss.example.com/openapi_7251449503000383499.zip","zip_password":"123456"}`
|
||||||
|
|
||||||
|
err := VerifyCallback(appID, timestamp, sign, data, testPublicKey, []byte(testKey), testEncryptType)
|
||||||
|
if err != nil {
|
||||||
|
t.Logf("VerifyCallback result: %v (expected if sign is invalid)", err)
|
||||||
|
} else {
|
||||||
|
t.Log("VerifyCallback success")
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue