1. 程式人生 > >paypal支付注意事項

paypal支付注意事項

公司做出口業務自營網站需要使用paypal支付,最開始一臉懵逼從沒有接觸過paypal,後來看官網和其它部落格加上自己慢慢摸索,實戰得出以下注意事項。

1.Q:我的賬號的appId和secret在哪裡獲取?

A:首先要接paypal得有個開發者賬號,然後登陸 獲取appId和secret地址 使用開發者賬號登入即可看到Client ID和Secret,其中Sanbox是沙盒測試環境,live是正式環境。


2.Q:拿到Client ID和Secret後代碼怎麼配置?

A:已java,springboot環境為例,首先需要在application.yml中填上上面的Client ID和Secret


3.Q:怎麼跳轉到paypal支付頁面。

A:檢視paypal的文件我們發現paypal支付分2個步驟,第一個步驟是你把訂單資訊傳給paypal這時payal會返回一個approvalUrl(https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-1JB06386X57112029)給你,使用這個url直接在瀏覽器訪問就可以跳到paypal登入頁面。實際開發中這兩步可以在同一個介面中即可實現。


第二個步驟就是paypal登入後點擊continue按鈕才是真正的付款了,此時不需要再輸入密碼了,跟我們國內的微信和支付寶不一樣它們還需要再輸入一次密碼。


4.Q:關於商品傳不傳給paypal問題。

A:我們檢視paypal的api文件發現paypal並沒有要求我們傳商品的item過去,也就是非必填項。所以我們是可以不傳的。很多人就想問了不傳也可以那傳和不傳差別在哪?

其實差別就在支付點繼續的時候能不能看到那個購物車圖示。沒有傳商品的時候沒有購物車圖示也沒有總價顯示,傳了商品就會有總價並且還會有商品的詳情。傳不傳就看公司的需求了不傳就不會有總價顯示有好多公司就是這麼幹的比如Levis商城,傳了這裡就會掉入paypal的坑!什麼坑!paypal的校驗(後面會講)。


5.Q:跳到付款頁面不想支付了怎麼辦?

A:這是個什麼情況呢?這就涉及到一點電商網站的運營了。一般支付頁面設計有在下單頁面也有新開一個頁面,大部分網站都是在同一個頁面下單,下完單後在同一個頁面支付比如國內某寶,在同一個頁面的好處就是免得使用者點來點去,直接在一個頁面就完事了別整那麼多花裡胡哨的。還有一種就是跳到一個新開的頁面去頁面大多數就是一個空白頁面,只展示訂單資訊然後一個“去支付”按鈕。

說了那麼多接下來談下取消支付這個問題,一般網站為了提高下單支付轉換率就不給取消支付的按鈕,這個時候使用者想取消支付怎麼辦如果是同一個頁面只能點瀏覽器回退左箭頭了,如果是新開的頁面直接關了頁面就好了。

paypal在介面需要我們傳2個url過去,一個是successUrl,一個是cancelUrl,支付成功後會跳到successUrl去,如果取消也會跳到取消頁面,傳了取消按鈕在登入的時候就看到有串文字連結,點選即可取消。


6.Q:支付成功後想做自己的事(比如更新訂單資訊,插入操作記錄等)怎麼辦?

A:paypal支付成功後會返回一個payment物件給我們,裡面就是交易的詳情有交易號,支付人資訊,收款人資訊,地址,商品等資訊,如果我們需要在支付成功後再操作訂單資訊的話那麼在支付傳引數的時候就要把訂單ID或者其它的作為一個自定義引數custom傳給paypal,這樣支付成功paypal也會返回給我們,有了訂單ID就能做後續操作了。


程式碼就一行:

transaction.setCustom(paymentEx.getOrderId().toString());

7.Q:paypal的引數校驗有哪些?

A:paypal介面需要哪些引數官網已經列出來了可以檢視paypal介面引數,裡面有列出哪些是必填的。但是你以為躲過這些必填的就完事了嗎?那就too young to simple了,非必填也有校驗然而文件又沒有寫,真是個坑!分享下我遇到的:

金額:paypal需要我們傳總價(total),商品總價(subtotal),稅費(tax),運費(shipping),還有其它費用等過去。傳過去後paypal就會校驗第一個等式,total = subtotal + tax + shipping + 其它,這個等式不滿足的話就會報錯。

第二個等式,如果傳了商品就會校驗 subtotal = 產品1單價 * 數量 + 產品2單價 * 數量 + .....

正常情況下我們都能滿足這兩個等式,傳過去你若安好便好,你若是不通過打死你!

但是。。。。。後續講出現折扣的情況下就要注意了。

電話:paypal收貨人電話也是要求非必填的,而且還有兩個欄位分別是phone和phoneNumber。我就在這栽了跟頭我就傳了一個電話過去美國電話都是帶括號的比如(400)8888這種,一天不知道誰輸入了中文的括號進去了,然後就報錯了,要不是看日誌還真不知道是這個中文括號引起的。

8.Q:paypal支援優惠活動嗎?

A:前期網站運營需要拉新,提高知名度都會搞些優惠活動比如優惠碼,優惠券之類的,所以我就想看下paypal有沒有優惠碼之類的功能供我們使用,結果發現沒有發郵件問他們也說沒有需要我們自己處理,這就坑了~一個支付的平臺居然不支援優惠的功能瞬間鄙視它。

沒有優惠碼怎麼辦?paypal又要校驗那兩個等式(total = subtotal + tax +shipping + 其它,subtotal = 產品1單價 * 數量 + 產品2單價 * 數量 + .....),使用了優惠券這些資料都變了我們需要重新來組裝讓等式成立,一分都不能差差了就報錯。