Test, SSS ve sorun giderme
Test listesi — canlıya çıkmadan önce hepsi
Kimlik ve imza
- Yanlış
api_key→ 401 - İmzasız istek → 401
- Bozuk imza → 401
- Sunucu saatini 10 dakika ileri alıp istek → 401
- İzin listesi dışı bir IP'den istek → 403
Talep
- Geçerli yatırım → 201 +
payment_url - Geçerli çekim → 201
-
amountolarak-100,0,1.001,"1.000,00",abc→ hepsi 400 - Geçersiz IBAN → 400
Tekrar
- Aynı
request_id+ aynı gövde → tek işlem,idempotent: true - Aynı
request_id+ farklı tutar → 409
Callback
- İmzayı ham gövde üzerinden doğruluyorsunuz (parse edip yeniden üretmiyorsunuz)
- Bozuk imzalı bildirimi reddediyorsunuz (401)
- Aynı
event_idiki kez gelince ikinci kez bakiye yazmıyorsunuz -
deposit/approvediçinapproved_amountkullanıyorsunuz -
withdrawal/completedikinci bir ödeme emri tetiklemiyor - Bakiyeyi yazdıktan sonra 2xx dönüyorsunuz
- Callback ucunuz 10 saniye içinde cevap veriyor
Uçtan uca
- Yatırım: talep → ödeme sayfası → callback → bakiye
- Farklı tutar seçilen yatırım:
approved_amountdoğru işleniyor - Süresi dolan yatırım:
expiredgeliyor, bakiye değişmiyor - Çekim: talep →
completed→ çekim kapanıyor;rejected→ bloke iade
Test senaryoları
| # | Senaryo | Beklenen |
|---|---|---|
| 1 | 100.00 yatırım, üye tam tutarı öder | Callback approved, approved_amount = "100.00", bakiye +100 |
| 2 | 1000.00 yatırım, üye sayfada 950.00 seçer ve öder | Callback approved_amount = "950.00", bakiye +950 |
| 3 | Yatırım açılır, üye ödemez | 20 dk sonra callback expired, bakiye değişmez |
| 4 | Aynı request_id ile ikinci istek |
201, aynı transaction_id, idempotent: true, ikinci işlem yok |
| 5 | Aynı request_id, tutar farklı |
409 CONFLICT |
| 6 | Callback iki kez gönderilir | İkincide bakiye değişmez, yine 200 dönersiniz |
| 7 | 500.00 çekim, tamamlanır | Callback completed; bloke kalıcı, çekim kapanır |
| 8 | 500.00 çekim, reddedilir | Callback rejected; bloke tutar üyeye iade |
| 9 | Callback ucunuz 5 dk kapalı | Bildirim tekrar gelir; açılınca işlenir, kaybolmaz |
| 10 | Saat 10 dk ileri | 401, mesajda "zaman damgasi ... pencerenin disinda" |
Sık sorulan sorular
İşlemin durumunu sorgulayabilir miyim?
Bu sürümde sorgu ucu yok. Sonuç callback ile gelir. Callback kaybolduğunu düşünüyorsanız aynı
request_id ile talebi tekrar gönderin; mevcut işlem ve status alanı döner.
Callback ne zaman gelir?
Ödeme doğrulandığında. Ulaşmazsa artan aralıklarla tekrar denenir (en fazla 1 saat arayla,
saatlerce). Geç gelen bildirimi "eski" diye atmayın; event_id ile mükerreri yakalayın.
Sandbox / test ortamı var mı? Çevrimdışı imza test değerleri Entegrasyon rehberi Adım 3 ve 4'te. Gerçek uçlarda deneme için size verilen erişim bilgileriyle düşük tutarlı bir test talebi açabilirsiniz; bunu bize önceden söyleyin.
Üye farklı tutar öderse?
Bakiyeye approved_amount yazılır. İlk amount yalnız bilgi.
IBAN'ı biz doğruluyor muyuz? Biçim (26 karakter, kontrol basamağı) doğrulanır. Hesabın üyeye ait olduğunu siz kontrol edersiniz.
Hangi tutar biçimi?
String, nokta ondalık, en fazla 2 basamak: "1000.00". 1000, "1.000,00", 1e3 reddedilir.
Kaç istek atabilirim? İnit uçlarında dakikada 600 (API anahtarı başına). Aşarsanız 429; üstel geri çekilme uygulayın.
Anahtarımız sızdı.
Hemen bize yazın; yeni api_secret / callback_secret üretilir, eskisi geçersiz olur.
Sorun giderme
| Belirti | Sebep | Çözüm |
|---|---|---|
Her istek 401 Istek imzasi dogrulanamadi |
Gövde imzalandıktan sonra yeniden üretilmiş, veya yanlış api_secret |
Bir kez JSON.stringify, aynı string'i gönderin; anahtarı kontrol edin |
401 zaman damgasi ... pencerenin disinda |
Sunucu saati 5 dk'dan fazla kaymış | NTP kurun |
401 X-WinPay-Signature basligi gerekli |
Başlık yok veya 64 hex değil | Başlık adlarını ve hex çıktısını kontrol edin |
403 Bu IP site API erişimine izinli değil |
Çıkış IP'niz listede yok (değişmiş olabilir) | Yeni IP'yi bildirin |
403 İşlem kabul edilmedi |
Üye veya IBAN kara listede | Bize sorun |
400 Tutar: ondalık ayırıcı nokta... |
"1.000,00" gibi biçim |
"1000.00" |
400 Tutar sitenin yatırım limitleri dışında |
Tutar sitenize tanımlı min/max dışında | Limitleri bizden öğrenin |
400 IBAN kontrol basamakları hatalı |
IBAN yanlış | Üyeden doğrusunu isteyin |
409 CONFLICT |
Aynı request_id, farklı gövde |
Mevcut işlemi inceleyin; yeni request_id üretmeyin |
| 429 | Sınır aşıldı | Bekleyip tekrar; üstel geri çekilme |
503 Bu tutar için uygun IBAN yok |
O tutara uygun hesap yok / bakım | Üyeye "biraz sonra" gösterin; sürerse bize yazın |
| Callback hiç gelmiyor | Adresiniz HTTPS değil, dışarıdan erişilemiyor veya yönlendirme yapıyor | HTTPS, doğrudan cevap, 10 sn içinde 2xx |
| Callback geliyor ama 401 veriyorsunuz | JSON parse edip yeniden stringify ediyorsunuz | Ham gövde üzerinden doğrulayın |
| Bakiye iki kez yazıldı | event_id benzersiz kaydı yok |
UNIQUE kolon + aynı transaction |
| Bakiye yanlış tutar | amount kullanılmış |
approved_amount |
Destek
Sorun bildirirken şunları hazırlayın: request_id, isteğin tam zamanı (saat dilimiyle), aldığınız
HTTP kodu ve code alanı, sunucunuzun çıkış IP'si. Sır göndermeyin — anahtarları mesaja, ekran
görüntüsüne, log'a yazmayın.