diff --git a/intelligence_finance_v1_ga/example_test.go b/intelligence_finance_v1_ga/example_test.go new file mode 100644 index 0000000..a61ab53 --- /dev/null +++ b/intelligence_finance_v1_ga/example_test.go @@ -0,0 +1,136 @@ +package intelligence_finance_v1_ga_test + +import ( + "context" + "fmt" + "testing" + + sdk "intelligence_finance_v1_ga" +) + +// TestOrderInvoice 演示订单开票接口的调用。 +func TestOrderInvoice(t *testing.T) { + client := sdk.NewClient( + "https://api.example.com", + "your-tenant-id", + "dd-ai-table", + "your-client-secret", + ) + + req := &sdk.OrderInvoiceRequest{ + OrderID: "ORDER-20240101-001", + InvoiceType: sdk.InvoiceTypeDigitalSpecial, + Purchaser: "示例科技有限公司", + Taxnum: "91330100MA27XXXXXX", + Email: "finance@example.com", + Phone: "13800000000", + Products: []sdk.Product{ + { + ProductName: "软件开发服务", + RevenueCode: "3040201000000000000", + AmountIncludeTax: "10000.00", + Quantity: "1", + TaxSign: 1, + TaxRate: "0.06", + }, + }, + } + + resp, err := client.OrderInvoice(context.Background(), req) + if err != nil { + t.Fatalf("OrderInvoice failed: %v", err) + } + fmt.Printf("开票状态: %d, 错误信息: %s\n", resp.Status, resp.ErrorMsg) +} + +// TestQueryInvoiceStatus 演示开票状态查询接口的调用。 +func TestQueryInvoiceStatus(t *testing.T) { + client := sdk.NewClient( + "https://api.example.com", + "your-tenant-id", + "dd-ai-table", + "your-client-secret", + ) + + resp, err := client.QueryInvoiceStatus(context.Background(), &sdk.QueryInvoiceStatusRequest{ + OrderID: "ORDER-20240101-001", + }) + if err != nil { + t.Fatalf("QueryInvoiceStatus failed: %v", err) + } + fmt.Printf("状态: %d, 描述: %s\n", resp.Status, resp.Message) +} + +// TestCreatePaymentOrder 演示创建付款单据接口的调用。 +func TestCreatePaymentOrder(t *testing.T) { + client := sdk.NewClient( + "https://api.example.com", + "your-tenant-id", + "dd-ai-table", + "your-client-secret", + ) + + req := &sdk.CreatePaymentOrderRequest{ + Code: "PAY-20240101-001", + UserID: "user-001", + Title: "供应商货款", + Amount: "10000.00", + Supplier: &sdk.Supplier{ + Name: "示例供应商", + }, + Company: &sdk.Company{ + Name: "示例企业", + }, + PaymentDetailList: []sdk.PaymentDetail{ + { + Amount: "10000.00", + Remark: "货款", + }, + }, + } + + resp, err := client.CreatePaymentOrder(context.Background(), req) + if err != nil { + t.Fatalf("CreatePaymentOrder failed: %v", err) + } + fmt.Printf("单据编码: %s\n", resp.Code) +} + +// TestQueryPaymentStatus 演示支付状态查询接口的调用。 +func TestQueryPaymentStatus(t *testing.T) { + client := sdk.NewClient( + "https://api.example.com", + "your-tenant-id", + "dd-ai-table", + "your-client-secret", + ) + + resp, err := client.QueryPaymentStatus(context.Background(), &sdk.QueryPaymentStatusRequest{ + Code: "PAY-20240101-001", + UserID: "user-001", + }) + if err != nil { + t.Fatalf("QueryPaymentStatus failed: %v", err) + } + fmt.Printf("支付状态: %s, 支付时间: %s\n", resp.PaymentStatus, resp.PaymentTime) +} + +// TestParsePaymentNotify 演示支付完成通知的解析(客户回调接口中使用)。 +func TestParsePaymentNotify(t *testing.T) { + body := []byte(`{ + "code": "PAY-20240101-001", + "instanceId": "inst-001", + "corpId": "corp-001", + "paymentStatus": "SUCCESS", + "paymentTime": "2024-01-01 12:00:00", + "userId": "user-001", + "source": "openapi", + "amount": "10000.00" + }`) + + data, err := sdk.ParsePaymentNotify(body) + if err != nil { + t.Fatalf("ParsePaymentNotify failed: %v", err) + } + fmt.Printf("支付状态: %s\n", data.PaymentStatus) +} \ No newline at end of file