开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
文档中心
网页&移动应用 
支付产品
私域产品
公域产品
营销产品
资金产品
会员产品
人脸认证
获取会员信息
接入指南
api 列表
相关资料
支付宝身份验证
app支付宝登录
本机号码验证
信用产品
安全产品
广告产品
其他通用产品
开发 > 服务端 > 会员产品 > 获取会员信息 >  > pc 网页内获取用户信息
文档更新记录 >
收藏
订阅更新
我的文档
设置
1 授权流程
在网页应用内,授权流程如下图所示:
授权2.0.png

1按照规则拼接授权页面的 url 链接,并且引导用户跳转至该链接;
2用户在授权页面上确认授权后,将跳转到开发者指定的回调页,并且带上 auth_code;
3开发者通过 ,使用 auth_code 换取 access_token 及用户的 user_idopen_id);
4如果需要除 user_id(open_id) 以外的其他信息,则使用 access_token 调用 alipay.user.info.share(支付宝会员授权信息查询接口) 获得用户信息。
2 第一步:url 拼接
url 拼接规则:https://openauth.alipay.com/oauth2/publicappauthorize.htm?app_id=appid&scope=scope&redirect_uri=encoded_url
沙箱拼接规则详见 关于沙箱
url 拼接中的参数说明:
参数名
是否必须
描述
app_id

开发者应用的 appid
scope

接口权限值,目前只支持 auth_user 和 auth_base 两个值
redirect_uri

回调页面,是经过转义的 url 链接(url 必须以 http 或者 https 开头),比如http://example.com 在请求之前,开发者需要先到开发者中心对应应用内,配置授权回调地址
state

商户自定义参数,用户授权后,重定向到 redirect_uri 时会原样回传给商户。 为防止 csrf 攻击,建议开发者请求授权时传入 state 参数,该参数要做到既不可预测,又可以证明客户端和当前第三方网站的登录认证状态存在关联,并且不能有中文。
说明:参数由用户自定义拼接,拼接完成后将参数进行 base64 转码。最后将参数拼接为 state=xxxxx 即可,最大长度 100 位。
注意:服务商代商家获取会员信息,用户信息实际还是授权给授权商家的,因此 url 拼接链接需注意 app_idredirect_uri
app_id:授权商家的 appid(即 第三方应用授权 返回 app_auth_token 对应的 auth_app_id)。
redirect_uri:授权商家应用中配置的授权回调地址。
2.1 关于 redirect_uri 的说明
redirect_uri 即授权回调地址,服务端接口会校验授权链接中配置的 redirect_uri 与应用中配置的授权回调地址(如下图所示)是否一致。
重定向链接.png

详细说明:
如果开发者在应用中配置的授权链接是:https://auth.example.com/authcallback,则 redirect_uri 内容需要 encode 处理,为 https://auth.example.com/authcallback
授权回调地址对应的域名(auth.example.com)下的页面 http://auth.example.com/authcallbackhttps://auth.example.com/authredirecthttps://auth.example.com/ 都可以进行 oauth2.0 授权。但与(auth.example.com)关联的二三级域名,如:http://www.example.com/http://example.com/ 无法进行 oauth2.0 授权。
2.2 关于 scope 的说明
scopes
描述
包含的服务端 api 接口
auth_base
静默授权,不会发起授权浮窗,用户授权并自动跳转到回调页。用户感知为直接进入回调页面(通常是业务页面)。
在支付宝客户端获取 auth_code,仅可用于 获取支付宝会员标识( user_id 或 open_id )。

auth_user
主动授权,需要用户手动点击同意,用户同意后可获取用户的基本信息(比如头像、昵称等),用于 网站支付宝登录获取用户信息
pc 网页内授权页面示例:
pc授权.png

3 第二步:获取 auth_code
当用户授权成功后,会跳转至开发者定义的回调页面,支付宝会在回调页面请求中加入参数,包括 auth_code、app_id、scope 等,需要注意的是支付宝仅保证 auth_code、app_id 以及 scope 参数的有效性。支付宝请求开发者回调页面示例如下:
3.1 术语解释
auth_code:临时授权码,一次有效,auth_code 有效期为 3 分钟到 24 小时(开放平台规则会根据具体的业务场景动态调整 auth_code 的有效期,但是不会低于 3 分钟,同时也不会超过 24 小时),超过有效期的 auth_code 即使未使用也将无法使用。 用户的每次授权动作都会生成一个新的 auth_code。
4 第三步:换取 access_token 和 userid(openid)
得到 auth_code 后,开发者通过 ,使用 auth_code 换取 access_token 及用户的 user_id(open_id)。auth_code 作为换取 access_token 的凭证,每次用户授权完成后,返回参数中的 auth_code 将不一样,auth_code 只能使用一次,24 小时内未被使用自动过期。
注意 的返回值 alipay_user_id 已废弃,请勿使用,需要获取的 userid(openid) 值为返回值中的 user_id(open_id) 。
4.1 接口请求示例
接口调用示例,以 java 语言为例:
未使用支付宝 sdk 时,可直接发送 http 请求:
4.2 请求参数说明
参数
参数名称
类型(长度范围)
参数说明
是否可为空
样例
grant_type
授权类型
string
值为authorization_code 时,代表用 code 换取;值为 refresh_token 时,代表用 refresh_token 换取
不可空
authorization_code
code
授权码
string
用户对应用授权后得到,即第二步中开发者获取到的 auth_code 值
与 refresh_token 二选一
4b203fe6c11548bcabd
8da5bb087a83b
refresh_token
刷新令牌
string
刷新access_token时使用
与 code 二选一
201208134b203fe6c115
48bcabd8da5bb087a83b
4.3 同步响应结果示例
4.4 同步响应参数说明
参数
参数名称
类型(长度范围)
参数说明
是否可为空
样例
access_token
交换令牌
string
用于获取用户信息
不可空
publicpba869cad0990e4e1
7a57ecf7c5469a4b2
user_id(open_id
用户的 openid
string
支付宝用户唯一标识。新商户建议使用open_id替代该字段。对于新商户,user_id字段未来计划逐步回收,存量商户可继续使用。如使用open_id,请确认 应用-开发配置-openid配置管理 已启用。无该配置项,可查看
不可空
-
expires_in
令牌有效期
string
交换令牌的有效期,单位秒
不可空
300
re_expires_in
刷新令牌有效期
string
刷新令牌有效期,单位秒
不可空
300
refresh_token
刷新令牌
string
通过该令牌可以刷新 access_token
不可空
publicpb0ff17e364f0743c79
b0b0d7f55e20bfc
5 第四步:获取用户信息
开发者在获取了用户的 user_id(open_id) 后,如果想获取头像、昵称、省份等其他信息,需要调用 alipay.user.info.share(支付宝会员授权信息查询接口)
5.1 接口请求示例
接口调用示例,以 java 语言为例
未使用支付宝 sdk 时,可直接发送 http 请求:
5.2 公共请求参数说明
参数
参数名称
类型(长度范围)
参数说明
是否可为空
样例
auth_token
授权令牌
string
通过auth_code获取的access_token
不可空
publicpb9ea460ff5b5c468c9ccf5e967dc34963
5.3 同步响应结果示例
5.4 同步响应参数说明
参数
参数名称
类型(长度范围)
参数说明
样例
user_id(open_id
支付宝用户id
string
支付宝用户唯一标识。新商户建议使用open_id替代该字段。对于新商户,user_id字段未来计划逐步回收,存量商户可继续使用。如使用open_id,请确认 应用-开发配置-openid配置管理 已启用。无该配置项,可查看
-
avatar
用户头像
string
如果没有数据(用户未设置)时不会返回该信息,请做好容错。
https://tfsimg.alipay.com/images/partner/t1k0xixxrnxxxxxxxx
nick_name
用户昵称
string
如果没有数据(用户未设置)时不会返回该信息,请做好容错。
张三
5.5 结果码说明
同步返回结果码
含义
说明
10000
业务处理成功
40001~40006
业务处理失败
具体失败原因请参考 。其它请参考 api 文档。
20000
业务出现未知错误或者系统异常
业务出现未知错误或者系统异常(请一定在确定本次调用结果后,发起重试),可调用查询接口发起查询确定结果。 
6 消息通知
商家/服务商创建、修改及用户领取商家券等场景,支付宝都将通过 from 蚂蚁消息通知 向商家应用 或第三方应用 应用网关 推送异步通知消息,同步对应操作结果。
若商家/服务商网络环境比较复杂,如:通过统一网关间连互联网,推荐使用网络兼容性更好的标准 http(s) 协议进行对接。
6.1 第一步:订阅消息
当用户取消用户信息授权时,支付宝将通过 ,发送此消息给被授权方。商家/服务商需根据 订阅消息 指引,为接入的应用订阅如下消息接口。
注意:仅完成订阅后才会收到支付宝发送的对应异步通知消息。
6.2 第二步:验签
商家/服务商可使用支付宝 sdk 根据 使用生成密钥验签 指引,使用应用密钥信息验证异步通知消息来源是否为支付宝。
6.3 第三步:反馈消息接收结果
收到异步通知完成验签后,商家/服务商需返回 success 表示消息获取成功,支付宝就会停止发送异步通知。如果返回 fail 或其他值,表示消息获取失败,支付宝会根据 投递重试策略 重新发送消息到应用网关地址。
说明:完成异步通知验签时,如果验签成功返回 success,验签失败返回 fail,重新接收异步进行处理。
响应值
描述
是否重试
fail
消息获取失败
重试
success
消息获取成功
不重试
6.4 用户授权取消消息通知
用户取消用户信息授权时,支付宝将通过 ,发送此消息给被授权方。
消息示例
7 接入沙箱
沙箱是开放平台提供给开发者用户调试接口的环境,具体操作步骤见 
接入注意点
获取用户信息支持沙箱接入;在沙箱调通接口后,必须在线上进行测试与验收,所有返回码及业务逻辑以线上为准;
沙箱授权 url 链接拼接规则为:https://openauth-sandbox.dl.alipaydev.com/oauth2/publicappauthorize.htm?app_id=appid&scope=scope&redirect_uri=encoded_url
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图