一、第三方授权流程
测试环境上的授权均不可实现,请在正式环境测试第三方授权模块
概述:
通过第三方业务授权,ISV/开发者可以在取得商家授权后,获取授权范围的商家数据用以完成相关的业务处理或应用开发(如商家门店订单数据,以实现财务入账等)。
业务授权采用标准的 OAuth 2.0 流程。需要ISV/开发者发起,或由ISV/开发者在自己的应用中添加对应功能并由商家操作完成授权行为;授权同意后,ISV/开发者方能使用API请求到商家相关数据。
在第三方业务授权时,ISV/开发者需拼装授权URL,每次授权成功后ISV/开发者会获得一个业务授权码用以换取授权令牌access_token(等同于公共请求参数中的access_token)。
二、授权流程:
第三方业务授权流程如下图所示:

快速接入:
第一步:入驻开放平台并申请业务权限
开始调用API请求数据前,您需要入驻开放平台(入驻流程参见:https://openweb.jushuitan.com/doc?docId=20),入驻成功后,您将得到平台为您分配的应用key(app_key)及密钥(app_secret)。并根据ISV/开发者申请的API权限包在开放平台审批通过后,您将获得相应的API权限。
API权限申请:应用详情-API接口权限

在完成上述申请操作后,ISV/开发者才可以进行开放平台API的调用。
第二步:业务授权URL拼装
注:针对无法提供回调地址的情况,可使用授权工具,输入appkey可生成授权url:https://openweb.jushuitan.com/doc?docId=130&name=%E7%94%A8%E6%88%B7%E6%8E%88%E6%9D%83%E5%B7%A5%E5%85%B7 ,商家登录授权后页面会直接显示access_token等参数,不走回调
通过授权工具生成的url登录后没有回调,参数是页面直接显示的,只有根据下面规则生成的url登录后才会触发回调
使用以下URL:
业务授权URL: https://openweb.jushuitan.com/auth
在URL后加上下表参数并且计算签名:

业务授权URL拼装示例:
https://openweb.jushuitan.com/auth?app_key=0ecde8631431a5ed6b3e7368afbabdadss×tamp=1577772770&charset=utf-8&sign=acce9f196f609952b3194bd4e164c340247c39ee&state=test
注意:拼装后的URL需要商家在浏览器访问,有效时间为15分钟,生成链接之后,请尽快让商家登录授权。
第三步:使用场景
商家通过ISV/开发者发起的授权URL进行登录(填写商家聚水潭ERP主账号的账号密码,不要用开放平台账号登录)。
PS:商家通过授权工具获取到的授权URL进行登录(填写商家聚水潭ERP主账号的账号密码,不要用开放平台账号登录)

商家登录成功后,可查看待授权的公司名称及其下应用名称信息确认并同意授权,完成业务授权操作。
主仓授权不需要选择分仓,直接授权即可
分仓授权登录主仓账号选择对应授权分仓即可

第四步:获取code
商家同意将所属业务的某些服务授权给开发者后,开放平台会给ISV/开发者发放授权码(code),ISV/开发者需要提前提供一个回调接口地址(请在“应用列表->应用详情->回调地址设置”中进行设置),用于接收授权码。接口调用格式和参数约定如下:请求方式为HTTPGET,参数如下

平台请求回调地址示例:

注意:
接口支持https或http;
端口支持80或者443或者自定义端口;
授权码有效期仅有15分钟,超时则需要重新生成授权链接,由商家重新授权。
ISV/服务商接收成功后需返回给平台{“code”:0}(json格式字符串)否则平台将在未来10分钟发起10次重试。
回调地址本身不能带参数。
第五步:使用code换取access_token
ISV/开发者收到授权码之后,使用以下接口获取access_token,接口地址为:https://openapi.jushuitan.com/openWeb/auth/accessToken,请求方式为:POST。
接口参数说明如下:

响应参数说明如下:

响应示例:
{
“code”: 0,
“data”: {
“access_token”: “0ecde8631431a5ed6b3e7368afbabdadss”,
“expires_in”: 2592000,
“refresh_token”: “eb1964a9d142423a9f0de88b97bb38fc”,
“scope”: “all”
}
}
第六步:更新授权access_token,refresh_token
业务授权完成后,ISV/开发者使用授权码换取token时,开放平台会下发放access_token与refresh_token,并告知token的过期时间。
ISV/开发者请在token过期之前(授权后30天内),通过更新token接口主动请求开放平台,获取新的token。
注意:
开放平台对token的过期时间默认设置为30天,如ISV/开发者的访问token过期未换,无法再调用更新token这个接口需要重新生成授权url进行授权。
12小时内刷新无效,刷新成功后原access_token有5分钟的过期时间
刷新过程中可能会发生错误,对于授权过期和刷新过期的Token,停止持续刷新。
更新token接口地址:https://openapi.jushuitan.com/openWeb/auth/refreshToken, 请求方式:Post。
接口请求参数:

接口响应参数:

响应结果示例:
{
“code”: 0,
“data”: {
“access_token”: “0ecde8631431a5ed6b3e7368afbabdasa1”,
“expires_in”: 2592000,
“refresh_token”: “eb1964a9d142423a9f0de88b97bb3dp3”,
“scope”: “all”
}
}
错误结果示例:
{
“code”: 147,
“msg”: “验证失败!禁止该app_key授权!”,
“data”: null
}