说明:
用户信息授权主要是为了获取支付宝用户ID(USER_ID)、授权令牌(access_token),便于开发者处理自身业务逻
辑的时候使用。
测试环境:Apache2.4.23 +php 5.6.25
开发文档地址:【查看】
服务端SDK地址:【下载】
如何判断自己使用的接口需要签约:[url]https://openclub.alipay.com/read.php?tid=1793&fid=46[/url]
支持授权方式:
PC端授权和H5授权页面授权(H5只支持在使用支付宝钱包进行授权)
参数解读:
1.scope说明:[url]https://openclub.alipay.com/read.php?tid=1795&fid=43[/url]
2.redirect_uri说明:
1)URLENCODE转义 的url链接(url必须以http或者https开头)
2)授权回调地址,一定要配置(如下图)的值
测试流程:
1.用户信息授权URL拼接
注意:正式环境请修改网关去掉链接中的dev
[url]https://openauth.alipaydev.com/oauth2/publicAppAuthorize.htm?app_id=[/url]填写沙箱的appid&scope=auth_user&redirect_uri=填写授权回调地址
2.获取auth_code
1)访问浏览器访问拼接授权URL
2)选择授权
3)授权成功跳转回调页面,查看授权地址栏返回信息获取auth_code,选择复制
注意:
auth_code:临时授权码,一次性有效,同时若超过有效期未使用,则会失效。
有效期目前至少为5分钟,最长为24小时。
4)放到如下代码中(使用auth_code换取接口access_token及用户userId):
<?php //第一步拼接授权链接.注意scope=auth_user的值一定要为auth_user 传别的值会报错无效授权令牌 //https://openauth.alipaydev.com/oauth2/publicAppAuthorize.htm?app_id=2016072800109035&scope=auth_user&redirect_uri=https%3A%2F%2Fwww.alipay.com require_once 'AopSdk.php'; $aop = new AopClient(); $aop->appId = '填写你的沙箱appid'; $aop->rsaPrivateKey = '填写您的原始私钥'; $aop->alipayrsaPublicKey='填写您的支付宝公钥'; $aop->gatewayUrl = 'https://openapi.alipaydev.com/gateway.do'; $aop->apiVersion = '1.0'; $aop->postCharset='utf-8'; $aop->format='json'; $aop->signType = 'RSA2'; //第二步使用auth_code换取接口access_token及用户userId $request = new AlipaySystemOauthTokenRequest(); //请求的必传信息 $request->setGrantType("authorization_code"); $request->setCode("4cea6ad64013486db6df44b18828SX77"); $result = $aop->execute($request); var_dump($result);
5)请求成功返回
public 'alipay_system_oauth_token_response' => object(stdClass)[10] public 'access_token' => string 'authusrB10494a8d6a77483c94092ff47af20B24' (length=40) public 'alipay_user_id' => string '2088102168729244' (length=16) public 'expires_in' => int 600 public 're_expires_in' => int 660 public 'refresh_token' => string 'authusrB188acaecd9fa478a807087f39f666X24' (length=40) public 'user_id' => string '2088102168729244' (length=16) public 'sign' => string 'xxxxxxxxxxxxxxxxxxxxxxxx'
至此,用户信息授权流程已结束,如果只想拿到user_id 和access_token(支付宝用户唯一标识符)。
DEMO分享(声明:demo仅做参考使用):
download:AlipaySystemOauthToken-UTF-8.zip
有什么问题欢迎在帖子下面追问