微博开放平台
微连接
移动应用
网站接入
电商服务商
电商商家
数据服务
数据服务
合作伙伴
微博支付
轻应用
粉丝服务
文档
推广
我的应用
登录
weibo
开发文档
首页
平台政策与指引
概述
平台公约
新手指南
开发者协议
应用运营管理规范
微连接分级管理办法
应用审核产品指南
应用安全开发注意事项
平台应用设计规范
微服务接入指南
微博登录接入
用微博帐号登录
授权机制
移动应用接入
移动应用介绍
移动应用SSO授权
微博Deep Link
媒体接入平台
头条文章开放接口
视频上传开放接口
电商接入平台
电商服务商接入
电商商家端接入
电商平台能力接口
粉丝服务平台
粉丝服务平台
新手接入指南
微信开发者迁移指南
接收消息
发送消息
自定义菜单
用户管理
生成带参数的二维码
Fans Service Platform
商业接口
商业数据接入指南
订阅服务手册(中文版)
订阅服务手册(英文版)
商业接口-REST API
商业数据常见问题
网站接入
网站接入介绍
微博API
微博API
接口访问频次权限
资源下载
SDK
微博标识下载
常见问题
联系我们
工具箱
链入页面
链出更改
特殊页面
查看源代码
跳转到:
导航
,
搜索
根据下列原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
=电商平台能力接口= <div class="wiki_txtJ"> 提供给电商服务商、自研商家的平台能力,目前包含订单能力接口、商品能力接口、和事件通知推送(仅限虚拟商家接入)。 </div> ==电商服务商接口验证签名== <div class="wiki_txtJ"> 调用电商服务商接口需带上验证签名的sign参数,其生成方法为:将调用接口的参数,过滤掉不参与签名的参数后,按照键名进行升序排序,之后转换为URL查询字符串(querystring),并在结尾拼接上电商签名秘钥(示例中的 $key 参数),最后将得到的字符串进行md5,得到最终的sign值。 不参与签名的参数,参数名为sign、sign_type、access_token的参数,和参数值为空字符串的参数。 需要特别注意的是:电商能力接口中的 appid 参数,指的是电商服务商身份标识,和获取授权时用到的开放平台 APPKEY 不同,电商服务商身份标识 appid ,与电商签名秘钥(示例中的 $key 参数),为一对一的一组,由微博电商分配,接入时在应用审核通过后,联系微博电商产品申请获取。 </div> <div style="margin:15px 0;"> 签名方法示例: </div> <div class="code_type">CODE:PHP</div> <pre class="brush:js"> // 这里放实际调用接口时的参数 以下仅为示例 $data_list = ["goods_id"=>"371965", "appid"=> 100023, "sign_type"=>"md5"]; // 这个是电商签名秘钥 联系微博电商平台申请获取 $key = 'YOUR SIGN KEY'; // 开始生成签名并输出签名 echo getSign($data_list, $key); // 根据算法获取签名 public static function getSign($data_list, $key, $filter_k_list = ["sign", "sign_type", "access_token",], $filter_v_list = ["",]) { // 过滤不参与签名的参数 foreach ($data_list as $k => $v) { if (in_array($k, $filter_k_list, true) || in_array($v, $filter_v_list, true)) { unset($data_list[$k]); } } // 进行排序 ksort($data_list); // 转换为查询字符串,注意过滤前后空格 $parameter = []; foreach ($data_list as $k => $v) { $parameter[] = $k . "=" . trim($v); } $string = implode("&", $parameter); // 拼接密钥 $stringKey = $string . $key; // 进行MD5得到最终签名 $sign = md5($stringKey); return $sign; } </pre> <div class="code_type">CODE:JAVA</div> <pre class="brush:js"> import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Set; class Sign { public static final String[] filterKeys = new String[]{"sign", "sign_type", "access_token"}; public static void main(String[] args) { Map<String, String> dataList = new HashMap<>(); // 这里放实际调用接口时的参数 以下仅为示例 dataList.put("goods_id", "371965"); dataList.put("appid", "100023"); dataList.put("sign_type", "md5"); // 这个是电商签名秘钥 联系微博电商平台申请获取 String secret = "YOUR SIGN KEY"; // 开始生成签名 String sign = getSign(dataList, secret); // 输出签名 System.out.println(sign); } // 根据算法获取签名 public static String getSign(Map<String, String> dataList, String secret) { Set<String> keySet = dataList.keySet(); String[] keyArray = keySet.toArray(new String[0]); Arrays.sort(keyArray); StringBuilder sb = new StringBuilder(); String prefix = ""; for (int i = 0; i < keyArray.length; i++) { if (Arrays.asList(filterKeys).contains(keyArray[i])) { continue; } sb.append(prefix).append(keyArray[i]).append("=").append(dataList.get(keyArray[i])); prefix = "&"; } sb.append(secret); return md5(sb.toString()); } public static String md5(String input) { try { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] messageDigest = md.digest(input.getBytes()); BigInteger no = new BigInteger(1, messageDigest); String hashtext = no.toString(16); while (hashtext.length() < 32) { hashtext = "0" + hashtext; } return hashtext; } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } } } </pre> <div class="code_type">CODE:GO语言</div> <pre class="brush:js"> package main import ( "crypto/md5" "encoding/hex" "fmt" "sort" ) func main() { // 这里放实际调用接口时的参数 以下仅为示例 dataList := map[string]string{"goods_id": "371965", "appid": "100023", "sign_type": "md5"} // 这个是电商签名秘钥 联系微博电商平台申请获取 secret := "YOUR SIGN KEY" // 开始生成签名 sign := getSign(dataList, secret) // 输出签名 fmt.Println(sign) } // 根据算法获取签名 func getSign(dataList map[string]string, secret string) string { var keys []string prefix := "" str := "" // 过滤不参与签名的参数 filterKList := [3]string{"sign", "sign_type", "access_token"} for k := range dataList { keys = append(keys, k) } // 进行排序 sort.Strings(keys) // 转换为查询字符串,注意过滤前后空格 for _, k := range keys { flag := false for _, filterK := range filterKList { if k == filterK { flag = true break } } if !flag { str += prefix + k + "=" + dataList[k] prefix = "&" } } // 拼接密钥 str += secret // 进行MD5得到最终签名 h := md5.New() h.Write([]byte(str)) return hex.EncodeToString(h.Sum(nil)) } </pre> ==订单能力接口== <div class="wiki_txtJ"> 订单业务相关的接口,详细见接口列表: </div> <div style="margin:15px 0;"> <table class="wiki_table" border="0" cellspacing="0" cellpadding="0" style="width:100%"> <tr> <th class="wiki_table_thfirst" style="width:180px">接口</th> <th>说明</th> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/order/retailerGetSubList|order/retailerGetSubList]]</td> <td>获取子订单列表</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/order/retailerGetSub|order/retailerGetSub]]</td> <td>获取子订单详情</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/order/retailerSearchSub|order/retailerSearchSub]]</td> <td>搜索子订单</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/order/retailerFinishSub|order/retailerFinishSub]]</td> <td>商家履约成功(仅限虚拟商家)</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/order/retailerCloseSub|order/retailerCloseSub]]</td> <td>商家履约失败(仅限虚拟商家)</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/order/retailerAddExpress|order/retailerAddExpress]]</td> <td>提交发货</td> </tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/order/retailerSetExpress|order/retailerSetExpress]]</td> <td>修改物流信息</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/order/retailerSetReceiverInfo|order/retailerSetReceiverInfo]]</td> <td>修改收货人信息</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/order/retailerSetRetailerRemark|order/retailerSetRetailerRemark]]</td> <td>修改商家备注信息</td> </tr> </table> </div> ==售后能力接口== <div class="wiki_txtJ"> 商品售后相关的接口,详细见接口列表: </div> <div style="margin:15px 0;"> <table class="wiki_table" border="0" cellspacing="0" cellpadding="0" style="width:100%"> <tr> <th class="wiki_table_thfirst" style="width:180px">接口</th> <th>说明</th> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/order/retailerSearchSold|order/retailerSearchSold]]</td> <td>搜索售后单</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/order/retailerGetSold|order/retailerGetSold]]</td> <td>获取售后单详情</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/order/retailerJudgeSold|order/retailerJudgeSold]]</td> <td>售后单审核</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/order/retailerDelaySold|order/retailerDelaySold]]</td> <td>售后单延长收货审核时间</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/order/retailerGetSoldRecordList|order/retailerGetSoldRecordList]]</td> <td>售后单协商历史</td> </tr> </table> </div> ==商品能力接口== <div class="wiki_txtJ"> 商品业务相关的接口,详细见接口列表: </div> <div style="margin:15px 0;"> <table class="wiki_table" border="0" cellspacing="0" cellpadding="0" style="width:100%"> <tr> <th class="wiki_table_thfirst" style="width:180px">接口</th> <th>说明</th> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/online|goods/online]]</td> <td>商品上架</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/offline|goods/offline]]</td> <td>商品下架</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/getGoodsInfo|goods/getGoodsInfo]]</td> <td>根据商品ID查询商品信息</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/getGoodsList|goods/getGoodsList]]</td> <td>根据商品更新时间查询商品信息</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/getShopInfo|goods/getShopInfo]]</td> <td>获取商家信息</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/getAllCateData|goods/getAllCateData]]</td> <td>获取商家类目</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/getDraftExtendField|goods/getDraftExtendField]]</td> <td>获取商品扩展类目</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/setGoodsInfo|goods/setGoodsInfo]]</td> <td>修改商品</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/setGoodsInfoPin|goods/setGoodsInfoPin]]</td> <td>使用PIN码作为标识来修改商品</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/setGoodsStockSkuid|goods/setGoodsStockSkuid]]</td> <td>使用SKU ID作为标识来修改商品库存</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/setGoodsStockPin|goods/setGoodsStockPin]]</td> <td>使用PIN码作为标识来修改商品库存</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/setGoodsPriceSkuid|goods/setGoodsPriceSkuid]]</td> <td>使用SKU ID作为标识来修改商品价格</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/setGoodsPricePin|goods/setGoodsPricePin]]</td> <td>使用PIN码作为标识来修改商品价格</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/getGoodsVerifyInfo|goods/getGoodsVerifyInfo]]</td> <td>获取商品二次审核详情</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/applyGoodsVerify|goods/applyGoodsVerify]]</td> <td>提交商品二次审核</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/revertGoodsVerify|goods/revertGoodsVerify]]</td> <td>撤销商品二次审核</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/delGoodsVerify|goods/delGoodsVerify]]</td> <td>删除商品二次审核</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/getDraftList|goods/getDraftList]]</td> <td>获取商品草稿列表</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/getDraftInfo|goods/getDraftInfo]]</td> <td>获取商品草稿详情</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/addDraft|goods/addDraft]]</td> <td>创建商品到草稿</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/setDraftInfo|goods/setDraftInfo]]</td> <td>编辑商品草稿</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/delDrafts|goods/delDrafts]]</td> <td>删除商品草稿</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/applyDraftVerify|goods/applyDraftVerify]]</td> <td>提交商品草稿审核</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/revertDraftVerify|goods/revertDraftVerify]]</td> <td>撤销商品草稿审核</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/getTplList|goods/getTplList]]</td> <td>获取运费模版列表</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/getTplInfo|goods/getTplInfo]]</td> <td>获取运费模版详情</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/addTpl|goods/addTpl]]</td> <td>添加运费模版</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/updateTpl|goods/updateTpl]]</td> <td>更新运费模版</td> </tr> <tr> <td class="wiki_table_tdfirst">[[2/proxy/eshop/open/goods/delTpl|goods/delTpl]]</td> <td>删除运费模版</td> </tr> </table> </div> ==事件通知推送== <div class="wiki_txtJ"> 事件通知是由微博电商平台通知接入的商家,目前主要为订单事件通知,仅限虚拟商家接入。 </div> <div class="wiki_taglist"> <ul class="clearfix"> <li style="font-size:14px;">[[eshop/push|事件通知推送]]</li> </ul> </div> ==附录== <div class="wiki_txtJ"> 订单能力接口中需要用到的各种编码对照表。 </div> <div class="wiki_taglist"> <ul class="clearfix"> <li style="font-size:14px;width:160px;">[[ecs/code_index|订单类型对照表]]</li> <li style="font-size:14px;width:160px;">[[ecs/code_index|订单状态码对照表]]</li> <li style="font-size:14px;width:160px;">[[ecs/code_index|快递公司编码对照表]]</li> <li style="font-size:14px;width:160px;">[[ecs/code_index|充值账号类型对照表]]</li> <li style="font-size:14px;width:160px;">[[ecs/code_index|履约方式对照表]]</li> <li style="font-size:14px;width:160px;">[https://js.t.sinajs.cn/t6/ec/statics/cmn/sources/regions_mainland.json 微博电商地址库]</li> </ul> </div> {{#a:nobtns|noheading}} __NOTOC__
返回到
Ecs/api
。
反馈
分享
顶部