文档中心 > API类目 > 工具类API

alipay.open.auth.token.app (换取应用授权令牌)

换取应用授权令牌。在应用授权的场景下,商户把名下应用授权给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)。

公共参数

请求地址:
环境 HTTPS请求地址
正式环境 https://openapi.alipay.com/gateway.do
公共请求参数:
参数 类型 是否必填 最大长度 描述 示例值
app_id String 32 支付宝分配给开发者的应用ID 2014072300007148
method String 128 接口名称 alipay.open.auth.token.app
format String 40 仅支持JSON JSON
charset String 10 请求使用的编码格式,如utf-8,gbk,gb2312等 utf-8
sign_type String 10 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 RSA2
sign String 256 商户请求参数的签名串,详见签名 详见示例
timestamp String 19 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" 2014-07-24 03:07:50
version String 3 调用的接口版本,固定为:1.0 1.0
app_auth_token String 40 详见应用授权概述
biz_content String - 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档

请求参数

参数 类型 是否必填 最大长度 描述 示例值
grant_type String 必须 20 authorization_code表示换取app_auth_token。
refresh_token表示刷新app_auth_token。
authorization_code或者refresh_token
code String 可选 40 授权码,如果grant_type的值为authorization_code。该值必须填写 1cc19911172e4f8aaa509c8fb5d12F56
refresh_token String 可选 40 刷新令牌,如果grant_type值为refresh_token。该值不能为空。该值来源于此接口的返回值app_refresh_token(至少需要通过grant_type=authorization_code调用此接口一次才能获取) 201509BBdcba1e3347de4e75ba3fed2c9abebE36

公共响应参数

参数 类型 是否必填 最大长度 描述 示例值
code String - 网关返回码,详见文档 40004
msg String - 网关返回码描述,详见文档 Business Failed
sub_code String - 业务返回码,详见文档 ACQ.TRADE_HAS_SUCCESS
sub_msg String - 业务返回码描述,详见文档 交易已被支付
sign String - 签名,详见文档 DZXh8eeTuAHoYE3w1J+POiPhfDxOYBfUNn1lkeT/V7P4zJdyojWEa6IZs6Hz0yDW5Cp/viufUb5I0/V5WENS3OYR8zRedqo6D+fUTdLHdc+EFyCkiQhBxIzgngPdPdfp1PIS7BdhhzrsZHbRqb7o4k3Dxc+AAnFauu4V6Zdwczo=

响应参数

参数 类型 是否必填 最大长度 描述 示例值
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

请求示例

  • JAVA
  • .NET
  • PHP
  • HTTP请求源码
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
AlipayOpenAuthTokenAppRequest request = new AlipayOpenAuthTokenAppRequest();
request.setBizContent("{" +
"\"grant_type\":\"authorization_code或者refresh_token\"," +
"\"code\":\"1cc19911172e4f8aaa509c8fb5d12F56\"," +
"\"refresh_token\":\"201509BBdcba1e3347de4e75ba3fed2c9abebE36\"" +
"  }");
AlipayOpenAuthTokenAppResponse response = alipayClient.execute(request);
if(response.isSuccess()){
System.out.println("调用成功");
} else {
System.out.println("调用失败");
}

响应示例

  • JSON示例
{
	"sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE",
	"alipay_open_auth_token_app_response":{
		"msg":"Success",
		"app_auth_token":"201509BBeff9351ad1874306903e96b91d248A36",
		"code":"10000",
		"user_id":"2088102150527498",
		"re_expires_in":"123456",
		"app_refresh_token":"201509BBdcba1e3347de4e75ba3fed2c9abebE36",
		"auth_app_id":"2013121100055554",
		"expires_in":"123456"
	}
}

异常示例

  • JSON示例
{
	"sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE",
	"alipay_open_auth_token_app_response":{
		"msg":"Service Currently Unavailable",
		"code":"20000",
		"sub_msg":"系统繁忙",
		"sub_code":"isp.unknow-error"
	}
}

业务错误码

错误码 错误描述 解决方案
APP_NOT_ISV 当前请求应用非第三方应用,请求失败 当前请求应用非第三方应用,请更改appid后重试
REFRESH_TOKEN_NOT_VALID 无效的刷新令牌 更换有效的刷新令牌
GRANT_TYPE_INVALID grant_type必须是authorization_code或者refresh_token grant_type必须是authorization_code或者refresh_token
AUTH_CODE_NOT_EXIST auth_code不存在 更换存在的授权code
APP_ID_NOT_CONSISTENT 授权令牌授予的应用AppId与当前应用AppId不一致 确认授权令牌和应用标识是否正确
AUTH_CODE_NOT_VALID 无效的auth_code 更换有效的授权码
AUTH_TOKEN_NOT_FOUND 授权令牌不存在 一般不会出现该异常,如出现需要更换有效的授权码
REFRESH_TOKEN_NOT_EXIST 刷新令牌不存在 更换存在的刷新令牌
REFRESH_TOKEN_TIME_OUT 刷新令牌过期 更换有效的刷新令牌

公共错误码

返回
顶部