Paypal'da IPN ve PDT


99

PayPal'ın Anında Ödeme Bildirimi (IPN) ve Ödeme Veri Aktarımı (PDT) arasında seçim yapmakta bazı sorunlar yaşıyorum.

Temel olarak, kullanıcılar sitemden bir defaya mahsus bir ürün satın alıyor, PayPal ile ödeme yapıyor ve siteme geri dönüyor. IPN'nin nasıl çalıştığını anlıyorum, ancak şimdi PDT ile başarılı bir satın alma işleminden sonra gerçekleşen çeşitli eylemleri daha kolay tetikleyebileceğimi görüyorum, çünkü veriler oraya geri döndükten sonra (ayrı bir dinleyiciye ihtiyaç duymanın aksine) .

Ancak, PayPal'ın PDT belgeleri şu şifreli satırı içerir: "PDT, kredi kartı veya Ekspres Satın Alma işlemleri ile kullanılmak üzere tasarlanmamıştır." ... ancak konu hakkında daha fazla bir şey bulamıyorum.

  1. Kredi kartları GERÇEKTEN PDT ile kullanılmak üzere tasarlanmadı mı? Bir cümleden daha fazlasını istiyorum.

  2. Bu, bir kullanıcının ödeme yapmak için bir PayPal hesabına sahip olması / oluşturması gerektiği anlamına mı geliyor?

  3. Kullanıcıların PayPal hesaplarıyla VE / VEYA kredi kartlarıyla doğrudan ödeme yapmalarına izin vermek istersem IPN uygulamam gerektiği anlamına mı gelir?

Bu olaydan geçen biri biraz ışık tutabilir mi?


Bunu gerçekten daha iyi açıklayan bir web sayfası buldum. [PayPal PDT ve IPN: Nasıl çalışır?] [1] [1]: webmasters.stackexchange.com/questions/21634/…
Ananize Scott

2. soru ile ilgili olarak, müşterilerinizi PayPal hesabı oluşturmaya / sahip olmaya zorlamamak için açabileceğiniz bir PayPal Account Optionalayar vardır My selling preferences > Website preferences, örn. kredi / banka kartı ile ödeme yapın.
kaiyaq

Yanıtlar:


112

PDT ve IPN için API'ler benzerdir. Temel fark, bildirimi aldığınız zamandır. Bu nedenle her ikisinin de uygulanmasını tavsiye ederim.

  • PDT ile bildirimi anında alırsınız ve gereken ek işlemleri yapabilir ve kullanıcıya bir onay sayfası gösterebilirsiniz.
  • IPN ile, kullanıcının bilgisayarı size PDT'yi göndermeden önce patlasa bile ödemenin alındığına dair bilgilendirilme garantilidir.

İkisini de uygulayın ve her iki dünyanın da en iyisini elde edin. Ancak yalnızca bir tane yapıyorsanız, IPN güvenilir olanıdır.

Bir yakalama: Her ikisini de uygularsanız, ödemelerinizin iki kez işleme koyulma şansı vardır. Bunun olmamasına özen gösterin. Yazdığım uygulama PDT ve IPN'yi neredeyse aynı şekilde ele alıyor (arka uç kısmı aynıdır) ve bu kod veritabanında web kullanıcı başına bir kilit alıyor, böylece aynı kullanıcı aynı ödemeyi birden çok kez göndermeye çalışırsa yalnızca bir kez işlenebilir. İşlendikten sonra, bu işlemin sonucu, onu işlemeye yönelik sonraki girişimler için yeniden kullanılır.

Düzenleme Bir şey daha var: IPN, PDT'den daha fazla bilgi taşır. Ters ibraz bildirimi gibi IPN'den alabileceğiniz birçok farklı mesaj vardır ve bu nedenle bunu gerçekten uygulamalısınız.


PayPal'ın PDT sistemi, PayPal Payments Standard kullanan satıcı sitelerine sipariş onayları gönderir ve bu bilgileri doğrulamalarını sağlar. Bu tür siteler daha sonra bu verileri yerel olarak bir "sipariş onayı" sayfasında görüntüleyebilir.

PDT Ne Zaman Kullanılır?

IPN, yukarıda açıklanan aynı yetenekleri sağlar. Peki, IPN yerine PDT'yi ne zaman seçmelisiniz?

PDT ile, bir müşteri ödemeyi tamamladığında siteniz hemen bilgilendirilir. Ancak IPN ile, bir müşterinin ödemeyi tamamladığı zaman ile sitenizin bu olayın bildirimini aldığı zaman arasında önemli bir gecikme vardır.

Bu nedenle, sitenizde anında ödeme bildirimi gerektiren bir özellik varsa PDT'yi kullanın.

Örneğin, bir dijital müzik mağazasını düşünün. PDT ile bu mağaza, PDT sipariş onaylarını hemen gönderdiği için müşterilerin satın aldıkları ürünleri hemen indirmelerine izin verebilir. IPN ile bu tür bir siparişin anında yerine getirilmesi mümkün değildir.

IPN'nin avantajları

PDT'nin büyük bir zayıflığı vardır: sipariş onaylarını yalnızca bir kez gönderir. Sonuç olarak, PDT bir onay gönderdiğinde, sitenizin çalışıyor olması gerekir; aksi takdirde mesajı asla almayacaktır.

IPN ile bunun aksine, sipariş onaylarının teslimi, siteniz alındığını onaylayana kadar IPN bir onayı yeniden gönderdiği için neredeyse garantilidir. Bu nedenle PayPal, PDT yerine IPN uygulamanızı önerir.

IPN'nin diğer bir avantajı, PDT yalnızca sipariş onayları gönderirken birçok türde bildirim göndermesidir. Dolayısıyla, IPN kullanarak siteniz, örneğin ters ibraz bildirimlerinin yanı sıra sipariş onaylarını alabilir. Not: Sitenize ödemelerin derhal bildirilmesi gerekiyorsa, hem IPN hem de PDT uygulayabilirsiniz. Ancak, bunu yaparsanız, siteniz her satış için iki sipariş onayı alacaktır. Sonuç olarak, verilen bir onay mesajının yalnızca bir kopyası üzerinde işlem yapmaya (örneğin bir ürünü göndermeye) dikkat etmelisiniz.

Belgeler Burada


2
Teşekkürler, anlıyorum. Temel olarak, veritabanı güncellemelerini IPN'ye bağlayın (her zaman işleneceği için) ve kullanıcı onaylarını yalnızca PDT'ye bağlayın (örneğin, ödemenin bekleyen bir sayfada IPN tarafından işlenip işlenmediğini kontrol edin) ....?
Tom

1
Hem IPN hem de PDT uygulamak için +1, bunu yaptık ve iyi çalışıyor.
Mark Redman

3
@Tom: Uygulamam: Bir PDT veya bir IPN geldiğinde, parametreleri okuyun ve ödemeyi işlemeyi deneyin. İşlemci A) diğer eşzamanlı işlemleri (o kullanıcı için) bloke eder ve B) önceden işlenip işlenmediğini kontrol eder. İşlem tamamlandıktan sonra, IPN ile işiniz biter, PDT ile kullanıcıya bir onay sayfası veya makbuz sayfası veya herhangi bir şey gösterirsiniz. Hem PDT tarafı hem de IPN tarafı, diğer taraf aşağıdaysa düzgün çalışabilir, ancak her ikisine de sahip olmaktan iyi bir güvenilirlik elde edersiniz. Kullanıcıların oldukça yüksek bir yüzdesi IPN gelmeden önce tıklamıyor.
Bay Parlak ve Yeni 安 宇

8
Bu cevap OP'nin # 1, # 2 veya # 3 sorularını cevaplamıyor, ancak yine de kabul edildi mi?
Clint Pachl

2
IPN'nin yanıt vermesi 4 gün kadar sürüyor ... berbat
Toskan,

1

1. PDT, Web Sitesi Ödemeleri için Otomatik İade özelliğiyle kullanılmak üzere tasarlanmıştır. Otomatik İade, satıcıya para ödedikten sonra PDT sitesine yönlendirir. Maalesef bu özelliği Kredi Kartı ödemesini etkinleştirmek için kullanılan İsteğe Bağlı PayPal Hesabı ile birlikte kullanmak mümkün değildir. PayPal'dan bir not: ' Otomatik İade özelliğini açtıysanız ve yeni kullanıcılar için İsteğe Bağlı PayPal Hesabı'nı açmayı seçtiyseniz , yeni bir kullanıcı otomatik olarak web sitenize geri yönlendirilmeyecek, ancak geri dönme seçeneği verilecektir.' . Kullanıcı, sitenize geri dönme (PDT aşaması) veya PayPal sitesinde kalma seçeneğine sahip olacaktır. Kredi Kartı ile ödeme yaparken özetlemek gerekirse, kullanıcı 'mağazaya geri dön bağlantısını' tıklamazsa PDT adımını atlayabilir.

Cevap 2. Hangi ödeme seçeneklerine izin vermek istediğiniz size kalmış. PayPal Hesabı olmadan ödemeye izin vermek istiyorsanız, Hesap İsteğe Bağlı'yı etkinleştirebilirsiniz . Yalnızca PayPal hesabı olan kullanıcılara izin vermek istiyorsanız, bu özelliği devre dışı bırakın. Daha fazla seçenek olabilir.

Re 3. Sizin durumunuzda, başarılı bir satın alma işleminden sonra eylemi tetiklemeniz gerekir. Önerilen yol, IPN'yi uygulamak olacaktır. PDT tüm durumlarda çalışmaz ve mesaj teslimini garanti etmez. İşte PDT ve IPN'yi kapsayan dokümanın bağlantısı .


0

Bu eski bir soru, ancak basit cevabım - Neden hem PDT hem de IPN kullanılmıyor? Kart işlemleri için iyi çalışacaklar.

PDT, ödeme başarı veya başarısızlık durumunu hızlı bir şekilde kontrol edebileceğiniz ve kullanıcıya uygun mesajı sağlayabileceğiniz web sitenize anında işlem durumunu sağlayabilir.

Bu arada, arka planda IPN'den tam doğrulamayı bekleyebilirsiniz. Alındıktan sonra, bunu DB'nizi daha fazla güncellemek ve siparişi işlemek için kullanabilirsiniz.

Çok net ve yararlı bulduğum bu adım adım kılavuzu takip edebilirsiniz - ve 2018'de hala geçerlidir.

https://www.codexworld.com/paypal-standard-payment-gateway-integration-php/

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.