由於工作專案安排,需要對接Paypal支付,檢視了Paypal官方文件,對於英文不好的我簡直是折磨。於是去百度有關方面的資料,發現中文資料少得可憐,經過幾天的摸索已經實現了功能,現在在這裡做一個記錄。
1.申請Paypal賬號
1.申請賬戶這一步請自行百度,網上教程很多
2.使用賬戶建立沙盒APP,注意!我這裡使用的是沙盒測試環境
1.登入賬戶,在網頁下方找到開發者,點選進入
2.在右上角找到你的頭像,點選My Account
3.進入該頁面內,開啟My Apps,點選Dedault Application來建立APP,預設情況下是沒有的,我這裡已經建立好了
4.開啟你剛剛建立的app,記錄下你的clien id和secret,後面會有用到
5.在下方找到login in with Paypal,勾選上,點選Adevanced options高階選項
6.勾選選項並填寫2個url,為什麼要填寫這2個url,請複製上面的文字並翻譯
7.在上方的Renturn url中填寫你的回撥地址,該回撥地址的作用是介面返回的code,你可以使用前端地址,也可以使用端地址,code會以引數的形式,新增到你填寫的回撥地址中。
8.在SANDBOS中,開啟accounts選項,在下面你能看你到系統為你建立的2個預設賬戶,使用下面的Personal(個人)賬戶,可以自己去更改賬戶的賬戶名和密碼,請自行嘗試。記錄下賬戶和密碼,後面會用到
3.生成前端測試程式碼
-https://developer.paypal.com/docs/log-in-with-paypal/reference/button-js-builder/
開啟該地址,生成前端按鈕
1.最好使用goole瀏覽器翻譯該頁面,會簡單很多。
2.填寫client id 和 scopes
3.auth end point選擇sandbox
4.在renturn url中填寫你剛剛建立的回撥url,這個url可以是前端網頁,也可以是後臺介面
5.在下方找到生成的程式碼,新建一個html檔案,將生成的程式碼放進去。
6.開啟頁面,你就能得到你的paypal按鈕了,使用該按鈕就能直接呼叫第三方paypal的登入頁面
4.根據官方文件提供的介面實現使用者資訊獲取
https://developer.paypal.com/docs/log-in-with-paypal/integrate/
請參照這個地址,認真看完整個文件說明。
1.如果要在正式環境中使用Paypal登入功能,需要7-10天的稽核期,具體要求看說明文件,我這裡使用的是測試沙盒環境
2.獲取授權碼:
a.如果你的上面的配置按鈕生成的沒有問題,那麼你點選按鈕之後,就會彈出輸入paypal賬戶密碼的框,輸入我們前面的測試個人賬戶的賬號密碼,你將在回撥地址中得到code,如果是前端,那麼code將會在url中。
b.例如:https://myreturnurl.com/?code={authorization_code}&scope=address%20openid%20profile%20email
3.獲取訪問令牌:
a.API:https://api-m.sandbox.paypal.com/v1/oauth2/token,
b.引數2個,分別是code和grant_type,grant_type的值為authorization_code
c.請求頭1個,官方文件寫的是'Authorization: Basic {Your Base64-encoded ClientID:Secret}' ,看到這個的時候我是一臉懵b的,其實就是在請求頭中加上Authorization引數,值為Basic(這裡有一個空格)加上Base64編碼的ClientID:Secret。
d.對,你沒有看錯,他們兩個引數用:連線起來,然後使用Base64編碼,前面加上Basic空格
e.響應引數參考文件
f.如果你遇到了問題,報錯了,請重頭在仔細閱讀文件,玩一玩大家來找茬的遊戲,我是已經玩吐了的
4.將 refresh_token 換成 access_token
a.API:https://api-m.sandbox.paypal.com/v1/oauth2/token
b.引數同上,不同的地方在於grant_type,他的值為refresh_token
c.如果遇到問題,請玩大家來找茬遊戲
5.通過access_token來獲取使用者資訊
a.API:https://api-m.sandbox.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1
b.請求頭引數:
Authorization: Bearer access_token ,有了上面的經驗,我相信你明白我的意思
Content-Type: application/json
c.注意這個請求是get方式,其它api都是post
d.返回結果請仔細查閱文件:https://developer.paypal.com/docs/api/identity/v1/#userinfo_get
後記
我已經把我踩過的坑和應該注意的地方都寫在了上面,請自行體會,大家來找茬的遊戲我是不太想玩了,已經夠夠的了。
雖然微不足道,但希望能幫助到大家,前人栽樹後人乘涼,我做一次栽樹的。
後面還會有Paypal的相關功能的對接,如果時間寬裕,我也會寫出來我的整個對接過程。
完了。
本作品採用《CC 協議》,轉載必須註明作者和本文連結