支付寶小程序擴(kuò)展能力 AntBuilder 用戶(hù)信息對(duì)接指南

2020-09-19 10:45 更新

使用目的

在小程序跳轉(zhuǎn)外部 H5 頁(yè)面或用戶(hù)登錄時(shí),由于業(yè)務(wù)場(chǎng)景需要依賴(lài)用戶(hù)信息來(lái)打通完整業(yè)務(wù)流程,接入方可按照下列方式獲取到用戶(hù)信息進(jìn)行留存或用戶(hù)認(rèn)證。

互通模式

登錄回調(diào)模式

操作流程

操作員需要在 web-managemnt 管理后臺(tái)配置登錄后回調(diào)地址。

image.png

image.png

實(shí)例

說(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ō)明。

服務(wù)跳轉(zhuǎn)參數(shù)模式

參數(shù)說(shuō)明

  • ticket:用戶(hù)授權(quán)憑證
  • appId:應(yīng)用的 APPID
  • auth_code:支付寶用戶(hù)授權(quán)碼(參數(shù)名可動(dòng)態(tài)更改),可通過(guò)該碼進(jìn)行服務(wù)端用戶(hù)信息交換。

說(shuō)明:獲取用戶(hù)信息的方法參考下方說(shuō)明。

服務(wù)跳轉(zhuǎn)類(lèi)型

  • H5 跳轉(zhuǎn)

例如:http://www.taobao.com?

  • 外部小程序跳轉(zhuǎn)

例如: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: '',
  },
});
  • 本地小程序跳轉(zhuǎn)

 // 頁(yè)面 page/index/indexconst app = getApp()
const ticket = app.ticket;
const appIdRes = my.getAppIdSync();

說(shuō)明:獲取用戶(hù)信息的方法參考下方說(shuō)明。

獲取用戶(hù)信息方式

前端獲取 ticket、appId 參數(shù)后,通過(guò)服務(wù)端完成用戶(hù)信息的獲取,通過(guò)用戶(hù)信息獲取完成用戶(hù)認(rèn)證。

說(shuō)明:該接口只適用于服務(wù)端交互,暫不支持直接對(duì)外網(wǎng)開(kāi)放,需要由業(yè)務(wù)系統(tǒng)包裝一層后傳到前端系統(tǒng)。

SDK 方式

下載 SDK

調(diào)用示例

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));

HTTP 方式

  • 接口地址:/api/v1/biz/user/info
  • 請(qǐng)求方式:get/post
  • 請(qǐng)求參數(shù):
參數(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í)存在

  • 響應(yīng)參數(shù)(json 格式)
參數(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
└email 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)

  • API 公共錯(cuò)誤碼
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ù)處理失敗 -

AuthCode方式

說(shuō)明:僅適合 java 語(yǔ)言。

可通過(guò)參數(shù) auth_code 進(jìn)行用戶(hù)信息獲取。

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)