Birçok farklı web hizmetleri türleri ve herhangi bir şey içine entegre modları olsa da, pek çok hizmet bu gün benzer adımlar ile entegre edilmiştir. Soyut formdaki soru yöneltilen beri, ben bir soyutlanmış cevap sunarız - belki de daha fazla soru tetikleyici olacak.
Ben örnek olarak ödemeleri kullanacağız.
User does something on a machine (orders a t-shirt).
Their actions update a database, session, or some sort of storage (or chain of actions).
Eğer uygunsa, kullanıcılar eylem (1) sonuçlarından biri aynı zamanda push content to a web service (like PayPal) için sistem tetikler. Genellikle XML biçimlendirme, iç içe geçmiş parametreleri ile bir yanıt göndereceğiz. Sizin mağaza t-shirt fiyat ve miktar göndermek istiyorsunuz.
The service receives the XML request (genellikle bir 'API Anahtarını' ya da içeren) ve bunu işler. Kullanıcı t-shirt sipariş tamamlandıktan sonra PayPal'ın durumunda, sipariş bilgileri ile birlikte, yeniden kendi web sitesine yönlendirir. (Senkron)
The service optionally completes processing (ya da bazı asynchronous eylemi gerçekleştirmeden) ve daha sonra sunucuya bir XML isteği gönderir. Siz PHP isteği ayrıştırmak ve daha sonra verileri işlemek. Örneğin, istek 'order_status'
gibi bir özelliğe sahip olabilir. Özelliği içerebilir 'complete','pending', 'failed'
. Daha sonra bu yansıtmak için veritabanını güncellemek için PHP kullanabilirsiniz.
Web site kullanıcıya hizmeti tarafından veritabanında yapılan değişiklikleri yansıtır. Bir 'Sipariş Durumu' veya 'Yeni Siparişler' sayfasında Örneğin, bir bilgi.
Güzel kütüphaneler ve birçok farklı web hizmetleri için birçok önceden oluşturulmuş PHP sınıfları vardır. Hatta GitHub arama deneyebilirsiniz. Ve: UPS, Paypal, Google Checkout, Facebook, ve diğerleri örnekler ve bunu / ihtiyaç arzu eğer kendi uygulamaları yazmak için API belgelerine sahiptir.
Edit: PayPal-specific information
When PayPal sends the (asynchronous) IPN response, it is in POST data, which you can read and validate according to their specs.
Ben IPN (tenekeci zaman kaçınmak için) ele bulundu kolay yolu Micah Carrick en PayPal class olduğunu. Ben adlandırma sevmiyordu ve bekleme ekranı (sadece durumda) lehçe istedim, sen this gist benim değişiklikleri görebilirsiniz.