接口说明
接口英文名称:alipay.open.auth.token.app
请求url:https://openapi.alipay.com/v3/alipay/open/auth/token/app
请求方式:post
path指该参数为路径参数
query指该参数需在请求url传参
body指该参数需在请求json传参
通用场景
换取应用授权令牌。在应用授权的场景下,商户把名下应用授权给isv后,支付宝会给isv颁发应用授权码app_auth_code,isv可通过获取到的app_auth_code换取app_auth_token。app_auth_code作为换取app_auth_token的票据,每次用户授权带上的app_auth_code将不一样,app_auth_code只能使用一次,一天(从当前时间算起的24小时)未被使用自动过期。
刷新应用授权令牌,isv可通过获取到的refresh_token刷新app_auth_token,刷新后老的refresh_token会在一段时间后失效(失效时间为接口返回的re_expires_in)。
刷新应用授权令牌,isv可通过获取到的refresh_token刷新app_auth_token,刷新后老的refresh_token会在一段时间后失效(失效时间为接口返回的re_expires_in)。
公共请求参数
业务请求参数
body参数
grant_type必选string(18)
【描述】授权方式。支持:
authorization_code:使用应用授权码换取应用授权令牌app_auth_token。
refresh_token:使用app_refresh_token刷新获取新授权令牌。
【枚举值】
使用应用授权码换取应用授权令牌: authorization_code
使用app_refresh_token刷新获取新授权令牌: refresh_token
【示例值】authorization_code
code可选string(40)
【描述】应用授权码,传入应用授权后得到的 app_auth_code。
说明:
grant_type 为 authorization_code 时,本参数必填;
grant_type 为 refresh_token 时不填。
【示例值】1cc19911172e4f8aaa509c8fb5d12f56
refresh_token可选string(40)
【描述】刷新令牌,上次换取访问令牌时得到。本参数在 grant_type 为 authorization_code 时不填;为 refresh_token 时必填,且该值来源于此接口的返回值 app_refresh_token(即至少需要通过 grant_type=authorization_code 调用此接口一次才能获取)。
【示例值】201509bbdcba1e3347de4e75ba3fed2c9abebe36
常见请求示例
默认示例
curl -x post \
"https://openapi.alipay.com/v3/alipay/open/auth/token/app" \
-h "authorization: alipay-sha256withrsa app_id=${appid},timestamp=${now},nonce=${uuid},expired_seconds=600,sign=${sign}" \
-h "alipay-request-id: ${requestid}" \
-h "alipay-app-auth-token: ${app_auth_token}" \
-h "content-type: application/json" \
-d '{
"grant_type":"authorization_code",
"code":"1cc19911172e4f8aaa509c8fb5d12f56",
"refresh_token":"201509bbdcba1e3347de4e75ba3fed2c9abebe36"
}'
说明:本示例仅供参考。
公共响应参数
业务响应参数
user_id必选string(16)
【描述】授权商户的user_id
【示例值】2088102150527498
auth_app_id必选string(20)
【描述】授权商户的appid
【示例值】2013121100055554
app_auth_token必选string(40)
【描述】应用授权令牌
【示例值】201509bbeff9351ad1874306903e96b91d248a36
app_refresh_token必选string(40)
【描述】刷新令牌
【示例值】201509bbdcba1e3347de4e75ba3fed2c9abebe36
expires_in必选string(16)
【描述】该字段已作废,应用令牌长期有效,接入方不需要消费该字段
【示例值】123456
re_expires_in必选string(16)
【描述】刷新令牌的有效时间(从接口调用时间作为起始时间),单位到秒
【示例值】123456
响应示例
正常示例
异常示例
{
"user_id":"2088102150527498",
"auth_app_id":"2013121100055554",
"app_auth_token":"201509bbeff9351ad1874306903e96b91d248a36",
"app_refresh_token":"201509bbdcba1e3347de4e75ba3fed2c9abebe36",
"expires_in":"123456",
"re_expires_in":"123456"
}
说明:本示例仅供参考。
公共错误码
业务错误码
状态码 | 错误码 | 错误描述 | 凯发app官方网站的解决方案 |
---|---|---|---|
400 | app_id_not_consistent | 授权令牌授予的应用appid与当前应用appid不一致 | 确认授权令牌和应用标识是否正确 |
400 | app_not_isv | 当前请求app_id非第三方应用,请求失败 | 当前请求应用非第三方应用,请更改appid后重试 |
400 | auth_code_not_exist | auth_code不存在 | 更换存在的授权code |
400 | auth_code_not_valid | 无效的auth_code | 更换有效的授权码 |
400 | auth_token_not_found | 授权令牌不存在 | 一般不会出现该异常,如出现需要更换有效的授权码 |
400 | grant_type_invalid | grant_type必须是authorization_code或者refresh_token | grant_type必须是authorization_code或者refresh_token |
400 | refresh_token_not_exist | 刷新令牌不存在 | 更换存在的刷新令牌 |
400 | refresh_token_not_valid | 无效的刷新令牌 | 更换有效的刷新令牌 |
400 | refresh_token_time_out | 刷新令牌过期 | 更换有效的刷新令牌 |