添加文件: ymt_v3/example_test.go

This commit is contained in:
renzhiyuan 2026-07-23 17:07:11 +08:00
parent 769b9b4ddc
commit 1910b8f573
1 changed files with 138 additions and 0 deletions

138
ymt_v3/example_test.go Normal file
View File

@ -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")
}
}