PHP webservices

2 Cevap php

Web hizmetleri için bir yabancı ve ben varolan bir uygulama içine web hizmetleri entegre etmek gerekir. Web servisleri geçirilecek detaylar

  • Benzersiz referans
  • Miktar
  • Durum
  • Durum Açıklama

Bu web hizmeti bir işlemin durumu hakkında bir web sitesi güncellenir.

başlamak için en iyi yolu nedir? nerede ben buradan nereye gideceğiz?

2 Cevap

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.

  1. 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).

  2. 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.

  3. 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)

  4. 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.

  5. 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.

PHP huzurlu ajax tahrik webservices jQuery kullanmak esp, yazmak için neredeyse trivially basittir. Sen gibi sunucu üzerinde kodu vardır:

// index.php:
if (isset($_GET['transact'])) {
    $ref = $_POST['ref'];
    $amount = $_POST['amount'];
    $status = $_POST['status'];
    $description = $_POST['description'];
    $result = transact($ref, $amount, $status, $description);

    header('Content-Type: application/json');
    return json_encode(array(status => 'success', result => $result));
}

ve istemci tarafındaki web uygulaması olabilir:

// webapp.js
....
var data = { ref:4343, amount:'12.34', status:'pending', description:'deduction' };
$.post('?transact', data, function(result) {
    if (result.status == 'success') {
        var thing = result.thing; //etc..