修复退款幂等与补偿重试

This commit is contained in:
yml2213
2026-06-14 07:55:02 +08:00
parent 607d2415a1
commit fec8e37181
11 changed files with 772 additions and 143 deletions
@@ -157,3 +157,25 @@ func TestRefundOriginProviderOrderIDFallsBackToProviderOrderID(t *testing.T) {
t.Fatalf("refundOriginProviderOrderID() = %q, want fallback %q", got, payment.ProviderOrderID)
}
}
func TestRefundQueryRequestUsesOriginalPaymentAndMerchantRefundID(t *testing.T) {
original := model.PaymentOrder{
ThirdOrderID: "PAY202606140001",
ProviderOrderID: "PROVIDER-PAY-ID",
}
refund := model.PaymentOrder{
ThirdOrderID: "REF202606140001",
ProviderOrderID: "PROVIDER-REFUND-ID",
}
req := refundQueryRequest(refund, original)
if req.ThirdOrderID != original.ThirdOrderID {
t.Fatalf("ThirdOrderID = %q, want original payment third order id %q", req.ThirdOrderID, original.ThirdOrderID)
}
if req.MerchantRefundID != refund.ThirdOrderID {
t.Fatalf("MerchantRefundID = %q, want refund third order id %q", req.MerchantRefundID, refund.ThirdOrderID)
}
if req.ProviderRefundID != refund.ProviderOrderID {
t.Fatalf("ProviderRefundID = %q, want refund provider order id %q", req.ProviderRefundID, refund.ProviderOrderID)
}
}