記錄一下 開發支付寶 服務商角色 獲取用戶信息的坑
重要的點記錄一下:
默認現在已經獲取到了 app_auth_token
然后調用接口的時候 注意 app_id這個重要的參數
用戶信息授權
1、拼接用戶信息授權鏈接
注意:
(1)appid為商戶的appid,在服務商代商戶獲取的用戶信息的過程中,該appid設置為第三方應用授權換取應用授權令牌接口返回的auth_app_id(授權商戶的AppId)參數值;
(2)獲取會員信息,scope必傳auth_user(獲取用戶信息、網站支付寶登錄);
(3)redirect_uri :該授權回調地址是第三方應用授權換取應用授權令牌接口返回的auth_app_id(授權商戶的AppId)對應應用設置的授權回調地址,即在授權商戶應用中查看,而不是服務商應用中查看;
2、獲取auth_code
用戶訪問(appid設置是授權商戶appid的)用戶信息授權鏈接返回獲取auth_code。
3、獲取access_token
服務商調用alipay.system.oauth.token(換取授權訪問令牌)進行獲取access_token。
AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest(); request.setCode(auth_code); request.setGrantType("authorization_code"); // 使用auth_code換取 access_token,請求帶上app_auth_token AlipaySystemOauthTokenResponse alipaySystemOauthTokenResponse = defaultAlipayClient.certificateExecute(request,null,appAuthToken);
注意:
(1)接口中設置的appid為服務商的appid,而不是授權商戶的appid;
(2)接口中必須設置第三方應用授權換取應用授權令牌接口返回的app_auth_token(商戶授權令牌);
(三)獲取會員信息
服務商調用alipay.user.info.share(支付寶會員授權信息查詢接口)代商戶獲取用戶信息use_id、昵稱、頭像等。
//公鑰證書模式下發起授權請求 請求帶上app_auth_token AlipayUserInfoShareResponse alipayUserInfoShareResponse = defaultAlipayClient.certificateExecute(alipayUserInfoShareRequest,alipaySystemOauthTokenResponse.getAccessToken(),appAuthToken);
注意:
(1)接口中設置的appid為服務商的appid,而不是授權商戶的appid;
(2)接口中必須設置第三方應用授權換取應用授權令牌接口返回的app_auth_token(商戶授權令牌);
(3)接口中設置用戶信息授權換取授權訪問令牌接口返回的access_token。
一定要注意
支付寶加密方式證書的模式下,調用接口的形式
設置app_auth_token和accessToken的代碼方式:
注:accessToken沒有可以設置為null。
defaultAlipayClient.certificateExecute(request,null,appAuthToken);
參考:
https://openclub.alipay.com/club/history/read/12762