fix(review): harden payment, oauth, and migration paths
This commit is contained in:
@@ -150,6 +150,16 @@ func (s *PaymentService) checkPaid(ctx context.Context, o *dbent.PaymentOrder) s
|
||||
return ""
|
||||
}
|
||||
if resp.Status == payment.ProviderStatusPaid {
|
||||
if !isValidProviderAmount(resp.Amount) {
|
||||
s.writeAuditLog(ctx, o.ID, "PAYMENT_INVALID_AMOUNT", prov.ProviderKey(), map[string]any{
|
||||
"expected": o.PayAmount,
|
||||
"paid": resp.Amount,
|
||||
"tradeNo": resp.TradeNo,
|
||||
"queryRef": queryRef,
|
||||
})
|
||||
slog.Warn("query upstream returned invalid paid amount", "orderID", o.ID, "queryRef", queryRef, "paid", resp.Amount)
|
||||
return ""
|
||||
}
|
||||
notificationTradeNo := o.PaymentTradeNo
|
||||
if upstreamTradeNo := strings.TrimSpace(resp.TradeNo); paymentOrderShouldPersistUpstreamTradeNo(queryRef, upstreamTradeNo, notificationTradeNo) {
|
||||
if _, updateErr := s.entClient.PaymentOrder.Update().
|
||||
|
||||
Reference in New Issue
Block a user