本文目錄一覽:
用PHP開發Paypal支付接口~呢?
PayPal支付與支付寶微信支付等支付方式有所不同,具體可根據官方文檔開發。
首先在PayPal開發者平台註冊開發者賬戶,然後根據開發文檔接入即可。
paypal支付接口怎麼用
Paypal IPN接口開發小結最近終於搞定了該死的Paypal ipn,特地在此留下點東西備忘。所以paypal ipn(Instant Payment Notification),就是Paypal開發的一種能主動通知第三方賣家系統交易狀態的一種機制。IPN的原理很簡單,就是當產生了一個交易之後,交易狀態發生變化時,如用戶已經付款、或者退款、撤銷時,Paypal利用常用的HTTP POST方式,將交易的一些變量提交給網站的某個頁面(稱之為IPN Handler),當這個頁面接受到請求時候,將這些數據原封不動加上一個指示驗證的cmd=_notify-validate,POST回Paypal的接口地址,如果數據正確,那麼Paypal返回字符串VERIFIED,否則為INVALID,如果結果為VERIFIED,那麼你的程序就可以使用這些數據進行操作。但代碼的調試是一件很痛苦的事情,因為作為第三方開發人員,不可能開兩個帳號,每次測試還要之間交易一些錢,所以Paypal專門開發了Sandbox給開發人員進行開發,首先到 註冊一個開發帳號,好了之後再進入Sandbox建立測試用的Paypal虛擬帳號(至少應該建立一個Business的和一個Personal的),這種賬號註冊方法和Paypal的流程一樣,信息可以是假的,包括銀行帳號、信用卡(其實Paypal Sandbox會自動生成一些隨機的號碼)。接下來需要激活Paypal Sandbox的虛擬帳號,注意,這裡不管你在Paypal Sanbox註冊時填什麼郵件地址,有任何發送到虛擬帳號所填郵箱的郵件都存會在開發帳號的管理界面中的Email頁(導航欄上有)中。登錄Sandbox的虛擬Paypal環境,還需要驗證虛擬帳號的銀行,這裡可以隨便填,然後通過Add Funds來給賬戶充值(想填多少填多少)。然後,還需要激活IPN的選項,在Business的那個賬戶的Profile設置頁面中,點擊,然後點擊Edit按鈕,打開IPN,這裡如果你使用的是固定的IPN Handle,可以直接將地址填入。接下來,我們測試的時候,應該將Paypal接口的地址設置為 最後基本的流程為:用戶在我們的網站上選擇商品、放入購物車,然後檢查準備支付 網站根據購物車中的商品,生成Paypal的支付表單(也是提交到上面IPN用的Paypal接口地址),包含了此次交易的一些信息(下次會專門找機會解釋一下)。並在自己的數據庫中生成一張訂單記錄。 Paypal在Session中記錄下這些交易信息 用戶用Paypal賬戶登錄Paypal(Sandbox用Sandbox的虛擬帳號),複查明細,點擊Pay按鈕 Paypal進行交易處理,如果我們的Paypal收款帳號在接受帳款上沒有什麼問題(沒有特別的需要在界面上“Accept”的地方),交易完成,那麼Paypal會發送一個IPN,並發送提示郵件。 我們IPN Handler接受到信息,首先向Paypal進行校驗,如果信息正確,然後根據信息和自己數據庫中進行比對,如果無誤,可以將支付信息保存,並修改訂單狀態。 然後Paypal會顯示一個界面表示交易完成,此時如果用戶點擊“Return”按鈕,Paypal會將用戶送回我們網站指定地點。 我們網站迎接用戶回來,向用戶表示感謝,並進行提醒,給出訂單號等等。 整個流程基本如下,不過其中有很多要注意的地方:我們看到了,接口地址是https開頭的,也就是要求使用SSL進行連接,其實Paypal Sandbox可以使用http,但是最後實際的Paypal接口,不支持http協議,所以如果你用PHP寫IPN Handler腳本的話,在驗證信息的代碼部分,如果簡簡單單使用fopen、HTTP_Request之類的工具是沒用的,PHP的socks庫不支持SSL,應該使用curl,有兩種方法,一個是使用PHP擴展中的libcurl,Paypal官方發布的SDK中便是使用的這個方法,但Paypal的SDK非常複雜,如果想自己寫,可以使用Snoopy,一個簡單實用的PHP請求庫(它自己說是模擬了瀏覽器的行為),而它使用的是Curl的可執行文件,通過管道獲得結果,而非php的libcurl,所以自己cURL的主頁上下載一個支持SSL的編譯版本,可能還需要安裝OpenSSL,不過對於Linux系統,可能應該會都帶。 在支付表單中,可以自己設置notify_url字段,來指定此次交易的信息應該發送到哪個地方,這樣就可以覆蓋在Profile中我們的設置,另外,這個字段要進行urlencode。 我們得到的IPN信息中,status對應的便是交易狀態,如Complete表示完成,首字母大寫,而驗證結果則是VERIFIEY或者INVALID,全部大寫,具體的內容,可以查看Paypal官方的文檔訂單管理整合指南。
PHP開發Paypal支付,支付流程和接口實現方案
近期由於要開發公司外貿商城,需要對接Paypal支付。在開發過程中發現有好多坑。文檔都是英文文檔(主要還是自己英文水平不過關)、網上找的那些翻譯過的文檔老舊、沙箱環境網站卡的要讓人崩潰。整個過程真是讓人頭大,經過各種翻天覆地的百度、google、論壇終於功夫不負有心人跑通了。下面就結合網上的文檔給大家說說如何開發Paypal支付(一個Demo),避免大家在踩坑。
3.開啟PDT設置同步回調地址(這步拿到at_token return回調使用)
3.項目根目錄下創建return.php文件
4.項目根目錄下創建cancel.php文件
目前網上的文檔感覺沒有一個整體流程詳細的介紹,而且有些比較老。本篇文章是匯總整理並加入了一些自己的改造和踩坑分享而已。文介紹了paypal支付的其中一種方式,還有一種SDK的方式,這兩種有點小區別但是整體的流程還是一樣是。等後續會和大家分享另一種方式。還請各位大佬多多指教。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/155007.html