2009-02-19 20 views
9

Web sitem için yinelenen bir abonelik ücreti ödemelerini doğrulamak için Paypal'ın IPN hizmetini kullanmak istedim. IPN onaylarını sitenizdeki bir kullanıcıya nasıl bağlarsınız?Bir Paypal IPN onayını bir kullanıcıya nasıl bağlarsınız?

IPN onay mesajının bir adı, e-posta adresi, paypal kimliği, yinelenen ödeme kimliği vardır, ancak PayPal kimliği veya yinelenen ödeme kimliğinin nereden geldiğini bilmediğimden benzersiz bir tanımlayıcıya sahip değil gibi görünüyor. Bir kullanıcının paypal hesabında (veya buraya girdiğimde) ad/e-posta adresiyle sitemde sahip olduğum adı/e-postayı benzersiz bir şekilde eşleştirmek önemsiz olabilir (birçok John Smith'in olabilir ve kişi bir Farklı bir e-posta adresi.

1) İlk ödeme isteğimi Paypal'a gönderdiğimde, URL'ye benzersiz bir UUID ekleyebilirim. Geri göndermelerini istediğim URL'ye, bu kullanıcı için bu benzersiz kimliği kaydedersem Bunu başlatan kullanıcıya bu ödeme onayını eşleştirin. Bundan daha zor mu yapıyorum? Daha kolay bir yolu var mı?

2) Ayrıca, yinelenen/abonelik ücreti için paypal her zaman ilk ödeme başlatmasıyla belirttiğim URL'yi kullanır mı? Herkesin, tekrarlanan Paypal ödemelerini IPN'lerle kullanarak pratik deneyimi var mı, bu benzersiz URL'yi yeniden kullanıyor mu? Yoksa tekrarlanan ödemenin alınmasından sonra Paypal ID'leri kullanıcıyla ilişkilendirmek zorunda mıyım?

cevap

2

Yakın zamanda Paypal ile tekrarlanan bazı ödemeler de yapıyorum.

Kullanıcıların, istedikleri takdirde aboneliği ödemeleri için'dan sonra numaralı üye olarak üye olmalarını istedim. Üye olarak kaydolmak, satış sürecine biraz sürtünme ekleyebilir. Bu yüzden Abone ol düğmesi ile herhangi bir kullanıcı bilgisi göndermiyorum.

IPN komut dosyasım, Aktivasyon tablosundaki Paypal aboneliği kimliğine bağlı benzersiz bir etkinleştirme kodu üretiyorsa, bu kodu, nasıl etkinleştirileceğine ilişkin talimatlarla birlikte abonelik için ödeme yapan kişiye gönderir.

Etkinleştirme noktasında kayıt olmanız veya giriş yapmanız gerekmektedir. Bu noktada, userID, Aktivasyon tablosunda ilgili satıra eklenir.

IPN komut dosyasında EndOfTerm IPN bildirimi geldiğinde, IPN'de verilen SubscriberID temel alınarak Activations tablosundan userID görüntülenir. Sonra aboneliğini iptal etmek için o kullanıcıya ne yapmam gerekiyorsa onu yapabilirim.

IPN komut dosyasının URL'si her zaman aynı kalır.

+0

da iyi bir çözüm. – Tim

+0

Ne txn_type durum kodlarına tepki veriyorsunuz? Bu sorunun cevaplanması için zor bir zaman geçiriyorum. http://stackoverflow.com/questions/13855287/parsing-paypal-subscription-ran-out – Volomike

0

1) İlk abonelik ayarına sahip bir 'item_number' parametresi göndererek size geri iletilir. Bir kimlik belirteci yerleştirmeyi öneririm.

2) 'Dönüş' parametresini kastediyorsanız, hayır, bu, abonelik kurulumunun sonunda kullanıcıyı göndermeye yöneliktir. Yenileme otomatik ve bu sayfaya 'ping' yapmıyor.

+0

Oy vermiyorum, ama bence bu doğru. – Tim

3

Ödeme isteğine benzersiz veri eklemek, bunu yapmak için kabul edilen bir yoldur.

Yinelenen ücretlerle ilgili herhangi bir deneyimim yok.

+0

Oy kullanıyorum aksi halde +1 – Tim

+0

Diğer PayPal verilerinin yanı sıra PayPal'ın "Hemen ödeyin" düğmesine tıklama ile oluşturulan ilk PayPal talebinde bazı verileri nasıl yayılacağını biliyor musunuz? –

+1

@VladimirDespotovic Özel verileri ekleyebileceğiniz "Hemen Ödeyin" düğmesi ve ödeme isteği API'sinde fazladan bir alan var. Bu özel veri size işlemle ilgili her * yanıtta geri gönderilir. – greyfade

0

1) item_number parametresini kullanmak istiyorsunuz. Bunu, müşteriye gösterilen HTML formunuzda ayarlayın ve paypal IPN tarafından size geri gönderilecek, böylece burada bir veritabanı satır kimliği koyabiliyor ve daha sonra doğru kişiye eşleştirmek için kullanabilirsiniz.

İlgili konular