1. 程式人生 > >支付寶小程序--如何獲取用戶信息

支付寶小程序--如何獲取用戶信息

用戶授權 undefine access ava .info char 頭像 alipay tac

需要在開放平臺-開發者中心-我的應用-小程序-小程序詳情-開發管理-功能列表中,添加功能【獲取會員信息】。(不需要簽約)狀態為“已生效”,就可以擁有調用獲取會員信息的權限。 接著編寫獲取會員信息的代碼:

1.如果只是在客戶端上做展示用,則使用my.getAuthCode、my.getAuthUserInfo函數即可拿到用戶昵稱與用戶頭像。 小程序示例:

my.getAuthCode({

 scopes: ‘auth_user‘,

 success: (res) => { //獲取用戶信息

 my.getAuthUserInfo({

 success: (res) => {

 my.alert(res.nickName); //獲取的用戶昵稱

 my.alert(res.avatar); //獲取的用戶頭像圖片

 }

 });

 },

 });

2.如果需要把信息存儲到數據庫中,則需要: 第一步:調用JSAPI:my.getAuthCode,獲取authcode; 代碼示例:

//獲取用戶信息

 my.getAuthCode({

 scopes: ‘auth_user‘, //授權類型,默認auth_base(靜默授權),支持auth_base/auth_user(主動授權)

 success: (res) => {

 my.alert(res.authCode); //獲取的autoCode授權碼

 },

 });

第二步:調用JSAPI:my.httpRequest,連接您自己的服務器;

代碼示例:

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: () => { // 根據自己的業務場景來進行錯誤處理 },

 });[/size]

[size=3] [/size][size=2] }

 },

 });

註意:使用my.httpRequest連接服務器需要解決跨域問題,需要在開放平臺-開發者中心-我的應用-小程序-小程序詳情-開發管理-設置中添加httpRequest域名白名單 第三步:在您的服務端,調用開放平臺接口alipay.system.oauth.token,用authcode換取token; 以JAVA代碼為例:

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");

 AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();

 request.setCode("2e4248c2f50b4653bf18ecee3466UC18");

 request.setGrantType("authorization_code");

 try {

 AlipaySystemOauthTokenResponse oauthTokenResponse = alipayClient.execute(request);

 System.out.println(oauthTokenResponse.getAccessToken());

 } catch (AlipayApiException e) {

 //處理異常

 e.printStackTrace();

 }

第四步:在您的服務端拿到token後,繼續調用開放平臺接口alipay.user.info.share,用token換取用戶信息。 以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("調用失敗");

 }

第五步:把處理成功的狀態反饋回JSAPI中,並在小程序中展示 具體請看【小程序文檔用戶授權】

支付寶小程序--如何獲取用戶信息