支付寶小程序 獲取會(huì)員信息的方法
2018-01-08
導(dǎo)讀:支付寶小程序 獲取會(huì)員信息是開(kāi)發(fā)支付寶小程序很重要的一步,從而商家可以通過(guò)這樣的步驟獲取商家的利益,下面是具體的操作步驟: 開(kāi)發(fā)者可以通過(guò)國(guó)際標(biāo)準(zhǔn)的OAuth2.0授權(quán)機(jī)制,在...
支付寶小程序 獲取會(huì)員信息是開(kāi)發(fā)支付寶小程序很重要的一步,從而商家可以通過(guò)這樣的步驟獲取商家的利益,下面是具體的操作步驟:
開(kāi)發(fā)者可以通過(guò)國(guó)際標(biāo)準(zhǔn)的OAuth2.0授權(quán)機(jī)制,在用戶授權(quán)的情況下,得到用于換取用戶信息的令牌。在拿到用戶的授權(quán)令牌后,通過(guò)調(diào)用用戶信息共享接口,獲取用戶的公開(kāi)信息。
開(kāi)發(fā)者可以通過(guò)國(guó)際標(biāo)準(zhǔn)的OAuth2.0授權(quán)機(jī)制,在用戶授權(quán)的情況下,得到用于換取用戶信息的令牌。在拿到用戶的授權(quán)令牌后,通過(guò)調(diào)用用戶信息共享接口,獲取用戶的公開(kāi)信息。
1.1 準(zhǔn)入條件
小程序開(kāi)發(fā)者均可使用。
1.2 計(jì)費(fèi)模式
不收費(fèi)。
1.3 案例
步驟一:用戶首次進(jìn)入小程序首頁(yè),若無(wú)進(jìn)行業(yè)務(wù)交互,則無(wú)需喚起會(huì)員授權(quán)

步驟二:當(dāng)需要訪問(wèn)用戶時(shí),以彈框的形式確認(rèn)授權(quán)(靜默授權(quán)不彈窗)。建議:用戶授權(quán)放在需要展示用戶相關(guān)信息的環(huán)節(jié),請(qǐng)勿一開(kāi)始就引導(dǎo)授權(quán)。

步驟三:用戶確認(rèn)授權(quán)后,可以在該小程序的會(huì)員中心查看會(huì)員信息,授權(quán)完成。
2. 接入指引

2.1 添加“獲取會(huì)員信息”功能
在小程序詳情頁(yè)的功能列表中添加“獲取會(huì)員信息”。

2.2 客戶端獲取authcode
my.getAuthCode({
scopes: 'auth_user', // 主動(dòng)授權(quán):auth_user,靜默授權(quán):auth_base
success: (res) => {
if (res.authCode) {
// 認(rèn)證成功
// 調(diào)用自己的服務(wù)端接口,讓服務(wù)端進(jìn)行后端的授權(quán)認(rèn)證,并且種session,需要解決跨域問(wèn)題
my.httpRequest({
url: 'http://isv.com/auth', // 該url是自己的服務(wù)地址,實(shí)現(xiàn)的功能是服務(wù)端拿到authcode去開(kāi)放平臺(tái)進(jìn)行token驗(yàn)證
data: {
authcode: res.authcode
},
success: () => {
// 授權(quán)成功并且服務(wù)器端登錄成功
},
fail: () => {
// 根據(jù)自己的業(yè)務(wù)場(chǎng)景來(lái)進(jìn)行錯(cuò)誤處理
},
});
}
},
});
2.3 服務(wù)端獲取access_token
服務(wù)器端調(diào)用alipay.system.oauth.token接口換取授權(quán)訪問(wèn)令牌,開(kāi)發(fā)者可通過(guò)獲取到的auth_code換取access_token和用戶ID。auth_code作為換取access_token的票據(jù),每次用戶授權(quán)完成,回調(diào)地址中的auth_code將不一樣,auth_code只能使用一次,一天未被使用自動(dòng)過(guò)期。具體可參見(jiàn)文檔alipay.system.oauth.token。 開(kāi)放平臺(tái)服務(wù)端SDK的java調(diào)用示例如下:
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("調(diào)用成功");
} else {
System.out.println("調(diào)用失敗");
}
認(rèn)證成功 把uid&token種到session中,在session有效期內(nèi)就不需要每次都走授權(quán)平臺(tái)進(jìn)行驗(yàn)證。
認(rèn)證失敗 則返回失敗原因,需要再重新走授權(quán)流程。
注意 如果僅是為了授權(quán)或獲取用戶ID,那么到此授權(quán)結(jié)束。
2.4 服務(wù)端獲取會(huì)員信息
如果服務(wù)端要獲取用戶信息,那么不僅需要完成以上步驟——客戶端獲取authCode、authCode換取token,還需要token換取用戶信息,該步驟需使用接口:alipay.user.info.share。
注意: 服務(wù)端獲取的用戶信息進(jìn)行落庫(kù),jsapi獲取的用戶信息用來(lái)界面展示,不建議把前端獲取到用戶信息透?jìng)鹘o服務(wù)端。 代碼以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("調(diào)用成功");
} else {
System.out.println("調(diào)用失敗");
}
2.5 客戶端獲取會(huì)員信息
前端通過(guò) my.getAuthUserInfo 接口獲得的用戶信息主要是用來(lái)進(jìn)行界面展示,如果想在數(shù)據(jù)庫(kù)存儲(chǔ),請(qǐng)用上面步驟,服務(wù)器端接口調(diào)用流程進(jìn)行獲取用戶信息。
my.getAuthCode({
scopes: 'auth_user',
success: (res) => {
my.getAuthUserInfo({
success: ({ nickName, avatar }) => {
console.log({ nickName, avatar })
}
});
},
});
返回字段:nickName, avatar
3. API列表
接口名稱 描述
my.getAuthCode 獲取用戶授權(quán)碼
alipay.system.oauth.token 換取授權(quán)訪問(wèn)令牌
alipay.user.info.share 服務(wù)端獲取會(huì)員信息
my.getAuthUserInfo 客戶端獲取會(huì)員信息
4. 補(bǔ)充說(shuō)明
服務(wù)端獲取不到會(huì)員信息
原因1:涉及到敏感信息如真實(shí)姓名、手機(jī)號(hào)、證件號(hào)等,這些敏感信息不會(huì)返回
原因2:調(diào)用的接口錯(cuò)誤,請(qǐng)使用接口:alipay.user.info.share
獲取會(huì)員信息,服務(wù)端報(bào) isv.invalid-token 無(wú)效 token
原因1:獲取授權(quán)碼scope 必須傳 auth_user
原因2:調(diào)用的接口錯(cuò)誤,請(qǐng)使用接口:alipay.user.info.share
以上就是關(guān)于支付寶小程序獲取會(huì)員信息的操作步驟,更多關(guān)于支付寶小程序開(kāi)發(fā)教程及使用教程如下:
支付寶入口在哪里打開(kāi),有哪些新的特性與微信相比
支付寶小程序開(kāi)發(fā)文檔步驟
支付寶小程序發(fā)布流程如何
小程序最新資訊推薦:
拼多多小程序是如何借社交營(yíng)銷(xiāo)來(lái)運(yùn)營(yíng)電商平臺(tái)
第二部分:如何開(kāi)通一個(gè)小商店