2019 Laravel 6.0+ PayPal 圖文教學
需要有一台 https 主機與 PayPal 主機溝通。
第一步:前往 PayPal 註冊一個正式帳號 (這個也要教就可以上一頁了)
第二步:登入 PayPal 設定幣別,參照如下圖,位置在
『右上角齒輪-> Account Settings-> 左邊選 Money, banks and cards-> 在右方 Currency management 的部分新增一個你預計常常收到的幣別』,如果這邊不做,收到此種幣別時, PayPal 需要您手動確認款項,很麻煩。
第三步:前往開發者頁面,進來後如下圖
『左方選單會看到 My Apps & Credentials 點進去後會有一個預先創建好的 Default Application,我們就先用這個當作範例,點進去如下圖!』
以下介紹一下這邊:
- Sandbox account 就是在沙盒環境 (模擬測試環境) 中你的商業帳戶
- Client ID 跟 Secret 需要記下來之後會用到
- Webhook 的部分是設定交易過程中的『異步回調』,務必設定。否則交易無法確認。新增時:下方的勾選可以先全部勾選
第四步:確認一下沙盒環境的帳號密碼
『左方的 Accounts 點下去後如下圖』
這邊會看到兩組預設帳號,一組是個人帳號,一組是商業帳號,點擊 View/Edit Account 後可以設定一些內容,這邊先把商業帳號的密碼記下來。
第五步:前往我的 Github PayPal 專案 點一顆星星 ( 誤。
把我的專案安裝到主機上並設定好一組 https 網址對應到 public 底下即可。
第六步:編輯 .env ,前兩個就是上面說的,第三個請改成自己的 Domain
PAYPAL_CLIENT_ID=
PAYPAL_CLIENT_SECRET=
PAYPAL_CALLBACK_URL=https://your_domain/api/paypal/callback
第七步:測試付款及收款
- 前往 https://your_domain 會看到分成兩個部分,我們先看購買商品的部分,如下圖:
首先我們先測試購買商品,輸入商品資訊後點擊確定結帳,如果沒意外就會轉跳到 PayPal 的付款畫面。隨便輸入資訊如下後按繼續。
最後會出現付款結果畫面
到這邊恭喜你成功一半了,異步大概會延遲幾秒鐘到幾分鐘,所以可以點擊第三個網址。先去 sandbox 裡面看看你的商業帳戶是不是真的有收到錢。
這時候可以前往 Log 也就是第二個網址查看異步回調的情況,如果有看到
一個是 "event_type": "PAYMENTS.PAYMENT.CREATED"
一個是 "event_type": "PAYMENT.SALE.COMPLETED"
可以再確認 COMPLETE 裡面的 STATE 是不是等於 completed。
如果是,恭喜你。這筆交易真的成功了!
第八步:退款
都測試完畢後回到首頁會看到下方有個退款區域
這時回到 Log 把 交易 ID 複製下來
可以看到交易 ID 是 5LX31631EC5300119,回到我們的退款頁輸入如下
按下確定退款!等待結果!
恭喜你退款成功了。到 Log 理論上會收到一個同步跟一個異步的退款結果
接下來我們到 sandbox 看看款項有沒有退掉吧!
果然退掉了,還把手續費佛心的還給你了~這樣誰也不吃虧了!
現在如果到這邊你都成功了,想研究我怎麼實作的話可以直接看我的程式碼,我大概列一下要看的地方,相信對你來說一定是簡單到不行。
// 主程式碼
app/Http/Controllers/PaypalController.php
// 路由
routes/api.php
routes/web.php
// View
resources/views/paypal.blade.php
resources/views/results.blade.php用到的套件是
paypal/rest-api-sdk-php
如果對你有幫助!來點星!然後分享出去吧~ Github 連結