原文網址:http://www.neo.com.tw/archives/1004
以下轉載
Paypal 的整合方式有很多種,就算本身沒有架設網站,Paypal 也提供了簡易的購物車可以使用。而本篇是說明如何將 Paypal 整合至現有的電子商務網站,也就是 Paypal 所提供的 3rd-party Shopping Cart 整合方式。
Paypal 的 IPN 及 PDT 整合
整合 Paypal 付款機制前要大致了解 Paypal 的 IPN 跟 PDT 的不同。
IPN 的全名是「Instant Payment Notification」,屬於"交易事後"的資訊發送。在使用者在使用 Paypal 付款後,"由 Paypal 主動"發送付款資訊出來至事先設定的 notify_url 。
PDT 的全名是「Payment Data Transfer」,屬於"即時交易"的資訊發送。使用者在 Paypal 付完款後,Paypal 會緊接把付款資訊導向至指定的 return_url 處理。
(以上皆須在Paypal帳號中設定,可參考 Order Management Integration Guide)
二者最大的差別在於 IPN 是交易後由 Paypal 主動發送,PDT 則是在付款完後立即以 GET 的方式將資訊回傳到指定網址。
一般 Paypal 的整合只要使用 IPN 即可,也就是付款完成之後,由 Paypal 告訴消費者付款狀態,並且回到 return_url 的網址。而付款狀態則是由 Paypal 另行以 IPN 的方式傳送至 notify_url。
如果要在交易後即時知道客戶付款的狀況,並且顯示在畫面上,就必須使用 PDT 。但建議不要以 PDT 取得的資訊作為付款成功與否的依據,最好要搭配 IPN 使用。倘若客戶在 Paypal 付完款後,若接收的主機沒收到 PDT 的資料,再加上事後沒有透過 IPN 更新訂單狀態,這筆訂單就會永久處於不明的狀態之下。