這兩天在做Crowdfunding網站mvp,使用Paypal來做金流,需要實作preapproval,關於crowdfunding中文整理介紹,這個整理的還不錯
其中Chained Payments解決付款名義的問題,收款人拿到中介人而不是付款人的款項,手續費只算一次,而且可以選擇哪個角色付手續費。
來看看Preapproval,先向付款人取得支付意願,在約定的時間可以用約定的次數做約定上限的付款動作,所以分成三個部份
1. 使用一個paypal account和application id跟Paypal 拿一個Preapproval Key
2. 用這個 Preapproval Key 引導使用者到Paypal付款(或內嵌),並紀錄Preapproval Key
3. 在約定時間內做約定額度的付款
Preapproval主要使用的參數在這邊,引導使用者付款的說明在這邊。
3. 在約定時間內做約定額度的付款
Preapproval主要使用的參數在這邊,引導使用者付款的說明在這邊。
實作上遇到幾個問題
1. Paypal不流行,誰可以收款和付款?
要有Paypal Premier Account,可以收信用卡付款,但是preapproval流程,付款人必須要有Paypal Account
2. Application ID?
相當麻煩,要註冊成Paypal Developer然後提出申請,Sandbox測試的話使用測試ID:APP-80W284485P519543T
3. Sandbox測試使用的連結?
文件完全沒寫,超級難找,趕快抄下來
API request: https://svcs.sandbox.paypal.com/AdaptivePayments
Redirect url: https://sandbox.paypal.com/webscr
另外注意事項:
1. 第三步執行payments的時候要帶上pre-approval key。
文件完全沒寫,超級難找,趕快抄下來
API request: https://svcs.sandbox.paypal.com/AdaptivePayments
Redirect url: https://sandbox.paypal.com/webscr
另外注意事項:
1. 第三步執行payments的時候要帶上pre-approval key。
2. 收款帳戶要去設定可以收的幣別,否則交易款項會處於unclaimed狀態。
3. pre-approval之後,使用者仍然可以cancel pre-approval,此時IPN handler要根據"status"參數來處理request,status可能的值是ACTIVE、DEACTIVED、CANCELED。approved參數會維持true。
3. pre-approval之後,使用者仍然可以cancel pre-approval,此時IPN handler要根據"status"參數來處理request,status可能的值是ACTIVE、DEACTIVED、CANCELED。approved參數會維持true。
4. Paypal回應時間較長,httplib2等要設定timeout時間,否則會發2次request而造成錯誤訊息: "The total amount of all payments exceeds the maximum total amount for all payments"。 (httplib2寫死兩次重試)
沒有留言:
張貼留言