更新时间:2024-10-23 18:07:40文档更新记录 >集成工具收藏订阅更新我的文档设置返回文档1 授权流程在生活号或者 h5 应用内,授权流程如下图所示: 1通过调用 jsapi ap.getauthcode 接口在当前页面唤起半屏授权浮层;2用户确认授权后,接口返回 auth_code;3开发者通过 ,使用 auth_code 换取 access_token 及用户的 user_id(open_id)。 如果需要除 user_id(open_id) 以外的其他信息,则使用 access_token 调用 alipay.user.info.share(支付宝会员授权信息查询接口) 获得用户信息。2 操作步骤2.1 第一步:唤起半屏授权框通过调用 jsapi ap.getauthcode 接口在当前页面唤起半屏授权浮层。注意:jsapi 须在授权回调地址页面中调用,否则会导致无法正常使用。2.1.1 前端显示效果2.1.2 代码示例2.1.3 入参说明参数类型必填描述scopesarray否授权类型,默认 auth_base。支持以下两种类型:●auth_base(静默授权):静默授权,用户无需点击确认授权,默认返回 auth_code,该授权码不支持获取用户信息。●auth_user(主动授权):首次授权需要用户手动点击同意,用户同意后,返回 auth_code;商家需要考虑用户拒绝授权的情况并进行相应容错。如果授权关系依旧存在,下次进入页面时也会静默授权。appidstring是开放平台应用 id,详情请参见 查看 appid。showerrortipboolean否是否显示出错弹框。建议传入 false 自行处理异常,默认 true。注意:服务商代商家获取会员信息时,用户信息实际还是授权给授权商家的,因此 url 拼接链接需注意 appid 和 jsapi ap.getauthcode 接口设置页面:●appid:授权商家 appid(即 第三方应用授权 返回 app_auth_token 对应的 auth_app_id )。●jsapi ap.getauthcode 需要在授权商家应用配置的授权回调页面中调用,否则会导致无法正常使用。2.1.4 callback 参数说明参数类型描述authcodestring授权码,用于在之后通过 换取 access_token 和 user_id(open_id)。errornumber错误码。详情请参见 错误码说明。errormessagestring错误信息。errordescstring错误描述(中文)。2.1.5 错误码说明错误码说明2参数错误。10获取授权过程中的其他错误。11用户取消授权。12rpc 网络错误。15授权回调地址不合法,请保证已配置 https 开头的授权回调地址,且当前页面地址需要和配置的一致。2.2 第二步:换取 access_token 和 user_id(open_id)得到 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)。2.2.1 接口请求示例以 java 语言为例。未使用支付宝 sdk,可通过 http 发送请求:2.2.2 请求参数说明参数类型必填描述grant_typestring是授权类型。值为 authorization_code 时,代表用 code 换取;值为 refresh_token 时,代表用 refresh_token 换取。示例值:authorization_codecodestring与 refresh_token 二选一授权码。用户对应用授权后得到,即第二步中开发者获取到的 auth_code 值。示例值:4b203fe6c11548bcabd8da5bb087a83brefresh_tokenstring与 code 二选一刷新令牌。刷新 access_token 时使用。示例值:201208134b203fe6c11548bcabd8da5bb087a83b2.2.3 同步响应结果示例2.2.4 同步响应参数说明参数类型必填最大长度描述access_tokenstring 是40交换令牌。用于获取用户信息。示例值:publicpba869cad0990e4e17a57ecf7c5469a4b2user_id(open_id)string是128支付宝用户唯一标识。新商户建议使用open_id替代该字段。对于新商户,user_id字段未来计划逐步回收,存量商户可继续使用。如使用open_id,请确认 应用-开发配置-openid配置管理 已启用。无该配置项,可查看 。expires_instring是16令牌有效期。交换令牌的有效期,单位秒。示例值:300re_expires_instring是16刷新令牌有效期,单位秒。示例值:300refresh_tokenstring是40刷新令牌。通过该令牌可以刷新 access_token。示例值:publicpb0ff17e364f0743c79b0b0d7f55e20bfc2.3 第三步:获取用户信息开发者在获取了用户的 user_id(open_id) 后,如果想获取头像、昵称、省份等其他信息,需要调用 alipay.user.info.share(支付宝会员授权信息查询接口) 。2.3.1 接口请求示例以 java 语言为例。未使用支付宝 sdk,可通过 http 发送请求:2.3.2 公共请求参数说明参数类型必填描述auth_tokenstring是授权令牌。通过 auth_code 获取的 access_token。示例值:publicpb9ea460ff5b5c468c9ccf5e967dc349632.3.3 同步响应结果示例2.3.4 同步响应参数说明参数类型描述user_id(open_id)string支付宝用户唯一标识。新商户建议使用open_id替代该字段。对于新商户,user_id字段未来计划逐步回收,存量商户可继续使用。如使用open_id,请确认 应用-开发配置-openid配置管理 已启用。无该配置项,可查看 。avatarstring用户头像。如果没有数据的时候不会返回该数据,请做好容错。示例值:https://tfsimg.alipay.com/images/partner/t1k0xixxrnxxxxxxxxnick_namestring用户昵称。如果没有数据的时候不会返回该数据,请做好容错。示例值:张三2.3.5 结果码说明同步返回结果码描述10000业务处理成功。40001~40006业务处理失败。具体失败原因请参考 。其它请参考 api 文档。20000业务出现未知错误或者系统异常。业务出现未知错误或者系统异常(请一定在确定本次调用结果后,发起重试),可调用查询接口发起查询确定结果。 3 消息通知商家/服务商创建、修改及用户领取商家券等场景,支付宝都将通过 from 蚂蚁消息通知 向商家应用 或第三方应用 应用网关 推送异步通知消息,同步对应操作结果。若商家/服务商网络环境比较复杂,如:通过统一网关间连互联网,推荐使用网络兼容性更好的标准 http(s) 协议进行对接。 3.1 第一步:订阅消息当用户取消用户信息授权时,支付宝将通过 ,发送此消息给被授权方。商家/服务商需根据 订阅消息 指引,为接入的应用订阅如下消息接口。注意:仅完成订阅后才会收到支付宝发送的对应异步通知消息。3.2 第二步:验签商家/服务商可使用支付宝 sdk 根据 使用生成密钥验签 指引,使用应用密钥信息验证异步通知消息来源是否为支付宝。3.3 第三步:反馈消息接收结果收到异步通知完成验签后,商家/服务商需返回 success 表示消息获取成功,支付宝就会停止发送异步通知。如果返回 fail 或其他值,表示消息获取失败,支付宝会根据 投递重试策略 重新发送消息到应用网关地址。说明:完成异步通知验签时,如果验签成功返回 success,验签失败返回 fail,重新接收异步进行处理。响应值描述是否重试fail消息获取失败重试success消息获取成功不重试3.4 用户授权取消消息通知用户取消用户信息授权时,支付宝将通过 ,发送此消息给被授权方。消息示例