点三  电商OMS/ERP/API帮您串联线上线下订单业务-稳定运行11年【免费试用】

客服热线

400 8080 092

当前位置: 首页 > 资讯 > API接口

如何授权蘑菇街API?

编辑:原创    时间:2024-06-06 15:50:35

如果你的应用已经与蘑菇街开放平台完成对接,需要获取订单、商品、促销等这类与用户紧密相关的信息,需要征得用户的同意,获得用户的授权许可,这也是为了保证用户数据的安全性,那如何授权蘑菇街API呢?请看下文详细介绍。

 

一、 授权方式

 

蘑菇街开放平台采用国际通用的OAuth2.0标准协议,支持网站、桌面客户端、ERP系统。目前,蘑菇街开放平台的OAuth2.0支持以下方式获取Access Token。

 

方式

说明

Server-side flow

此流程要求ISV应用有Web Server应用,能够保存应用本身的密钥以及状态,可以通过http直接访问蘑菇街的授权服务器,可以通过RefreshToken刷新AccessToken保持授权有效。

Clinet-side Application

此流程适合客户端应用,同时应用无法与浏览器交互,但是可以外调用浏览器,需要每次都授权,无法通过RefreshToken刷新AccessToken。

Refreshing Access Token

用户如果在获取访问令牌时,同时获取到了刷新令牌,当访问令牌过期时,用户可以用刷新令牌刷新,从而延长访问令牌的时间,只有在Server-side flow才可以刷新。

 

二、 Server-side flow

 

此流程要求ISV或自研商家有web服务器,能够保持应用本身的密钥以及状态,可以通过http直接访问蘑菇街的授权服务器。

 

 

 

1.通过用户授权获取授权码Code(获取授权码链接)

通过拼接以下链接打开用户登录页面:https://oauth.mogujie.com/authorize?response_type=code&app_key=YOUR_APPKEY&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&state=YOUR_CUSTOM_CODE

 

 

 

请求方法:GET

请求参数:

 

参数

是否必选

参数说明

app_key

接入时申请的app_key

redirect_uri

回调地址,请确保回调地址在授权域下,并UrlEncode进行编码。

response_type

授权类型,此值固定为“code”。client_side flow 此值为token

state

用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。

 

返回说明:

如果用户成功登录并授权,则会跳转到指定的回调地址,并在redirect_uri地址后带上Authorization Code和原始的state值。

2.用上一步获取的Authorization Code,和AppSecret 通过Http POST方式换取Token。(获取访问令牌)

通过拼接以下链接(注意替换以下app_key、redirect_uri和state)打开用户登录页面:https://oauth.mogujie.com/token?code=YOUR_AUTHCODE&grant_type=authorization_code&app_key=YOUR_APPKEY&app_secret=YOUR_APPSECRET&redirect_uri=YOUR_REGISTERED_REDIRECT_URI

请求方法:GET

请求参数:

 

参数

是否必选

参数说明

app_key

接入时申请的app_key

app_secret

接入时申请的app_secret

redirect_uri

回调地址,与上一步的redirect_uri保持一致

grant_type

授权类型,申请accesstoken流程中,此值为“authorization_code”

code

上一步中获取的Authorization Code

state

用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。

 

返回说明:(如果成功返回,即可获取如下参数)

 

参数

描述

statusCode

授权操作状态(0000000 - 授权成功)

access_token

授权令牌(AccessToken)。

access_expires_in

该AccessToken的有效期,单位为秒。

refresh_token

授权刷新令牌(RefreshToken)。

refresh_expires_in

该RefreshToken的有效期,单位为秒。

 

三、 Client-side flow

 

此流程适合ISV没有自己的web服务器,且应用为原生程序,即客户端应用(同时应用无法与浏览器交互,但是可以外调用浏览器)。

请求的流程:(1)用户发起授权请求, 开放平台验证后获取code并置换出AccessToken 》 (2)获取url中的AccessToken 》 (3)调用API

1. 通过拼接以下链接(注意替换以下app_key、redirect_uri和state)打开用户登录页面,登录后进行授权(页面操作与Server-side-flow相同): https://oauth.mogujie.com/authorize?response_type=token&app_key=12304977&state=1212&redirect_uri=REDIRECT_URI

2. 直接从REDIRECT_URI中获取AccessToken信息。

最终返回的地址格式为:REDIRECT_URI/oauthCallBack/#access_token=6a42dbd2ef9cf3489a4913039838e12b

 

四、 刷新Token

 

通过前两种流程,获取了Access token以及Refresh token(对于具有“获取Refresh token权限”的应用),但是一般来讲,AccessToken都有一定的时效性,在刷新有效时长内必须通过RefreshToken 来延迟Access token的时长。

请求的流程有:通过http post请求https://oauth.mogujie.com/token发送刷新。

请求参数:

 

参数

是否必选

参数说明

app_key

接入时申请的app_key

app_secret

接入时申请的app_secret

grant_type

授权类型,在刷新令牌的过程中,此值为“refresh_token”。

refresh_token

用来刷新AccessToken的刷新令牌

state

用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。

 

返回说明:(如果成功返回,即可获取如下参数)

 

参数

描述

statusCode

授权操作状态(0000000 - 授权成功)

access_token

新授权令牌(AccessToken)。

access_expires_in

新AccessToken的有效期,单位为秒。

refresh_token

新授权刷新令牌(RefreshToken)。

refresh_expires_in

新RefreshToken的有效期,单位为秒。

 

如果还有其他关于电商平台对接的问题,或者想要快速对接蘑菇街开放平台,可以咨询点三客服获取解决方案。

50000+企业的共同选择
点三全渠道全链路ERP

免费注册试用

400 8080 092