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 更新訂單狀態,這筆訂單就會永久處於不明的狀態之下。
Paypal Sandbox 簡介
Paypal 提供了一個給開發人員測試用的 Sandbox,裡面環境跟 Paypal 一模一樣,但在 Sandbox 內的交易皆不會發生。
使用 Sandbox 前需先註冊 PayPal Developer Central 帳號,登入後即可看到 Sandbox 功能,再建立可付款及收款的 Premier 或 Business 測試帳號。
建立測試帳號不用使用真的 Email,在 Paypal Developer Central 中有個專門存放 Email 通知信的地方。
帳號建立完成後,請參考這裡來驗證 Email 帳號。
至於4碼的信用卡認證(4-digit Expanded Use Number),用測試帳號登入 Paypal Sandbox 後,在上圖中點選 Status 右方的連結 (xxxxxx – Univerified) 後,隨便打 4 個數字就可以完成信用卡驗證了。
(Email跟信用卡驗證一定要做,不然 payment_satus 會變成 Pending)
除了可以建立收付款的 Paypal 帳號之外,也可以產生信用卡的測試卡號。產生出來的卡號可以在沒有 Paypal 帳號的情況下付款,產生的方式可以參考 How to Test PayPal Account Optional in the Sandbox 的 Step 4: Generate a test credit card number from your Sandbox account.
產生信用卡號的方式就是用測試帳號登入 Paypal Sandbox 後, 執行 My Account -> Profile -> Financial Information: ‘Credit Cards’ -> Add,把畫面中的 Card Number 複製到剪貼簿就好,不要真的新增一張信用卡。(倘若新增之後,就只能用 Paypal 帳號付款,而不能用這個信用卡號付款)
Sandbox 的測試 POST 網址為:
https://www.sandbox.paypal.com/cgi-bin/webscr
(正式上線時需把 sandbox. 給拿掉)
不論使用 IPN 或 PDT 來接收由 Paypal 回傳的交易資訊,都必須防止惡意偽造的資訊來欺騙交易的結果,因此 Paypal 有提供二種方案來驗證是否為 Paypal 所送出。
1.自行設定共用密碼。(僅 IPN 的 notify_url 適用)
2.將 Paypal 給傳入的的資訊 POST 回 Paypal 驗證。
以上二種方式都在官方文件中有說明,我就不再贅述了。
整合 Paypal 必讀的二份官方文件: (PDF 格式)
Website Payments Standard Integration Guide
Order Management Integration Guide
Paypal 整合相關網址:
Adding PayPal Checkout to Your 3rd-party Shopping Cart
Instant Payment Notification
Payment Data Transfer
How PDT and IPN work together
How to Test PayPal Account Optional in the Sandbox
7 comments On 整合 Paypal 到電子商務網站
正在研究這東東,
看到您的解說,很幸運^^
Here are 2 sites where you can get more information and sample codes (in any programming languages) to implement either PDT or IPN or both.
http://www.pdncommunity.com/pdn/board/message?board.id=basicpayments&message.id=368
http://paypaltech.com/SG2/
我注册PayPal Sandbox 测试用户注册不了啊,请问使用那种邮箱可以注册?
我已经用了hotmail,163,gmail 但是都没有验证信返回给我.能帮帮我吗?急
PayPal Sandbox 没有回复邮件
你可点那个e-mail
就可以看到相关的信息
哈囉 版主
小弟照著你的講解完成了paypal結合在自己購物車運作
不過遇到了點問題…不知版主是否也曾經遇過..
小弟想使用IPN + PDT兩種方式同時運作
可是..一直都怪怪的..
照著線上Paypal方式做設定..
使用者交易完後~
發現小弟都取不到交易成功值(Completed)…都取到(Pending)..可是小弟取的到使用者交易時所傳入的序號….
麻煩版主指導指導 ..謝謝
版主您好:
最近在研究PayPal付款機制
有幾個問題想請教一下
1:我已經架好自己的網站了,物品的PayPal付款的連結該如何寫??
2:確認客戶付款是否成功的回傳頁面該在哪裡指定??
3:兩種確認方式會不會有很長的時間差??
以上 謝謝
热水器维修
OTDR
熔接机
光万用表
光功率计
误码仪
ADSL测试仪
信号源
千兆以太网测试
仪
热像仪
防雷器测试仪
地阻仪
地下管线测试仪
网络认证测试仪
天馈线测试仪
太阳能发电
逆变器
逆变电源
梅西大学
托福培训
芬兰留学
代孕网
代孕
喷码机
工作服
北京工作服
职业装
herbal medicine
IGBT
IGBT模块
整流桥模块
DC/DC电源模块
功率模块
触摸屏
触摸屏一体机
触摸屏显示器
上海韦德电子
上海韦德电子科技有限公司
快递
速递
笔记本维修
北京笔记本维修
维修笔记本
笔记本电脑维修
IBM笔记本维修
笔记本主板维修
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow power leveling
wow power
leveling
wow power leveling
wow power leveling
wow power
leveling
wow power leveling
wow power
leveling
wow power leveling
wow power leveling
wow power
leveling