Paytm
Paytm (Hindistan) ödeme geçidi, kart, UPI, net bankacılık ve Paytm cüzdanı Paytm'in barındırdığı sayfada; yalnız INR.
Gereken bilgiler
Paytm Dashboard → API Keys sayfası (dashboard.paytmpayments.com/next/apikeys):
merchant_id: Merchant ID (MID)merchant_key: Merchant Key (16 karakter; checksum bu anahtarla üretilir)
Panelinizde Ayarlar → Ödemeler → Yöntem ekle → Paytm seçin, iki değeri girin.
Test (staging): Staging MID ve anahtarı aynı API Keys sayfasında hesap açılır açılmaz verilir; canlı MID hesabınız aktive edildikten sonra gelir. Test çiftini girin, sandbox (test) modu kutusunu işaretleyin. Panel istekleri securestage.paytmpayments.com'a gönderir ve websiteName olarak WEBSTAGING kullanır. Canlıya geçerken canlı çifti girip kutuyu kaldırın; panel secure.paytmpayments.com'a gider ve websiteName olarak DEFAULT gönderir.
Callback adresi her ödemeye callbackUrl olarak eklenir; Paytm panelinde ayrıca bir ayar gerekmez. Adres kalıbı:
https://<panel-alan-adınız>/payments/paytm/callback
İsterseniz aynı adresi Paytm Dashboard'daki Payment Status webhook ayarına da yazabilirsiniz. O zaman Paytm sonucu müşterinin tarayıcısından bağımsız olarak sunucudan sunucuya da bildirir (müşteri tarayıcıyı kapatsa bile bakiye yüklenir). İki bildirim aynı biçimdedir ve aynı yoldan doğrulanır; bakiye iki kez yüklenmez. Paytm webhook için yalnız 443 portunu kabul eder.
Akış
- Müşteri tutarı girer ve Paytm'i seçer. Telefon numarası istenmez.
- Panel, Paytm'e imzalı bir Initiate Transaction isteği gönderir (
orderId= ödeme referansımız, tutar INR) ve birtxnTokenalır. - Müşterinin tarayıcısı
mid,orderIdvetxnTokenalanlarını Paytm'in Show Payment Page adresine form olarak gönderir; kart, UPI, net bankacılık ve cüzdan seçimi orada yapılır, sizin sunucunuza kart verisi hiç uğramaz. - Ödeme bitince Paytm müşterinin tarayıcısını panelinizin callback adresine geri gönderir. Bu dönüşte sonuç alanları (
ORDERID,TXNID,STATUS,TXNAMOUNT, …) ve merchant key ile üretilmiş birCHECKSUMHASHvardır. - Panel önce checksum'ı doğrular; sonra ödemeyi Paytm'in Transaction Status API'sine kendi imzasıyla sorar. Paytm
TXN_SUCCESSderse veorderIdbizim ödememizse bakiye yüklenir; müşteri "Bakiye yükle" sayfasına başarı mesajıyla döner. TXN_FAILUREise ödeme "başarısız" olarak kaydedilir, Paytm'in mesajı ödeme notuna yazılır.PENDINGise ödeme "beklemede" kalır (bankanın onayı gecikmiştir); Paytm sonucu daha sonra webhook ile bildirir ya da Admin → Ödemeler'den tamamlarsınız.
Checksum'ı tutmayan ya da başka bir MID'e ait bir dönüş yok sayılır. Aynı ödeme için ikinci bir başarı bildirimi (tarayıcı + webhook) bakiyeyi iki kez yüklemez.
Durumlar
| Paytm | Panel |
|---|---|
TXN_SUCCESS |
tamamlandı, bakiye yüklendi |
TXN_FAILURE |
başarısız (Paytm mesajı notta) |
PENDING |
beklemede |
NO_RECORD_FOUND |
dönüş yok sayılır |
Transaction Status çağrısı yanıt vermezse TXN_SUCCESS iddiası beklemedeye düşürülür; bakiye yalnız Paytm'in imzalı yanıtıyla yüklenir.
Para birimleri
Paytm yalnız INR işler. Yöntemin para birimi INR olmalı; başka bir birimde ödeme başlatılamaz.
Sık sorunlar
- "Checksum provided is invalid" (2005): merchant key yanlış ya da test/canlı anahtarlar karışmış. Test MID'i test anahtarıyla, canlı MID'i canlı anahtarla eşleştirin.
- "Mid in the query param doesn't match" (2013): MID alanına boşluklu ya da eksik kopyalanmış bir değer girilmiş.
- Ödeme başarılı ama bakiye yok: Admin → Ödemeler'de kaydın notuna bakın. Durum sorgusu hata verdiyse (anahtar yanlış, sandbox/canlı karışmış) ödeme beklemededir ve not orada.
- Staging'de gerçek kart çalışmıyor: Paytm'in test araçlarını kullanın: herhangi bir Visa/Master numarası, ileri tarihli son kullanma, CVV
123, OTP489871; cüzdan için7777777777/Paytm12345. - Callback'e ulaşılamıyor: Paytm yalnız HTTPS ve 443 portunu kabul eder; panelinizin alan adı henüz bize yönlenmediyse ödeme tamamlanamaz. Önce DNS devrini bitirin.
FollowerHQ