支付宝支付 - 支付宝服务商获取用户信息的坑

记录一下 开发支付宝 服务商角色 获取用户信息的坑

 

重要的点记录一下:

默认现在已经获取到了  app_auth_token

然后调用接口的时候 注意 app_id这个重要的参数 

 

用户信息授权

1、拼接用户信息授权链接

拼接规则:https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=APPID&scope=SCOPE&redirect_uri=ENCODED_URL

注意:

(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

 

https://openclub.alipay.com/club/history/read/12868

转载于:https://www.cnblogs.com/Human-nature/p/11555033.html

你可能感兴趣的:(支付宝支付 - 支付宝服务商获取用户信息的坑)