整合 Paypal 到電子商務網站

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 測試帳號。

20061116_03.png
建立測試帳號不用使用真的 Email,在 Paypal Developer Central 中有個專門存放 Email 通知信的地方。

帳號建立完成後,請參考這裡來驗證 Email 帳號。

20061116_02.png
至於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.

20061116_01.jpg

產生信用卡號的方式就是用測試帳號登入 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

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar