Payments
3D Secure akışı ve sağlayıcı callback'i. Ödemenin doğruluğu **her zaman** sunucu tarafı doğrulamadan gelir. Callback gövdesi bir arama anahtarıdır, kanıt değildir; uygulama "ödendi" sonucunu WebView'dan değil, sipariş durumundan çıkarır.
/v1/orders/{id}/payment-status Bearer Ödeme durumu
WebView açıkken yoklanan uç. orderStatus yetkili alandır; uygulama "ödendi" sonucunu buradan çıkarır, callback sayfasından değil.
Parametreler
| Ad | Yer | Tip | Açıklama |
|---|---|---|---|
id * | path | string |
Yanıtlar
| Durum | Gövde | Açıklama |
|---|---|---|
| 200 | PaymentStatusDto | Ödeme durumu. |
| 401 | ApiError | missing_token, invalid_token veya unauthenticated. |
| 404 | ApiError | order_not_found. |
/v1/payments/init Bearer Ödeme oturumu açar
Sipariş için sağlayıcının barındırdığı ödeme formunu açar. Dönen checkoutFormContent bir WebView'da render edilir; uygulama callbackUrle ulaşıldığında sağlayıcının işini bitirdiğini anlar — ama sonucu yine GET /orders/{id}/payment-status ile öğrenir.
Sipariş PENDING_PAYMENT değilse order_not_pending_payment, rezervasyon süresi dolmuşsa reservation_expired döner. Aynı sipariş için uçuşta bir deneme varsa payment_attempt_in_flight gelir.
İstek gövdesi InitPaymentRequest
Yanıtlar
| Durum | Gövde | Açıklama |
|---|---|---|
| 200 | InitPaymentResponse | Ödeme oturumu açıldı. |
| 400 | ApiError | validation_failed — gövde veya query şemaya uymuyor (details). |
| 401 | ApiError | missing_token, invalid_token veya unauthenticated. |
| 404 | ApiError | order_not_found — yok ya da sizin değil. |
| 409 | ApiError | order_not_pending_payment, reservation_expired veya
payment_attempt_in_flight. |
| 502 | ApiError | payment_init_failed — sağlayıcı oturumu açmadı. |
/v1/payments/callback/{provider} Herkese açık Sağlayıcı callback'i (istemciler çağırmaz)
Bu ucu entegre eden taraf çağırmaz. Sağlayıcının ön kanaldan gönderdiği application/x-www-form-urlencoded POST'udur ve buraya token'sız gelir; bu yüzden kimlik istemez.
Gövde güvenilmez kabul edilir: yalnızca token alanı okunur ve o da sadece bir arama anahtarı olarak. Paranın gerçeği sunucu tarafı retrieve çağrısından gelir.
Her zaman 200 ve küçük bir HTML sayfası döner — WebView bir yere insin ve sağlayıcı zaten tükettiğimiz callback'i tekrar denemesin diye. Sayfa yetkili değildir; uygulama sonucu yoklayarak öğrenir.
Parametreler
| Ad | Yer | Tip | Açıklama |
|---|---|---|---|
provider * | path | string | Sağlayıcı kısa adı; tanınmayan değer unknown_payment_provider. |
İstek gövdesi —
Yanıtlar
| Durum | Gövde | Açıklama |
|---|---|---|
| 200 | — | Her sonuçta HTML. kdm-payment-outcome meta etiketi
paid, replay, declined veya pending taşır. |