该接口主要用于获取支付宝用户的基础信息:用户ID、昵称、性别、省份、城市、用户头像、用户类型、用户状态、是否实名认证、是否是学生等信息。
一、文档地址
官方文档地址:[url]https://docs.open.alipay.com/284/106001[/url]
二、开发前准备工作
调用步骤:[url]https://openclub.alipay.com/read.php?tid=12194&fid=69[/url]
注意事项:1、支持沙箱测试;2、不需签约,但需要添加功能;3、支持第三方调用。
三、接口调用流程
1、授权URL拼接,获取access_token
具体调用步骤参考:[url]https://openclub.alipay.com/read.php?tid=14595&fid=68#anchor2[/url]
注:由于该产品是需要实现获取会员信息的功能,授权URL拼接的scope必须传入auth_user。
如scope=auth_user,auth_base。
2、获取用户信息
获取用户信息必须通过alipay.user.info.share(支付宝会员授权信息查询接口) 调用获取。
具体代码调用方式参见支付宝会员授权信息查询接口请求示例。
四、会员授权信息查询接口请求示例
1、参数说明
auth_token:alipay.system.oauth.token(换取授权访问令牌) 接口调用返回的响应参数access_token。
注:该接口不需要设置请求参数,只需要在公共参数中必传auth_token
2、JAVA版本请求示例
public static void main(String[] args) throws AlipayApiException { AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, AlipayConfig.format, AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type); //调用接口获取用户信息 AlipayUserInfoShareRequest request = new AlipayUserInfoShareRequest(); //需要用户授权后,将auth_code换取accessToken,注入 String accessToken = "composeBd364827b102144cf992fb7ce6e327X89"; try { AlipayUserInfoShareResponse response = alipayClient.execute(request, accessToken); System.out.println(response.getBody()); } catch (AlipayApiException e) { //处理异常 e.printStackTrace(); }}
响应参数
{"alipay_user_info_share_response":{"code":"10000","msg":"Success","gender":"f","is_certified":"T","is_student_certified":"F","nick_name":"买家沙箱","user_id":"2088102175794899","user_status":"T","user_type":"2"},"sign":"GFOQ5SbhPPSkL1Dmf9snUJxTEeCxngsXOQubURBIDx5C9/sb7CnNmHdSXDru9NPDlvfSQPT+b+iUOVapARafpsdqP6XIdHqQfrLB2jE6YO2ql52J07/yGrUNAwjaaKd/ndBbpljhn9laQATD1sqrwwUGmttiGkyK6cPvW3lH/ndAvbDRkwnKdrLKZGSou3erf0thL6QzlS12XXryTnvEArCuteAsqqDFi81R/PVKyXdl15P9SdVQzhJski5yZ3A1VEO9Vv96bVjVlgUZaIALddjOX4rh100e/mxx7K8qOmjX12r72pFyPrVEAQChRTSx1OxiXureiCScscHKtZdOQg=="}
3、PHP版本请求示例
$aop = new AopClient ();$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';$aop->appId = 'your app_id';$aop->rsaPrivateKey = '请填写开发者私钥去头去尾去回车,一行字符串';$aop->alipayrsaPublicKey='请填写支付宝公钥,一行字符串';$aop->apiVersion = '1.0';$aop->signType = 'RSA2';$aop->postCharset='GBK';$aop->format='json';$request = new AlipayUserInfoShareRequest ();$result = $aop->execute ( $request , 'composeBd364827b102144cf992fb7ce6e327X89'); echo json_encode($result);
响应参数
{"alipay_user_info_share_response":{"code":"10000","msg":"Success","gender":"f","is_certified":"T","is_student_certified":"F","nick_name":"买家沙箱","user_id":"2088102175794899","user_status":"T","user_type":"2"},"sign":"GFOQ5SbhPPSkL1Dmf9snUJxTEeCxngsXOQubURBIDx5C9/sb7CnNmHdSXDru9NPDlvfSQPT+b+iUOVapARafpsdqP6XIdHqQfrLB2jE6YO2ql52J07/yGrUNAwjaaKd/ndBbpljhn9laQATD1sqrwwUGmttiGkyK6cPvW3lH/ndAvbDRkwnKdrLKZGSou3erf0thL6QzlS12XXryTnvEArCuteAsqqDFi81R/PVKyXdl15P9SdVQzhJski5yZ3A1VEO9Vv96bVjVlgUZaIALddjOX4rh100e/mxx7K8qOmjX12r72pFyPrVEAQChRTSx1OxiXureiCScscHKtZdOQg=="}
4、.NET版本请求示例
IAopClient client = new DefaultAopClient(config.gatewayUrl, config.app_id, config.private_key, "json", "1.0", "RSA2", config.alipay_public_key, config.charset, false);AlipayUserInfoShareRequest request= new AlipayUserInfoShareRequest() ;AlipayUserInfoShareResponse response=client.execute(request,"composeBd364827b102144cf992fb7ce6e327X89");Console.WriteLine(response.Body);
响应参数
{"alipay_user_info_share_response":{"code":"10000","msg":"Success","gender":"f","is_certified":"T","is_student_certified":"F","nick_name":"买家沙箱","user_id":"2088102175794899","user_status":"T","user_type":"2"},"sign":"GFOQ5SbhPPSkL1Dmf9snUJxTEeCxngsXOQubURBIDx5C9/sb7CnNmHdSXDru9NPDlvfSQPT+b+iUOVapARafpsdqP6XIdHqQfrLB2jE6YO2ql52J07/yGrUNAwjaaKd/ndBbpljhn9laQATD1sqrwwUGmttiGkyK6cPvW3lH/ndAvbDRkwnKdrLKZGSou3erf0thL6QzlS12XXryTnvEArCuteAsqqDFi81R/PVKyXdl15P9SdVQzhJski5yZ3A1VEO9Vv96bVjVlgUZaIALddjOX4rh100e/mxx7K8qOmjX12r72pFyPrVEAQChRTSx1OxiXureiCScscHKtZdOQg=="}
五、注意事项
1、auth_token传参方式
接口调用方式中,设置auth_token的代码示例:
JAVA:
response = alipayClient.execute(request, accessToken);
PHP:
$result = $aop->execute($request,$accessToken);
.net:
response=client.execute(request,accessToken);
2、服务商代商户调用获取用户信息
服务商如何代商户调用获取用户信息:[url]https://openclub.alipay.com/read.php?tid=12762&fid=68[/url]
六、常见报错
1、Q:返回响应参数,无nick_name(昵称)?
A:(1)该用户为企业账户无法获取昵称;
(2)该用户未设置昵称;
2、Q:返回响应参数,无avatar(用户头像地址)?
A:该用户账户未设置头像。
3、Q:如何校验用户是否实名认证?
A:根据查询会员信息接口返回的响应参数user_status用户状态(Q/T/B/W)进行判断。
Q代表快速注册用户
T代表已认证用户
B代表被冻结账户
W代表已注册,未激活的账户
如果还是报错,请按如下方式进行提问:
正确提问方式:使用环境(沙箱还是正式环境)+接口名称(中文+英文)+ 请求参数 + 报错信息详情