Payoneer Checkout
Payoneer Checkout barındırılan ödeme sayfası, kart, cüzdan ve yerel yöntemler Payoneer'in sayfasında; sonuç sunucudan sunucuya doğrulanır.
Gereken bilgiler
Payoneer Checkout portalı → Integration → API access:
merchant_id: API username (merchant code). Tüm mağazalarınız için aynıdır.secret_key: Payment token. GENERATE TOKEN ile üretilir; canlı ve test ortamı için ayrı token gerekir, token yalnız üretildiği anda görünür.merchant_key: Store code (aynı sayfadaki Store codes sekmesi). Payoneer bunadivisionder; her mağazanın kodu farklıdır.
Panelinizde Ayarlar → Ödemeler → Yöntem ekle → Payoneer Checkout seçin, üç değeri girin.
Sandbox: Payoneer portalında ortam anahtarı test konumundayken üretilen token'ı girip sandbox (test) modu kutusunu işaretleyin; panel istekleri api.sandbox.oscato.com'a gönderir. Canlıya geçerken portalda anahtarı live'a çevirin, canlı token üretin, kutuyu kaldırın (api.live.oscato.com).
Bildirim ve dönüş adresleri her ödemeye otomatik eklenir; Payoneer portalında ayrıca bir ayar gerekmez. Adres kalıpları:
https://<panel-alan-adınız>/payments/payoneer/callback (sunucu bildirimi)
https://<panel-alan-adınız>/payments/payoneer/return (müşterinin dönüşü)
Bildirim adresi HTTPS olmak ve gerçek bir IP'ye çözülmek zorundadır; alan adınız henüz bize yönlenmediyse ödeme başlatılamaz.
Akış
- Müşteri tutarı girer, Payoneer'i seçer. Telefon zorunlu değildir; varsa gönderilir.
- Panel Payoneer'e bir LIST oturumu açar (
POST /api/lists, Basic auth: merchant code + payment token). Sipariş numaramıztransactionIdalanına, mağaza kodudivisionalanına yazılır; tutar ana birimde (100.50) gider. - Müşteri Payoneer'in barındırdığı ödeme sayfasına (
redirect.url, v6) tam sayfa yönlendirilir; kart bilgisi, 3D Secure ve cüzdanlar orada, sizin sunucunuza kart verisi hiç uğramaz. - Ödeme bitince müşteri
returnUrl/cancelUrlile panele döner. Bu dönüş yalnız yönlendirir, bakiye yüklemez. - Payoneer aynı anda sunucumuza bir bildirim gönderir (varsayılan:
POST, JSON). Bildirim imzalı değildir; panel önce LIST açarken bildirim adresine eklediği gizlitoken'ı (payment token ile HMAC) kontrol eder, sonra bildirimdekilongIdile kendi kimlik bilgileriyleGET /api/charges/{longId}çağırır. Bakiye yalnız bu yanıttaki duruma göre yüklenir; bildirimin gövdesindeki durum ve tutar hiç kullanılmaz. - Yanıttaki
identification.transactionIdbizim ödememiz değilse bildirim yok sayılır.
Aynı notificationId ile gelen ikinci teslimat yok sayılır; bakiye iki kez yüklenmez. Doğrulanan her bildirime panel 200 OK döner. Token'ı eksik/yanlış olan ya da payment / session dışındaki (customer, account) bildirimler 400 alır; Payoneer 2xx almadığı bildirimi 24 saat boyunca yeniden dener, bu zararsızdır.
Durumlar
Payoneer'in status.code / status.reason çifti şöyle eşlenir:
| Payoneer | Panel |
|---|---|
charged / debited, charged / closed |
tamamlandı, bakiye yüklenir |
charged / fraud_suspected |
beklemede (hold); Payoneer'in kararına göre Admin → Ödemeler'den tamamlayın |
preauthorized, pending |
beklemede; ön provizyon sizin tarafınızdan kapatılınca gelen charged bildirimi bakiyeyi yükler |
failed, declined, rejected, aborted, canceled |
başarısız; resultInfo ödeme notuna yazılır |
expired (ödeme ya da oturum) |
süresi doldu |
paid_out, charged_back, information_requested |
tamamlanmış ödemeye dokunmaz; iade ve ters ibrazı Payoneer portalından takip edin |
Oturum (entity=session) bildirimlerinde yalnız expired / canceled / rejected / failed ödemeyi kapatır; listed ve ended beklemede bırakır.
Para birimleri
Panel, ödemeyi panel para biriminde başlatır ve bir liste dayatmaz. Payoneer'in kabul ettiği işlem para birimleri Payoneer belgesindeki Supported currencies sayfasında tutulur; Payoneer bakiyesine yerleşim USD, EUR, GBP, HKD ve JPY ile yapılır. Kabul edilmeyen bir birimde Payoneer LIST isteğini 422 ile reddeder; ödeme başlamaz ve Payoneer'in resultInfo mesajı hata olarak yükselir.
Müşteri alanları
Payoneer country ve fatura adresi ister; panel bunları bilmez. Ülke, yöntemin extra.country değeri varsa oradan, yoksa panel para biriminden türetilir (TRY → TR, EUR → DE, GBP → GB …, tanınmayan birimde US). Bu yalnız Payoneer'in hangi ödeme yöntemlerini göstereceğini belirler. Fatura adresi sabit yer tutucudur (N/A, posta kodu 00000); ad-soyad kullanıcı adından türetilir.
Sık sorunlar
- "Payoneer: kimlik doğrulama başarısız" (HTTP 401): merchant code ya da payment token yanlış, ya da test token'ı canlı modda (veya tersi) kullanılıyor. Token ortama özeldir.
- LIST
422ile reddediliyor, mesaj division/store'tan söz ediyor: store code yanlış ya da başka bir mağazanın kodu. API access → Store codes'tan kopyalayın. - Ödeme başarılı ama bakiye yok: Admin → Ödemeler'de kaydın notuna bakın. Payoneer portalı → Store transactions'ta işlemin
charged/debitedolduğunu doğrulayın; bildirim teslim edilemediyse Payoneer 24 saat boyunca yeniden dener. BildirimlerinPOSTolarak gönderildiğinden emin olun (GETbildirimi panelin callback adresi tarafından kabul edilmez). - Sandbox'ta kart reddediliyor: Payoneer'in test kartlarını kullanın (
4242 4242 4242 4242, herhangi CVC, gelecekte bir tarih); gerçek kart sandbox'ta çalışmaz.
FollowerHQ