网站支付宝登录是适用于网站页面进行授权。
一、文档地址
官方文档地址:[url]https://docs.open.alipay.com/263/105809[/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、使用场景
网站支付宝登录是适用于网站页面的,并不适用于商户app端进行支付宝登录。
若在商户app端集成该产品,存在无法打开授权页面、授权成功后无法回调app端的情况。
2、回调场景
由于网站支付宝登录是通过设置授权回调地址,进行授权成功后回调。
注:授权回调地址只支持http和https的页面路径,不支持设置scheme地址,进行回调app客户端。
3、如何实现商户app端支付宝登录
该功能可集成app支付宝登录产品.
参考集成方式:[url]https://openclub.alipay.com/read.php?tid=7493&fid=60&ant_source=zsearch[/url]
4、PC端和H5页面授权说明
(1)电脑网站(PC端)页面授权获取信息
可直接访问拼接好的授权URL,进行后续的调用
(2)手机网站(H5)页面授权获取信息
拼接好的授权URL必须在支付宝客户端内访问,即在支付宝app内授权。
5、auth_token传参方式
接口调用方式中,设置auth_token的代码示例:
JAVA:
response = alipayClient.execute(request, accessToken);
PHP:
$result = $aop->execute($request,$accessToken);
.net:
response=client.execute(request,accessToken);
如果还是报错,请按如下方式进行提问:
正确提问方式:使用环境(沙箱还是正式环境)+接口名称(中文+英文)+ 请求参数 + 报错信息详情