您好,登錄后才能下訂單哦!
本篇內容介紹了“支付寶小程序如何獲取會員信息”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
開發者可以通過國際標準的OAuth3.0授權機制,在用戶授權的情況下,得到用于換取用戶信息的令牌。在拿到用戶的授權令牌后,通過調用用戶信息共享接口,獲取用戶的公開信息。
1.1 準入條件
小程序開發者均可使用。
1.2 計費模式
不收費。
1.3 案例
步驟一:用戶首次進入小程序首頁,若無進行業務交互,則無需喚起會員授權
步驟二:當需要訪問用戶時,以彈框的形式確認授權(靜默授權不彈窗)。建議:用戶授權放在需要展示用戶相關信息的環節,請勿一開始就引導授權。
步驟三:用戶確認授權后,可以在該小程序的會員中心查看會員信息,授權完成。
2. 接入指引
2.1 添加“獲取會員信息”功能
在小程序詳情頁的功能列表中添加“獲取會員信息”。
2.2 客戶端獲取authcode
my.getAuthCode({
scopes: 'auth_user', // 主動授權:auth_user,靜默授權:auth_base
success: (res) => {
if (res.authCode) {
// 認證成功
// 調用自己的服務端接口,讓服務端進行后端的授權認證,并且種session,需要解決跨域問題
my.httpRequest({
url: 'http://isv.com/auth', // 該url是自己的服務地址,實現的功能是服務端拿到authcode去開放平臺進行token驗證
data: {
authcode: res.authcode
},
success: () => {
// 授權成功并且服務器端登錄成功
},
fail: () => {
// 根據自己的業務場景來進行錯誤處理
},
});
}
},
});
2.3 服務端獲取access_token
服務器端調用alipay.system.oauth.token接口換取授權訪問令牌,開發者可通過獲取到的auth_code換取access_token和用戶ID。auth_code作為換取access_token的票據,每次用戶授權完成,回調地址中的auth_code將不一樣,auth_code只能使用一次,一天未被使用自動過期。具體可參見文檔alipay.system.oauth.token。 開放平臺服務端SDK的java調用示例如下:
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
request.setGrantType("authorization_code");
request.setCode("4b203fe6c11548bcabd8da5bb087a83b");
request.setRefreshToken("201208134b203fe6c11548bcabd8da5bb087a83b");
AlipaySystemOauthTokenResponse response = alipayClient.execute(request);
if(response.isSuccess()){
System.out.println("調用成功");
} else {
System.out.println("調用失敗");
}
認證成功 把uid&token種到session中,在session有效期內就不需要每次都走授權平臺進行驗證。
認證失敗 則返回失敗原因,需要再重新走授權流程。
注意 如果僅是為了授權或獲取用戶ID,那么到此授權結束。
2.4 服務端獲取會員信息
如果服務端要獲取用戶信息,那么不僅需要完成以上步驟——客戶端獲取authCode、authCode換取token,還需要token換取用戶信息,該步驟需使用接口:alipay.user.info.share。
注意: 服務端獲取的用戶信息進行落庫,jsapi獲取的用戶信息用來界面展示,不建議把前端獲取到用戶信息透傳給服務端。 代碼以java示例
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
AlipayUserInfoShareRequest request = new AlipayUserInfoShareRequest();
AlipayUserInfoShareResponse response = alipayClient.execute(request,accessToken);
if(response.isSuccess()){
System.out.println("調用成功");
} else {
System.out.println("調用失敗");
}
2.5 客戶端獲取會員信息
前端通過 my.getAuthUserInfo 接口獲得的用戶信息主要是用來進行界面展示,如果想在數據庫存儲,請用上面步驟,服務器端接口調用流程進行獲取用戶信息。
my.getAuthCode({
scopes: 'auth_user',
success: (res) => {
my.getAuthUserInfo({
success: ({ nickName, avatar }) => {
console.log({ nickName, avatar })
}
});
},
});
返回字段:nickName, avatar
3. API列表
接口名稱 描述
my.getAuthCode 獲取用戶授權碼
alipay.system.oauth.token 換取授權訪問令牌
alipay.user.info.share 服務端獲取會員信息
my.getAuthUserInfo 客戶端獲取會員信息
4. 補充說明
服務端獲取不到會員信息
原因1:涉及到敏感信息如真實姓名、手機號、證件號等,這些敏感信息不會返回
原因2:調用的接口錯誤,請使用接口:alipay.user.info.share
獲取會員信息,服務端報 isv.invalid-token 無效 token
原因1:獲取授權碼scope 必須傳 auth_user
原因2:調用的接口錯誤,請使用接口:alipay.user.info.share
“支付寶小程序如何獲取會員信息”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。