Ne alacaksın: gerçek bir hata raporu
Tam olarak bu formatta teslim ediyorum — yeniden üretilebilir, önceliklendirilmiş ve geliştirme ekibine verilmeye hazır. Gizlilik için düzenlenmiştir.
Özet
Kullanıcı, kredi kartı son kullanma tarihi alanına tek haneli bir ay (ör. “03” yerine “3”) girdiğinde, ödeme butonu etkin kalıyor ancak gönderimde sessizce başarısız oluyor. Hiçbir hata mesajı gösterilmiyor; kullanıcı süresiz olarak bir spinner görüyor.
Yeniden üretme adımları
- Sepette ürünlerle /checkout sayfasına git
- Kargo detaylarını doldur, Devam Et'e tıkla
- Kart numarasını gir: 4242 4242 4242 4242
- Son kullanma ayını gir:
3(tek haneli, başında sıfır yok) - Son kullanma yılını gir: 28
- CVC gir: 123
- “$49.00 Öde”ye tıkla
Beklenen davranış
Ya (a) alan, odaktan çıktığında “03” olarak otomatik biçimlenmeli, ya da (b) gönder butonu devre dışı olmalı ve “Lütfen geçerli bir son kullanma ayı gir” şeklinde net bir satır içi hata gösterilmelidir.
Gerçekleşen davranış
Öde butonu süresiz olarak spinner gösteriyor. Ağ sekmesi POST /api/payment'ten 400 yanıtı gösteriyor, hata invalid_expiry_month, ancak bu hata frontend tarafından yutuluyor. Kullanıcı hiçbir geri bildirim almıyor.
Etki
- Ödeme denemelerinin tahmini %8-12'sini etkiliyor (oturum kayıtlarına göre)
- Kullanıcılar ~30 saniye spinner sonrasında sepeti terk ediyor
- Doğrudan gelir kaybı + destek talepleri
Önerilen çözüm
- Son kullanma alanında odaktan çıkışta tek haneli ayı iki haneye otomatik tamamla
- API 400 hatalarını ödeme formunda satır içi hata mesajı olarak göster
- İstemci tarafında regex doğrulaması ekle:
^(0[1-9]|1[0-2])$
Kanıt
$50 sana bunu alır
Kaba notlarını gönder — onları böyle raporlara dönüştürüyorum. Ya da hataları sıfırdan bulmam için beni işe al.