记录退款失败请求参数
This commit is contained in:
@@ -159,6 +159,53 @@ func TestCreatePaymentUsesShanghaiTimeWhenLocalIsUTC(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreateRefundReturnsRawRequestOnHTTPError(t *testing.T) {
|
||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
if r.URL.Path != endpointRefund {
|
||||
t.Fatalf("path = %s, want %s", r.URL.Path, endpointRefund)
|
||||
}
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
_, _ = w.Write([]byte(`{"code":"OP90001","msg":"请求服务失败"}`))
|
||||
}))
|
||||
defer server.Close()
|
||||
|
||||
key, err := rsa.GenerateKey(rand.Reader, 2048)
|
||||
if err != nil {
|
||||
t.Fatalf("generate key: %v", err)
|
||||
}
|
||||
privatePEM, certPEM := testKeyPairPEM(t, key)
|
||||
client := NewClient(Config{
|
||||
GatewayURL: server.URL,
|
||||
AppID: "app-1",
|
||||
SerialNo: "serial-1",
|
||||
MerchantID: "merchant-1",
|
||||
TermNo: "term-1",
|
||||
PrivateKey: privatePEM,
|
||||
NotifyCert: certPEM,
|
||||
})
|
||||
resp, err := client.CreateRefund(context.Background(), CreateRefundRequest{
|
||||
ThirdOrderID: "PAY123",
|
||||
ProviderOrderID: "TRADE123",
|
||||
MerchantRefundID: "REF123",
|
||||
RefundAmountCent: 99,
|
||||
RefundReason: "结账退款",
|
||||
})
|
||||
if err == nil {
|
||||
t.Fatal("CreateRefund error = nil, want HTTP error")
|
||||
}
|
||||
if resp == nil {
|
||||
t.Fatal("CreateRefund response = nil, want raw request")
|
||||
}
|
||||
if resp.RawRequest["merchant_no"] != "merchant-1" ||
|
||||
resp.RawRequest["term_no"] != "term-1" ||
|
||||
resp.RawRequest["out_trade_no"] != "REF123" ||
|
||||
resp.RawRequest["refund_amount"] != "99" ||
|
||||
resp.RawRequest["origin_out_trade_no"] != "PAY123" ||
|
||||
resp.RawRequest["origin_trade_no"] != "TRADE123" {
|
||||
t.Fatalf("raw request = %#v", resp.RawRequest)
|
||||
}
|
||||
}
|
||||
|
||||
func parseLakalaTestTime(t *testing.T, value string) time.Time {
|
||||
t.Helper()
|
||||
parsed, err := time.ParseInLocation("20060102150405", value, timeutil.ShanghaiLocation())
|
||||
|
||||
Reference in New Issue
Block a user