一、 商家店铺授权给开发者
蜂巢支持淘宝主账号授权给蜂巢开发者或淘宝子账号授权给蜂巢开发者。一般情况下,为避免权限问题,建议商家直接用淘宝主账号授权给蜂巢开发者,
如果必须要子账号授权的情况下,请先让主账号授权给子账号 ! 查看主账号如何授权子账号 。
一些授权的注意事项
订单推送服务推送的订单中seller_nick为店铺主账号。如果是子账号授权的话,在您的系统里要注意用主账号匹配。 提示:子账号冒号“:”前面部分为主账号。 比如, “苏宁旗舰店:小红” 。 主账号为“苏宁旗舰店”。
退款接口必须子账号授权, 由子账号调用。
主账号授权和子账号可以同时给蜂巢开发者授权,调用蜂巢接口时,接口中的卖家账号可传入主账号或是子账号。
一、 授权流程
商家使用店铺账号登录后,打开应用软件首页即可,蜂巢将自动将授权信息推送到您的网站/系统。
说明: 授权推送通知的URL有效性测试和保存,可在蜂巢后台后台操作。 操作路径:个人信息 -> 授权推送通知设置。
可以使用postman或是curl模拟蜂巢后台推送的请求,代码如下:
curl --location 'http://youdomain.com/pushorder' \
--header 'Content-Type: application/json' \
--data '{"action":"seller_taobao_grant","sys_id":"100","seller_nick":"XX馆","dead_line":"2024-08-28","user_id":"661153555","shop_name":"明珠在线","state_id":"mybk007"}'
1. 发起授权
订购完成以后,在你系统展示下面授权链接,供商家点击打开,链接中的xxx对应的appid你自己的 appid, state_id为自定义参数,注意:url中的参数前后不要有空格。
https://kf.fw199.com/partner/tbgrant?appid=xxx&sysid=xxx&state_id=xxx
上述链接入参说明:
- appid: 您的蜂巢appid
- sysid: 应用标识, 联系客服获取
- state_id: 自定义参数值,此参数很重要,必填! 商家授权完成后,在异步通知原样返回,一般用于标识用户关系或业务关联等。
商家打开上面的链接, 显示应用软件首页就可以了
2. 授权回调
在商家通过上述链接打开,打应用首页后, 蜂巢会异步通知指定的授权URL , 蜂巢将授权信息推送给第三方系统, 使用http POST,Content-Type:application/json 方式接收请求,在http body中会收到如下json内容 , 因此取值时请求体内容字符串处理,再手动字符串转成json对象,否则可能取不到值。收到授权信息后,需要返回纯文本success给蜂巢。 下面给出Java和PHP示例,其他语言类似。
@RequestMapping("/grant/back")
@ResponseBody
public String fcGrantCallBack(@RequestBody String jsonData) throws IOException {
System.out.println("收到数据:" + jsonData);
// 处理业务逻辑....
// 返回success字符串给蜂巢
return "success";
}
PHP的示例
<?php
$tmpfile = 'fc.txt'; // 临时文件,用于保存接收到的文件流
$content = file_get_contents('php://input');
file_put_contents($tmpfile, $content, true);
echo 'success';
?>
蜂巢推送的JSON数据格式如下:
{
"action": "seller_taobao_grant",//本次推送的业务动作
"sys_id": "100",// 当前授权商家订购的应用,不同的应用返回的sys_id可能不同的, 建议与商家seller_nick一起保存,调用业务接口时一起传入
"seller_nick": "XX馆",// 授权的商家账号,后续业务接口中会用到此值。
"dead_line": "2024-08-28", // 商家订购过期时间
"user_id": "661153555",// 商家的账号ID
"shop_name": "明珠在线", // 店铺名称
"state_id": "mybk007" // 您发起授权url请求时的入参,蜂巢会原样返回。
}