Sandbox ve test kartları
Bir sandbox kurulumu canlı gibi davranır, ancak her banka, 3-D Secure sayfası ve sahtecilik servisi simüle edilir ve gerçek para hareket etmez. Anahtarlar sk_sandbox_ ile başlar, nesnelerde livemode: false bulunur ve üye işyeri paneli bir sandbox bandı gösterir. Sandbox ve canlı; ayrı anahtarlara, webhook'lara ve verilere sahip ayrı kurulumlardır.
Bilmeniz gereken farklar:
- Kayıtlı web sitesi, geri dönüş (callback) adresi ve fatura bilgisi kontrolleri sandbox'ta yalnızca uyarı verir (bkz. Geliştiriciler → İstek kayıtları); canlıda ise reddeder. Canlıya geçmeden önce her uyarıyı giderin.
- Zamana bağlı davranışlar (gün sonu kesintileri, mutabakat tarihleri, ertelenmiş iadeler) sandbox operatörünüzün ilerletebileceği simüle bir saati izler; bu yüzden bir iade veya ödeme takvimin gösterdiğinden daha hızlı ya da daha yavaş sonuçlanabilir.
Test kartı verileri
Aşağıdaki numaralardan herhangi birini son kullanma tarihi 12/2030, CVC 123 (Amex: 1234) ve herhangi bir kart sahibi adıyla kullanın. Luhn kontrolünü geçen diğer her kart numarası onaylanır; geçemeyen numara invalid_card olarak reddedilir. Sandbox'ta asla gerçek kart numaraları kullanmayın.
Onaylanan kartlar
| Numara | Kart |
|---|---|
4109090000000011 |
Visa kredi, yerli |
5109090000000018 |
Mastercard kredi, yerli |
4109100000000018 |
Visa ön ödemeli, yerli |
4355080000000013 |
Visa kredi, yerli, Axess programı (taksit) |
5400610000000019 |
Mastercard kredi, yerli, Axess programı (taksit) |
4766100000000012 |
Visa kredi, yerli, Bonus programı (taksit) |
4894500000000018 |
Visa kredi, yerli, World programı (taksit) |
4543600000000011 |
Visa kredi, yerli, Maximum programı (taksit) |
4355090000000012 |
Visa banka kartı, yerli (yalnızca tek çekim) |
9792010000000010 |
Troy banka kartı, yerli (yalnızca tek çekim) |
4111111111111111 |
Visa kredi, yabancı |
5555555555554444 |
Mastercard kredi, yabancı |
Reddedilen kartlar
Ret senaryosu numaranın içine yerleştirilmiştir; yanıt, gösterilen decline_code ile birlikte 402 card_error olur.
| Numara | decline_code |
|---|---|
4109090000000508 |
do_not_honor |
4109090000000516 |
insufficient_funds |
4109090000000524 |
lost_card |
4109090000000532 |
stolen_card |
4109090000000540 |
expired_card |
4109090000000557 |
incorrect_cvc |
4109090000000565 |
invalid_card |
4109090000000573 |
transaction_not_allowed |
4109090000000581 |
card_not_supported |
4109090000000599 |
fraudulent |
4109090000000607 |
installment_not_supported |
4109090000000615 |
limit_exceeded |
4109090000000623 |
restricted_card |
4109090000000649 |
issuer_unavailable (geçici; gerçek bir ihraççıda yeniden deneme başarılı olabilir) |
4109090000000656 |
processing_error (geçici) |
3-D Secure senaryoları
| Numara | Ne olur |
|---|---|
4109090000000631 |
Müşterinin kimlik doğrulaması başarısız olur: decline_code: authentication_failed. |
4109090000000664 |
Kart 3-D Secure gerektirir. Bunu atlayacak ödemeler reddedilir (transaction_not_allowed); 3-D Secure ile ödeme başarılı olur. |
4109090000000672 |
Doğrulama adımı (challenge) yarıda bırakılır: müşteri hiç geri dönmez ve ödeme requires_action durumunda kalır. |
Onaylanan diğer her kart, platform gerekli gördüğünde 3-D Secure'dan geçer ve simüle edilen banka sayfası bunu otomatik olarak tamamlar.
Yavaş veya belirsiz banka yanıtları
| Numara | Ne olur |
|---|---|
4109090000000706 |
Bankada teknik hata (processing_error). |
4109090000000714 |
Banka zaman aşımına uğrar, ardından platform ödemeyi onaylanmış bulur. Ödeme önce processing olur ve succeeded ile biter. |
4109090000000722 |
Banka zaman aşımına uğrar, ardından platform hiçbir şey bulamaz. Ödeme önce processing olur ve başarısızlıkla biter. |
Bu ikisi için webhook'lara güvenin: ilk yanıt nihai yanıt değildir.
Sihirli tutarlar
Hangi kartı kullanırsanız kullanın, tahsil edilen minor birim tutarın son iki hanesi bir senaryo seçer. Müşterinin ödediği bir taksit vade farkı varsa geçerli olan tutar amount değil amount_charged değeridir. 00 ile 39 arasında biten tutarlar nötrdür; örneğin 100000.
| Son iki hane | Sonuç |
|---|---|
41 |
Sahtecilik taraması: inceleme (fraud_status: review). |
42 |
Sahtecilik taraması: ret (fraud_error, fraudulent). |
50 |
do_not_honor |
51 |
insufficient_funds |
52 |
lost_card |
53 |
stolen_card |
54 |
expired_card |
55 |
incorrect_cvc |
56 |
invalid_card |
57 |
transaction_not_allowed |
58 |
card_not_supported |
59 |
fraudulent |
60 |
installment_not_supported |
61 |
limit_exceeded |
62 |
restricted_card |
63 |
3-D Secure kimlik doğrulaması başarısız olur (authentication_failed) |
64 |
issuer_unavailable |
65 |
processing_error |
66 |
Kart 3-D Secure gerektirir (güvenli olmayan deneme reddedilir) |
67 |
3-D Secure doğrulama adımı yarıda bırakılır |
Bir kart senaryosu (yukarıdaki numaralar) tutar sonekinin önüne geçer. Örneğin 4109090000000508 kartı tutar ne olursa olsun do_not_honor ile reddedilirken, 12551 (125,51 TRY) tutarındaki onaylanan bir kart insufficient_funds ile reddedilir.
Canlıya geçmeden önce denenecekler
- 3-D Secure ile ve 3-D Secure olmadan başarılı bir ödeme; hem webhook'tan hem de dönüş sayfasından ele alınmış olarak.
- Müşteriye farklı ifade etmek istediğiniz her ret.
- Başarısız olan ve yeni bir
Idempotency-Keyile yeniden denenen bir ödeme. - Capture (
capture_method: manual), kısmi capture ve bir iptal. - Satış günü tam iade (iptal), aynı gün kısmi iade ve sonraki bir günde iade. İadeler kılavuzuna bakın.
- Önizleme ve desteklenmeyen bir sayı için hata dahil olmak üzere bir taksitli ödeme.
- Webhook imza doğrulaması, bir yeniden deneme (bir kez
500ile yanıt verin) ve bir olayın yeniden oynatılması. - Uyarıyı görmek için izin listenizde olmayan bir IP adresinden gelen istek.