W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
調(diào)用接口獲取授權(quán)碼(authCode)。通過授權(quán)碼可進(jìn)而換取支付寶用戶登錄態(tài)信息、給用戶發(fā)會員卡等,從而方便地獲取支付寶用戶身份標(biāo)識,快速建立小程序內(nèi)的用戶體系。
相關(guān)問題請參見下文 用戶授權(quán) FAQ 。
注意:
// 示例一
my.getAuthCode({
scopes: 'auth_user',
success: (res) => {
my.alert({
content: res.authCode,
});
},
});
// 示例二
my.getAuthCode({
scopes: ['auth_user'],
success: (res) => {
my.alert({
content: res.authCode,
});
},
});
Object 類型,屬性如下:
屬性 | 類型 | 必填 | 描述 |
---|---|---|---|
scopes | String/Array | 否 | 授權(quán)類型,默認(rèn) auth_base。支持 auth_base(靜默授權(quán))/ auth_user(主動授權(quán))/auth_zhima (獲取用戶芝麻信息) |
success | Function | 否 | 調(diào)用成功的回調(diào)函數(shù)。 |
fail | Function | 否 | 調(diào)用失敗的回調(diào)函數(shù)。 |
complete | Function | 否 | 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)。 |
一個 scope 表示開發(fā)者需要請求用戶授權(quán)的權(quán)限范圍,一個 scope 包含至少一個 OpenAPI 接口或者 JSAPI 接口,一次授權(quán)可以組合多個 scope 做組合授權(quán),用“,”分隔。
scopes | 說明 | 包含的openapi接口 |
---|---|---|
auth_base | 靜默授權(quán)。用戶基礎(chǔ)授權(quán),僅用于靜默獲取用戶支付寶uid。靜默授權(quán)不彈框,直接獲取用戶信息。 | 無 |
auth_user | 網(wǎng)站支付寶登錄; | alipay.user.info.share |
auth_zhima | 用戶芝麻信息。 | zhima.credit.score.brief.get |
名稱 | 類型 | 描述 |
---|---|---|
authCode | String | 授權(quán)碼 |
authErrorScopes | Key-Value | 失敗的授權(quán)類型,key 是授權(quán)失敗的 scope,value 是對應(yīng)的錯誤碼 |
authSuccessScopes | Array | 成功的授權(quán) scope |
錯誤碼 | 描述 | 解決方案 |
---|---|---|
4 | 無權(quán)限調(diào)(N22104)。 | 確認(rèn)小程序應(yīng)用是否授權(quán)給了三方應(yīng)用,三方應(yīng)用是否添加了 JSAPI 基礎(chǔ)包 功能包,可嘗試添加 JSAPI 基礎(chǔ)包 功能包后,重新授權(quán)、重新推送預(yù)覽調(diào)試或者直接解除三方應(yīng)用授權(quán),重新推送預(yù)覽調(diào)試。說明:小程序應(yīng)用授權(quán)給三方應(yīng)用后,小程序在真機(jī)上的運行使用的是三方應(yīng)用的功能包,不再是使用小程序自身的功能包。若是小程序應(yīng)用 JSAPI 基礎(chǔ)包 功能包沒有或者不全,建議刪除小程序應(yīng)用,重新創(chuàng)建一個新的小程序應(yīng)用來調(diào)試。 |
10 | Empty Data | 為了創(chuàng)造更良好的支付寶小程序用戶體驗,在小程序的首屏引導(dǎo)用戶授權(quán)是不被允許的。需要在用戶充分了解小程序的業(yè)務(wù)內(nèi)容后再引導(dǎo)用戶授權(quán),建議將小程序授權(quán)環(huán)節(jié)放在業(yè)務(wù)流程中。檢查 scopes 入?yún)⑹欠裾_(參數(shù)錯誤會先彈出“服務(wù)正忙,請稍后再試”)。建議在需要獲取用戶信息前,增加獲取權(quán)限的用途和引導(dǎo)提示,引導(dǎo)用戶接受小程序授權(quán),增加用戶體驗。在 fail 做引導(dǎo)處理,重新調(diào)用 my.getAuthCode 授權(quán)。 |
11 | 用戶取消授權(quán) | 為了創(chuàng)造更良好的支付寶小程序用戶體驗,在小程序的首屏引導(dǎo)用戶授權(quán)是不被允許的。需要在用戶充分了解小程序的業(yè)務(wù)內(nèi)容后再引導(dǎo)用戶授權(quán),建議將小程序授權(quán)環(huán)節(jié)放在業(yè)務(wù)流程中。建議在需要獲取用戶信息前,增加獲取權(quán)限的用途和引導(dǎo)提示,引導(dǎo)用戶接受小程序授權(quán),增加用戶體驗。在 fail 做引導(dǎo)處理,重新調(diào)用 my.getAuthCode 授權(quán)。 |
小程序 不支持 使用拼接授權(quán)鏈接進(jìn)行授權(quán),建議使用 my.getAuthCode 實現(xiàn)用戶授權(quán)、用戶登錄等。
正常獲取會員基礎(chǔ)信息是需要彈窗兩次進(jìn)行授權(quán)確認(rèn)的,一次是 my.getAuthCode 獲取用戶授權(quán)碼的授權(quán)框, 一次是 my.getOpenUserInfo 中獲取用戶基礎(chǔ)信息的授權(quán)框。
my.getAuthCode 使用靜默授權(quán)方法(令 scopes 為 auth_base)即可實現(xiàn)只出現(xiàn)一個授權(quán)彈框。示例代碼如下:
my.getAuthCode({
scopes: ['auth_base'],
success: (res) => {
my.alert({
content: res.authCode,
});
},
});
在 IDE 中使用 console.log,在 console 里打印即可。示例代碼如下:
my.getAuthCode({
scopes: 'auth_user',
success: (res) => {
console.log(res.authCode),
my.alert({
content: res.authCode,
});
},
});
效果如下圖所示:
開發(fā)者在支付寶開放平臺上讀寫用戶信息,均需經(jīng)過用戶許可。支付寶開放平臺的用戶授權(quán)基于國際標(biāo)準(zhǔn)的 OAuth2.0 授權(quán)機(jī)制?;诖藱C(jī)制,使用 my.getAuthCode API 得到用戶授權(quán)后,方可進(jìn)行獲取用戶信息、給用戶發(fā)放會員卡等操作。
為了創(chuàng)造更良好的支付寶小程序用戶體驗,在小程序的首屏引導(dǎo)用戶授權(quán)是不被允許的。需要在用戶充分了解小程序的業(yè)務(wù)內(nèi)容后再引導(dǎo)用戶授權(quán),建議將小程序授權(quán)環(huán)節(jié)放在業(yè)務(wù)流程中。
不可以,user_id 需要在服務(wù)器端調(diào)用 alipay.system.oauth.token 獲取。
可以,但是必須是靜默授權(quán)。小程序?qū)徍私挂贿M(jìn)入就強制彈授權(quán)框。
報錯描述:ISV 權(quán)限不足,建議在控制臺檢查對應(yīng)功能是否已經(jīng)添加。
報錯原因:此報錯的含義就是沒有對應(yīng)接口權(quán)限。
解決方案:
若沒有請先完成簽約,簽約相關(guān)問題可咨詢商服服務(wù)熱線:95188-1咨詢!
調(diào)用 my.getAuthCode 獲取到的 authCode 值是不一樣的,但是在同一個支付寶賬戶登錄的情況下,根據(jù)此值獲取到的 user_id 是唯一的。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: