Files
order_site/docs/行业电子凭证/app 授权说明.md
T
2026-07-07 23:22:56 +08:00

7.9 KiB

2.OAuth2的code授权流程及接口简介 2.1 code授权流程 alt text

  授权流程可以简单归纳为: 
    1.获取授权码code(步骤1234); 
    2.授权码code换取长时令牌refreshToken以及短时访问令牌accessToken(步骤56),使用accessToken调用电商授权API(步骤789); 
    3.若短时访问令牌accessToken过期,则使用长时令牌refreshToken刷新短时访问令牌accessToken,再使用新的accessToken进行调用。

 下面将详细介绍每一步的调用过程及用到的接口

2.2 获取授权码code 授权页面地址示例:https://open.kwaixiaodian.com/oauth/authorize?app_id=xxx&redirect_uri=xxx&scope=xxx,xxx&response_type=code&state=xxx

使用说明: 1、若应用为”商家后台””快分销”“快赚客”自研应用,需要现在应用的测试用户或授权用户列表中添加用户后,用户打开授权页面完成授权; 2、若应用为第三方ISV应用,需要上架到服务市场,用户需在服务市场订购了服务完成授权。

页面参数说明:

参数名

是否必须

描述

app_id

应用的 appKey

response_type

授权的类型,默认为"code"

scope

APP已经拥有且需要获取用户授权的权限包,多个用 “,” 连接,比如merchant_item。可至“应用中心-APP详情页”查看APP已获得的权限包列表,平台所有权限包见下文

redirect_uri

授权成功的回调uri,为APP在创建时填写的回调地址

state

状态值,成功授权后回调时会原样带回

  如果授权成功,授权服务器会将用户的浏览器重定向到应用 :http(s)://redirect_uri?code=CODE&state=STATE

参数名

参数类型

是否必须

code

string

用来换取access_token 的授权码,有效期为 2 分钟且只能使用一次,在用户首次允许授权时返回

state

string

如果请求时传递参数,会回传该参数

2.3 用授权码code换取长时令牌refreshToken以及访问令牌accessToken 请求地址: https://openapi.kwaixiaodian.com/oauth2/access_token ** 此接口为后端接口**

  请求方法: GET

  请求参数:

参数名

是否必须

描述

app_id

开发者appKey

grant_type

授权的类型,"code"

code

2.2中获取到的code

app_secret

开发者的appSecret

正确返回值:

参数名

描述

result

返回结果类型,1为正确,其他为不正确

access_token

临时访问令牌,作为调用授权API时的入参,过期时间为expires_in值,授权用户、app和权限组范围唯一决定一个access_token值

refresh_token

长时访问令牌,默认为180天,授权用户、app和权限组范围唯一决定一个refresh_token值 注意:refresh_token值不需要存储固定值,因access_token48小时过期时间内需要用长时令牌refreshToken刷新访问令牌accessToken,每次刷新会换取新的refreshToken

open_id

用户对该开发者的唯一身份标识

expires_in

access_token过期时间,单位秒,默认为172800,即48小时

scopes

本次授权中,用户允许的授权权限范围,即access_token和refresh_token中包含的scopes

异常返回值:

参数名

描述

result

返回结果类型,详情查看本文错误码简介

error

错误类型

error_msg

错误详情,用于提示具体的错误原因

2.4 用长时令牌refreshToken刷新访问令牌accessToken 当access_token 过期时,可以使用(在有效期内的) refresh_token重新获取新的access_token,不需要显式的用户授权过程,若refresh_token也过期了,则需要再次经过用户授权,因此需要关注refresh_token的时效(默认180天),需要在时效内用此接口再换取新的refresh_token才不会出现用户授权频繁失效的情况。该接口只支持authorization_code模式获取access_token 刷新,刷新得到新的access_token 和refresh_token, 旧的refresh_token 随即在5分钟内失效。

   使用子账号的refreshToken刷新accessToken时以下情况会报错:1、子账号被禁用、删除或状态不可用;2、子账号的主账号和APP不存在授权关系。

   当且仅当子账号状态可用,且子账号的主账号和APP存在授权关系时,才可正确获取到子账号的accessToken。

   请求地址: https://openapi.kwaixiaodian.com/oauth2/refresh_token  ** 此接口为后端接口**

   请求方法: POST

   请求参数:

参数名

是否必须

描述

grant_type

授权的类型,必须是"refresh_token"

refresh_token

长时访问令牌,默认为180天,2.3接口中返回的值

app_id

开发者 appId

app_secret

开发者的appSecret

正确返回值:

参数名

描述

result

返回结果类型,1为正确,其他为不正确

access_token

临时访问令牌,作为调用授权API时的入参,过期时间为expires_in值

expires_in

access_token过期时间,单位秒,默认为172800,即48小时

refresh_token

长时访问令牌,默认为180天,会返回新的refresh_token,原有的refresh_token即失效 注意:refresh_token值不需要存储固定值,因access_token48小时过期时间内需要用长时令牌refreshToken刷新访问令牌accessToken,每次刷新会换取新的refreshToken

refresh_token_expires_in refresh_token 的过期时间,单位秒,默认为180天

scopes access_token包含的scope

异常返回值:

参数名

描述

result

返回结果类型,详情查看本文错误码简介

error

错误类型

error_msg

错误详情,用于提示具体的错误原因

=== 4.授权错误码简介 result

error

异常描述

100200100

invalid_request

缺少必要的请求参数

100200101

unauthorized_client

app 非法,例如 开发者不存在,app 不存在或状态不正确等

100200102

access_denied

请求被拒绝,授权和后续API,访问中出现任何的Token 错误都会返回这个异常,存在三种可能 invalid refresh_token 无效token refreshToken.discarded refreshToken已经用过,不能重复使用 refreshToken.revokedAuthorization 用户已经撤销授权

100200103

unsupported_response_type

responseType 错误

100200104

unsupported_grant_type

换取accessToken 使用的grantType 错误

100200105

invalid_grant

换取accessToken 使用的 code 错误

100200106

invalid_scope

权限 scope 错误,或者用户取消了授权等

100200107

invalid_openid

用户的 openid 无效

100200500

server_error

服务器内部错误,开发者侧无法处理

5.权限组列表 权限组用于控制APP调用API和接受消息的权限范围,只有当APP拥有该API所属的权限组才可以调用API,只有当APP拥有该消息所属的权限组才可以消费消息,列表中说明了现有的权限组以及对应的权限组的API和消息。快手电商开放平台会根据开发者创建的应用类型授予默认的权限组,若开发者需要申请额外的权限组,请发邮件到open@kuaishou.com并说明理由。

Scope

描述

备注

user_base

授权之后的默认权限

所有应用默认拥有此权限组

user_info

用户基本信息

所有应用默认拥有此权限组

merchant_user

商家用户信息

用户API权限

merchant_item

读取或更新店铺的商品数据

商品API和商品消息权限

merchant_order

读取或更新店铺的订单信息

订单API和订单消息权限

merchant_refund

读取或更新店铺的售后信息

退款单API和退款单消息权限

merchant_distribution

读取或更新分销信息

分销API权限

merchant_logistics

读取或更新物流信息

物流API权限

merchant_promotion

读取或更新营销信息

营销API权限

merchant_cs

读取或更新店铺的客服信息

客服API权限

merchant_comment

读取或更新店铺的评价信息 评价API权限 merchant_servicemarket

获取应用在服务市场的订购信息 服务市场API权限