EDIT:
Ashley said:
Okay, i've taken a look at the cURL
manual and written this very simple
script to forward the POST values to
the 3rd party checkout. This just
displays the contents of the checkout
page though. The URL address shows the
script currently running rather than
forwarding to the 3rd party site. Also
all their relatively linked graphics
will not work. Can 'true' forwarding
be achieved using cURL?
Kısa cevap - no.
O zaman cURL yapmanız sağlayacak tüm süreci işlemek gerekir (veri, vb doğrulamak, html / mesajları özelleştirmek) şeyler yapmak dışına sürecinin ortasında adım istiyorsanız size ödeme sürecini tarif yolu ile .
CURL ile, "ileri" isteği - dont sıralamak "vekil" isteği. Yani tarayıcı URL değiştirir ve göreli grafik çalışması dont asla gerçeği bekleniyor. CURL veya benzeri kullanımı ile kullanıcı son kullanıcı bile harici bir sayfa dokunaklı olduğunu biliyorum asla izin vermez. Eğer sunucu üzerinde, dış sunucuya tüm isteklerini işleme ve daha sonra sadece kullanıcı için dış sunucudan yanıt görüntüleyen VEYA özelleştirilmiş bir şekilde ondan verileri kullanabilir, böylece bu yanıtı ayrıştırma olacaktır.
secure.wp3.rbsworldpay.com/wcc/purchase
sizin sunucuda bu formu taklit ve bunun yerine göstermek zorunda kullanıcının detayli etkileşimi gerektiren bir form dönen Esasen bu demektir. Kullanıcı formu gönderdiğinde Sonra dış sunucuya bir istek yapmak için tekrar cURL kullanın - bu kez kullanıcı tarafından gönderilen verilerin sonraki turda göndermek için. Yani, örneğin diyelim:
secure.wp3.rbsworldpay.com/wcc/purchase
sepeti gösterir
secure.wp3.rbsworldpay.com/wcc/confirm
ödeme nihai onay yapılacak gösterir
secure.wp3.rbsworldpay.com/wcc/success
ve secure.wp3.rbsworldpay.com/wcc/error
işlem başarılı veya başarısız olup olmadığını sırasıyla gösterir.
Sonra GÜNCEL şöyle özetlenebilir olabilir size işlem sürecinin bir parçası olarak dışarıdan 2 isteklerini yapmak için ihtiyacımız olacak:
- Kullanıcı sitenize dükkan ve cart öğeleri ekler
- Kullanıcı ödeme tıkladığında ve sepeti / kullanıcı verilerini doğrulamak
- # 2 veri geçerli olsaydı verileri paketlemek ve nakletmek
secure.wp3.rbsworldpay.com/wcc/purchase
cURL yoluyla
- # 3 cURL yanıtı cURL yanıtı verileri kullanarak kendi onaylamak sayfasını oluşturmak ve kullanıcıya göstermek başarılı olsaydı.
- Kullanıcı sunucu satın alma onay gönderir.
- Sen # 5 sunucuya gönderilen verileri paketlemek ve cURL yoluyla
secure.wp3.rbsworldpay.com/wcc/confirm
post it.
- # 6 cURL yanıt başarılı olursa o zaman dış sunucudan dönen beklenen "hata" veya "başarı" mesajı için bunu ayrıştırmak ve onları ya kendi özel hata iletileri görüntüler.
- Durulayın ve hata durumunda tekrar ;-)
Genel olarak konuşursak, çoğu ödeme işlemciler genellikle XML, JSON, veya HTML yerine düz metin gibi verileri ayrıştırmak kolay dönen bu temel sürecini destekler işleme bir seçenek var. Bu için bakmak isteyebilirsiniz. Bir çok kez genellikle entegrasyon sürecini hafifletmek için çeşitli programlama dilleri için inşa kütüphaneleri olacaktır.
Evet elbette öyle ... ben normalde bu gibi şeyler, ya da kullanan bir http istemci sınıfını yapmak için curl
uzantısını kullanmak curl
. Örneğin Zend_Http_Client
a> - Kendiniz için biraz daha kolay yapmak ve bu sınıf kitaplıkları birini kullanmak isteyebilirsiniz. Bu sadece destekler curl
, aynı zamanda yuva ve vekiller.