W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在小程序跳轉(zhuǎn)外部 H5 頁(yè)面或用戶(hù)登錄時(shí),由于業(yè)務(wù)場(chǎng)景需要依賴(lài)用戶(hù)信息來(lái)打通完整業(yè)務(wù)流程,接入方可按照下列方式獲取到用戶(hù)信息進(jìn)行留存或用戶(hù)認(rèn)證。
操作員需要在 web-managemnt 管理后臺(tái)配置登錄后回調(diào)地址。
說(shuō)明:收到通知后成功返回 true 字符串,失敗返回 false 字符串;如內(nèi)部邏輯復(fù)雜,建議使用異步方式處理;根據(jù)支付寶 UID 做好用戶(hù)冪等操作。
demo 示例
/**
* 登錄后通知demo,收到通知后通過(guò)SDK調(diào)用用戶(hù)信息獲取
* appId:應(yīng)用ID
* ticket:用戶(hù)授權(quán)令牌
* @return
*/
@RequestMapping(value = "/login/notify"m,ethod = {RequestMethod.GET,RequestMethod.POST})
public String loginNotify(String appId,String ticket){
UserAccountApi api = new UserAccountApi("127.0.0.1",8080);
try {
UserAccountInfo userAccountInfo = api.queryUserInfo(appId, ticket);
System.out.println(JSON.toJSONString(userAccountInfo));
} catch (Exception e) {
return "false";
}
return "true";
}
說(shuō)明:獲取用戶(hù)信息的方法參考下方說(shuō)明。
說(shuō)明:獲取用戶(hù)信息的方法參考下方說(shuō)明。
例如:alipays://platformapi/startapp?appId=2021001130622070
獲取小程序啟動(dòng)參數(shù)需要在小程序 app.js 文件 app() 的 onLaunch(options) 監(jiān)聽(tīng)小程序初始化函數(shù)中使用 options.query 獲取,獲取到值后,可以設(shè)置全局變量,使用頁(yè)面通過(guò) getApp() 方式獲取。
demo 示例
App({
onLaunch(options) {
console.log('options====', options);
const { query = {} } = options;
this.globalData.ticket = query.ticket;
this.globalData.appId = query.appId;
this.globalData.auth_code = query.auth_code;
},
onShow() {
console.log('app onShow');
},
onHide() {
console.log('--------onHide');
},
onError(msg) {
console.log('app OnError: ', msg);
},
shareData: {
},
globalData: {
ticket: '',
},
});
// 頁(yè)面 page/index/indexconst app = getApp()
const ticket = app.ticket;
const appIdRes = my.getAppIdSync();
說(shuō)明:獲取用戶(hù)信息的方法參考下方說(shuō)明。
前端獲取 ticket、appId 參數(shù)后,通過(guò)服務(wù)端完成用戶(hù)信息的獲取,通過(guò)用戶(hù)信息獲取完成用戶(hù)認(rèn)證。
說(shuō)明:該接口只適用于服務(wù)端交互,暫不支持直接對(duì)外網(wǎng)開(kāi)放,需要由業(yè)務(wù)系統(tǒng)包裝一層后傳到前端系統(tǒng)。
UserAccountApi api = new UserAccountApi("127.0.0.1",8080);// web-management內(nèi)網(wǎng)IP,端口號(hào)
/*參數(shù)說(shuō)明:1、appId : 由小程序端攜帶傳遞(應(yīng)用ID)2、ticket: 由小程序端攜帶傳遞(用戶(hù)授權(quán)令牌)3、cardTemplateId: 由小程序端攜帶傳遞,可為空*/
UserAccountInfo userAccountInfo = api.queryUserInfo("2021001137624110","0EK4MjA4ODExMjYzNTE4Mzk1Ng==37Q","2222");
System.out.println(JSON.toJSONString(userAccountInfo));
參數(shù) | 類(lèi)型 | 必填 | 最大長(zhǎng)度 | 參數(shù)說(shuō)明 |
---|---|---|---|---|
ticket | String | 是 | 64 | 服務(wù)端用戶(hù)憑證(前端參數(shù)) |
appId | String | 是 | 64 | 應(yīng)用 ID(前端參數(shù)) |
cardTemplateId | String | 否 | 64 | 會(huì)員卡模板 ID,會(huì)員卡號(hào)查詢(xún)時(shí)存在 |
參數(shù) | 類(lèi)型 | 必填 | 最大長(zhǎng)度 | 描述 |
---|---|---|---|---|
code | String | 是 | - | 接口返回碼 |
msg | String | 是 | - | 接口返回碼描述 |
data | Object | 否 | - | 業(yè)務(wù)數(shù)據(jù) |
└expiresTime | long | 是 | - | 訪(fǎng)問(wèn)令牌的到期時(shí)間 |
└avatar | string | 否 | - | 頭像 |
└alipayUid | string | 是 | 65 | 支付寶用戶(hù)唯一標(biāo)識(shí) |
└nickName | string | 否 | - | 支付寶昵稱(chēng) |
└fullName | 否 | - | 用戶(hù)真實(shí)姓名 | |
└phone | string | 否 | - | 手機(jī)號(hào) |
└idcardNoMD5 | string | 否 | - | 身份證號(hào)MD5加密 |
└idcardNo | string | 否 | - | 身份證號(hào) |
└certType | string | 否 | - | 證件類(lèi)型 |
└gender | string | 否 | - | 性別 m/f |
string | 否 | - | 郵箱 | |
└address | string | 否 | - | 住址 |
└province | String | 否 | 20 | 省份名稱(chēng) |
└city | String | 否 | 20 | 市名稱(chēng)。 |
└isCertified | string | 是 | - | 是否實(shí)名,T/F |
└bizCardNos | List | 否 | - | 用戶(hù)會(huì)員卡號(hào)列表,cardTemplateId有值時(shí)為單個(gè),cardTemplateId無(wú)則查詢(xún)?cè)撚脩?hù)下所有的卡號(hào) |
code(返回碼) | msg(返回碼描述) | 解決方案 |
---|---|---|
200 | 接口調(diào)用成功 | 使用data展示數(shù)據(jù) |
20001 | 授權(quán)權(quán)限不足,ticket參數(shù)為空 | 通過(guò)1.1.1接口獲取票據(jù) |
20002 | 授權(quán)已過(guò)期 | 通過(guò)1.1.1接口重新獲取票據(jù) |
40001 | 業(yè)務(wù)參數(shù)缺失 | 檢查請(qǐng)求參數(shù)必填項(xiàng) |
40004 | 業(yè)務(wù)處理失敗 | - |
說(shuō)明:僅適合 java 語(yǔ)言。
可通過(guò)參數(shù) auth_code 進(jìn)行用戶(hù)信息獲取。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: