docs(抖音-码速达): 收录开放平台全量对接文档(抓取快照)
新增 docs/抖音-码速达:把新平台(dy-openplatform-api.wanmahui.com)联调文档页的 全部数据落到仓库,供离线查阅与后续对接。 数据来源:文档页把全部数据内嵌在隐藏 input#raw_data 的 JSON 里(api / message / fee / menu 四块),一次请求即取全,无需逐页爬取。 内容: - README.md:平台速览(网关、鉴权要素、计费)、14 条消息与 16 个接口总表、对接六步; - 01-计费规则.md:免费/基础(1 金豆)/高级(2 金豆)/增值(4 金豆)四档与各接口分级; - 02-接口调用规范与签名.md:网关 POST /api/openplatform/gateway、公共参数 uid/method/timestamp/sign、MD5 签名算法与可复算示例、返回结构; - 03-消息推送规范与签名.md:topic/pub_time/sign 走 URL、data 走 POST body、 验签要点、message.config 消息设置、messagetest 测试入口; - 接口API/ 16 篇:请求参数、返回字段(层级缩进)、可解析的返回示例 JSON、 签名原串 + MD5 结果; - 消息推送/ 14 篇:topic、data 字段、示例 JSON、签名原串 + MD5 结果; - data/raw_data.json(与页面快照逐字段校验一致)、data/page.html、data/代码示例/ (页面内置 JAVA/.NET/PHP 示例 6 份)、data/crawl-meta.json(抓取元信息与文件 MD5)。 校验:接口 16/16、消息 14/14 无缺漏,33 段示例 JSON 全部可解析,内部链接全部可达。 文档页访问令牌已隐去(凭据不入库)。04~06 的分析类文档暂不入库,仅保留本地。
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# 计费规则
|
||||
|
||||
> 来源:抖音码速达开放平台「计费规则」页(`#fee`)。所有接口按功能分级扣金豆,按实际调用量计费。
|
||||
|
||||
| 功能类型 | 单价(金豆) | 折合 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| 免费功能 | 0 | - | |
|
||||
| 基础功能 | 1 | 0.001元 | |
|
||||
| 高级功能 | 2 | 0.002元 | |
|
||||
| 增值功能 | 4 | 0.004元 | |
|
||||
|
||||
## 各接口对应的功能分级
|
||||
|
||||
### 消息推送
|
||||
|
||||
| 序号 | 消息 | 主题 | 分级 |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | 买家已付款 | `trade_TradePaid` | 基础功能 |
|
||||
| 2 | 卖家备注变更 | `trade_TradeMemoModify` | 基础功能 |
|
||||
| 3 | 卖家发货 | `trade_TradeSellerShip` | 基础功能 |
|
||||
| 4 | 卖家部分发货 | `trade_TradePartlySellerShip` | 基础功能 |
|
||||
| 5 | 买家发起售后 | `refund_RefundCreated` | 基础功能 |
|
||||
| 6 | 售后关闭 | `refund_RefundClosed` | 高级功能 |
|
||||
| 7 | 退款成功 | `refund_RefundSuccess` | 高级功能 |
|
||||
| 8 | 订单完成 | `trade_TradeSuccess` | 基础功能 |
|
||||
| 9 | 订单取消 | `trade_TradeCanceled` | 基础功能 |
|
||||
| 10 | 同意退款 | `refund_RefundAgreed` | 基础功能 |
|
||||
| 11 | 拒绝退款 | `refund_RefundRefused` | 高级功能 |
|
||||
| 12 | 发起仲裁 | `refund_ArbitrateApplied` | 高级功能 |
|
||||
| 13 | 取消仲裁 | `refund_ArbitrateCancelled` | 高级功能 |
|
||||
| 14 | 订单创建 | `trade_TradeCreate` | 基础功能 |
|
||||
|
||||
### 接口 API
|
||||
|
||||
| 序号 | 接口 | 方法名 | 分级 |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | 订单详情 | `order.orderDetail` | 高级功能 |
|
||||
| 2 | 充值结果提交 | `topup.result` | 基础功能 |
|
||||
| 3 | 卡券同步 | `coupons.syncV2` | 基础功能 |
|
||||
| 4 | 卡券核销V3 | `coupons.verifyV3` | 高级功能 |
|
||||
| 5 | 券码查询 | `coupons.list` | 基础功能 |
|
||||
| 6 | 卡券取消核销 | `coupons.cancelVerify` | 基础功能 |
|
||||
| 7 | 卖家备注 | `order.addOrderRemark` | 基础功能 |
|
||||
| 8 | 售后审核 | `afterSale.operate` | 高级功能 |
|
||||
| 9 | 查询商家拒绝原因列表 | `afterSale.rejectReasonCodeList` | 免费功能 |
|
||||
| 10 | 订单列表查询 | `order.searchList` | 未标注 |
|
||||
| 11 | 商家主动取消订单 | `coupons.CertSyncFailedCancelOrder` | 高级功能 |
|
||||
| 12 | 消息设置 | `message.config` | 免费功能 |
|
||||
| 13 | 商品详情 | `product.detail` | 基础功能 |
|
||||
| 14 | 商品列表 | `product.list` | 高级功能 |
|
||||
| 15 | 商品sku列表 | `sku.list` | 高级功能 |
|
||||
| 16 | 订单消息测试 | `order.message` | 高级功能 |
|
||||
@@ -0,0 +1,130 @@
|
||||
# 接口调用规范与签名
|
||||
|
||||
> 内容来源:抖音码速达开放平台「接口API」各页面内的公共说明(请求方式、公共参数、签名规则、返回结构、示例代码)。
|
||||
> 原始页面数据见 [`data/raw_data.json`](data/raw_data.json),示例代码原文见 [`data/代码示例/`](data/代码示例)。
|
||||
|
||||
## 1. 请求地址与协议
|
||||
|
||||
| 项目 | 值 |
|
||||
| --- | --- |
|
||||
| 接口网关 | `https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| 请求方式 | `POST` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 编码 | UTF-8(参数值需 URLEncode) |
|
||||
| 响应 | JSON |
|
||||
|
||||
页面上的「接口地址」是按当前站点 origin 动态拼出来的(`location.origin + "/api/openplatform/gateway"`),
|
||||
因此测试环境换域名时,网关地址随之变化。
|
||||
|
||||
## 2. 公共参数(所有接口都必须带)
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(页面示例为 `111111111`,实际由平台方分配) |
|
||||
| method | String | 是 | Post | 方法名,例如 `order.orderDetail`,取值见各接口文档 |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,**10 分钟内有效** |
|
||||
| sign | String | 是 | Post | 签名,签名原串计算 MD5(32 位小写) |
|
||||
|
||||
> 业务参数与公共参数一并 POST(`application/x-www-form-urlencoded`),业务参数清单见 [`接口API/`](接口API) 下各接口文档。
|
||||
|
||||
## 3. 签名算法
|
||||
|
||||
签名原串由 **用户秘钥 secret**、**参数名**、**参数值** 组成:
|
||||
|
||||
1. 取除 `sign` 之外的**全部参数**(公共参数 + 业务参数);
|
||||
2. 按**参数名的字典序**(ASCII 升序)排列,即 `content`、`method`、`order_id`、`timestamp`、`uid`… 的顺序;
|
||||
3. 每个参数把 `参数名` 直接连接 `参数值`(中间无分隔符),首尾相连;
|
||||
4. 在最前面和最后面各拼一次**用户秘钥**;
|
||||
5. 对该原串计算 **MD5,输出 32 位小写**,即为 `sign`。
|
||||
|
||||
```text
|
||||
sign = md5( secret + Σ(参数名 + 参数值,按参数名字典序) + secret )
|
||||
```
|
||||
|
||||
### 示例(订单详情 `order.orderDetail`)
|
||||
|
||||
占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`、业务参数 `shop_order_id=6917533224570258991`:
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXmethodorder.orderDetailshop_order_id6917533224570258991timestamp1780000000uid111111111XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`method`、`shop_order_id`、`timestamp`、`uid`
|
||||
|
||||
```text
|
||||
sign = e4a08602d21966e99d2fa0921d7456b0
|
||||
```
|
||||
|
||||
> 每条接口文档的「签名原串示例」小节里都给出了该接口的可复算示例(含 MD5 结果),可直接用来校验自己的实现。
|
||||
|
||||
### 注意
|
||||
|
||||
- `sign` 本身**不参与**签名原串计算。
|
||||
- 参数值要用**原始值**参与拼接;发请求时才对值做 URLEncode(页面 Java 示例是先拼原串算 sign,再把 `key=URLEncoder.encode(value)` 拼成 body 并追加 `sign`)。
|
||||
- 若业务参数值为 JSON 字符串(`type = Json`,如 `op`),拼进原串的是该 JSON 字符串本身,与 POST 出去的值保持一致。
|
||||
- `timestamp` 超过 10 分钟会校验失败,需要重新取当前秒级时间戳。
|
||||
|
||||
## 4. 返回结构
|
||||
|
||||
公共返回参数:
|
||||
|
||||
| 参数名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| code | String | `10000` | 返回编码,`10000` 代表成功,其余均表示错误 |
|
||||
| message | String | `成功` | 返回消息,错误时返回错误原因 |
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功"
|
||||
}
|
||||
```
|
||||
|
||||
业务数据在 `data` 字段中,按各接口的「返回参数」定义;完整示例见每条接口文档。
|
||||
|
||||
## 5. 请求代码示例
|
||||
|
||||
页面内置了三种语言的完整示例,已原样保存:
|
||||
|
||||
| 语言 | 文件 |
|
||||
| --- | --- |
|
||||
| JAVA | [`data/代码示例/接口API-请求示例-JAVA.txt`](data/代码示例/接口API-请求示例-JAVA.txt) |
|
||||
| .NET | [`data/代码示例/接口API-请求示例-DOTNET.txt`](data/代码示例/接口API-请求示例-DOTNET.txt) |
|
||||
| PHP | [`data/代码示例/接口API-请求示例-PHP.txt`](data/代码示例/接口API-请求示例-PHP.txt) |
|
||||
|
||||
代码里的 `{{secret}}` `{{uid}}` `{{method}}` `{{url}}` 是页面占位符,实际使用时替换为真实值;
|
||||
`{{p6}}` ~ `{{p10}}` 标注的是「按当前接口的业务参数逐条插入的位置」。
|
||||
|
||||
JAVA 示例的核心逻辑:
|
||||
|
||||
```java
|
||||
String secret = "{{secret}}"; // 用户秘钥
|
||||
String uid = "{{uid}}"; // 用户 OpenUid
|
||||
String method = "{{method}}"; // API 方法名
|
||||
String timestamp = String.valueOf(System.currentTimeMillis() / 1000L);
|
||||
|
||||
// 业务参数(按接口文档逐个 map.put)
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
map.put("uid", uid);
|
||||
map.put("method", method);
|
||||
map.put("timestamp", timestamp);
|
||||
|
||||
List<String> keys = new ArrayList(map.keySet());
|
||||
Collections.sort(keys); // 参数名字典序
|
||||
StringBuffer sb = new StringBuffer(secret); // 签名原串
|
||||
StringBuffer sb2 = new StringBuffer(); // POST body
|
||||
for (String key : keys) {
|
||||
sb.append(key + map.get(key));
|
||||
sb2.append(key + "=" + URLEncoder.encode(map.get(key), "UTF-8") + "&");
|
||||
}
|
||||
sb.append(secret);
|
||||
String sign = CalculateMd5(sb.toString()); // MD5 小写
|
||||
sb2.append("sign=" + sign);
|
||||
// POST sb2 到 {{url}},Content-Type: application/x-www-form-urlencoded
|
||||
```
|
||||
|
||||
## 6. 计费与注意事项
|
||||
|
||||
- 调用按**功能分级**扣金豆:免费 / 基础功能 1 金豆(0.001 元)/ 高级功能 2 金豆(0.002 元)/ 增值功能 4 金豆(0.004 元),按实际调用量计费,详见 [01-计费规则.md](01-计费规则.md)。
|
||||
- 页面部分接口标注「测试接口,仅支持特定商户」(如 `order.message`),接入前先与平台方确认权限。
|
||||
- 页面原始数据中,个别数值型返回字段没有示例值;本文档为保证示例 JSON 可被解析,统一补 `0`(原页面会渲染成非法 JSON)。
|
||||
@@ -0,0 +1,121 @@
|
||||
# 消息推送规范与签名
|
||||
|
||||
> 内容来源:抖音码速达开放平台「消息推送」各页面内的公共说明(推送参数、data 提交方式、签名规则、测试入口)。
|
||||
> 原始页面数据见 [`data/raw_data.json`](data/raw_data.json),示例代码原文见 [`data/代码示例/`](data/代码示例)。
|
||||
|
||||
## 1. 推送模型
|
||||
|
||||
1. 商家在「接口API → 消息设置」(方法名 `message.message_config`)里配置**推送地址 `message_url`** 与**订阅主题 `topics`**;
|
||||
2. 平台在对应业务事件发生时,向该地址推送消息;
|
||||
3. 推送采用 **URL 查询串 + POST body** 的混合方式:`topic`、`pub_time`、`sign` 放在 URL 上(Get),`data`(JSON 字符串)放在 POST body 里;
|
||||
4. 商家服务端校验签名、解析 `data` 后返回成功即可。
|
||||
|
||||
页面给出的 jQuery 请求示例(由平台侧发出,商家侧只需实现接收):
|
||||
|
||||
```javascript
|
||||
$.ajax('{message_url}?topic={topic}&pub_time={pub_time}&sign={sign}', {
|
||||
method: 'POST',
|
||||
data: '{data 的 JSON 字符串}',
|
||||
success: function (res) { console.log(res); },
|
||||
error: function (err) { console.log(err); }
|
||||
});
|
||||
```
|
||||
|
||||
## 2. 推送参数
|
||||
|
||||
| 参数名 | 类型 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| topic | String | Get | 消息主题,如 `trade_TradePaid`,取值见「[消息清单](#5-消息清单)」 |
|
||||
| pub_time | Number | Get | 原消息发布时间(秒时间戳) |
|
||||
| data | String | Post | 消息内容,JSON 格式字符串 |
|
||||
| sign | String | Get | 签名,签名原串计算 MD5(32 位小写) |
|
||||
|
||||
> 消息设置接口的字段:`status`(推送状态:0-禁用,1-启用)、`message_url`(推送地址)、`topics`(订阅的主题,多个用半角逗号分隔),首次提交时三项必填。
|
||||
|
||||
## 3. 签名算法
|
||||
|
||||
与接口调用同一套规则,但参与签名的参数只有 `data`、`pub_time`、`topic` 三个:
|
||||
|
||||
1. 参数名按**字典序**排序 → `data`、`pub_time`、`topic`;
|
||||
2. 依次拼接 `参数名 + 参数值`(`data` 用**完整 JSON 字符串本身**,不做 URL 编码);
|
||||
3. 首尾各拼一次**用户秘钥 secret**;
|
||||
4. 计算 **MD5,输出 32 位小写**。
|
||||
|
||||
```text
|
||||
sign = md5( secret + "data" + data + "pub_time" + pub_time + "topic" + topic + secret )
|
||||
```
|
||||
|
||||
### 示例(`trade_TradePaid` 买家已付款)
|
||||
|
||||
占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、`pub_time = 1780000000`:
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXdata{"pay_amount":1990,"s_ids":[123],"order_status":2,"order_type":0,"pay_time":1630373504,"p_id":4837328765348567000,"shop_id":77977,"pay_type":1,"biz":2}pub_time1780000000topictrade_TradePaidXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
```text
|
||||
sign = 1f4e1e6fc7e2ebad3368abfc2e07f2d1
|
||||
```
|
||||
|
||||
> 每条消息文档的「签名原串示例」小节都给出了该 topic 的可复算示例(含 MD5 结果),可用于校验验签实现。
|
||||
|
||||
## 4. 验签与联调
|
||||
|
||||
- **验签**:商家服务端收到请求后,用自己保存的 secret 按上面的规则复算 MD5,与 URL 上的 `sign` 比对;`data` 要使用**原始 JSON 字符串**(与 body 完全一致),不要先做格式化或键排序。
|
||||
- **测试入口**:平台提供消息推送测试接口
|
||||
|
||||
```text
|
||||
GET https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest?topic={topic}&pub_time={秒时间戳}&sign={签名}
|
||||
```
|
||||
|
||||
`data` 以 POST body 提交,用于在联调阶段按指定 topic 触发一条推送。
|
||||
- 另有「接口API → 订单消息测试」(方法名 `order.message`,测试接口,仅支持特定商户)可模拟订单类消息。
|
||||
|
||||
## 5. 消息清单
|
||||
|
||||
| # | 消息 | 主题 topic | 分级 |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | 买家已付款 | `trade_TradePaid` | 基础功能 |
|
||||
| 2 | 卖家备注变更 | `trade_TradeMemoModify` | 基础功能 |
|
||||
| 3 | 卖家发货 | `trade_TradeSellerShip` | 基础功能 |
|
||||
| 4 | 卖家部分发货 | `trade_TradePartlySellerShip` | 基础功能 |
|
||||
| 5 | 买家发起售后 | `refund_RefundCreated` | 基础功能 |
|
||||
| 6 | 售后关闭 | `refund_RefundClosed` | 高级功能 |
|
||||
| 7 | 退款成功 | `refund_RefundSuccess` | 高级功能 |
|
||||
| 8 | 订单完成 | `trade_TradeSuccess` | 基础功能 |
|
||||
| 9 | 订单取消 | `trade_TradeCanceled` | 基础功能 |
|
||||
| 10 | 同意退款 | `refund_RefundAgreed` | 基础功能 |
|
||||
| 11 | 拒绝退款 | `refund_RefundRefused` | 高级功能 |
|
||||
| 12 | 发起仲裁 | `refund_ArbitrateApplied` | 高级功能 |
|
||||
| 13 | 取消仲裁 | `refund_ArbitrateCancelled` | 高级功能 |
|
||||
| 14 | 订单创建 | `trade_TradeCreate` | 基础功能 |
|
||||
|
||||
每条消息的 `data` 字段说明与示例见 [`消息推送/`](消息推送) 目录。
|
||||
|
||||
## 6. 签名/推送代码示例
|
||||
|
||||
| 语言 | 文件 |
|
||||
| --- | --- |
|
||||
| JAVA | [`data/代码示例/消息推送-请求示例-JAVA.txt`](data/代码示例/消息推送-请求示例-JAVA.txt) |
|
||||
| .NET | [`data/代码示例/消息推送-请求示例-DOTNET.txt`](data/代码示例/消息推送-请求示例-DOTNET.txt) |
|
||||
| PHP | [`data/代码示例/消息推送-请求示例-PHP.txt`](data/代码示例/消息推送-请求示例-PHP.txt) |
|
||||
|
||||
PHP 示例(可直接用于验签):
|
||||
|
||||
```php
|
||||
$secret = '{{secret}}'; // 用户秘钥
|
||||
$params = array();
|
||||
$params['topic'] = '{{topic}}'; // 消息主题
|
||||
$params['pub_time'] = '{{pub-time}}'; // 原消息发布时间
|
||||
$params['data'] = '{{data}}'; // 消息内容(原始 JSON 字符串)
|
||||
ksort($params); // 参数名字典序
|
||||
$str = '';
|
||||
foreach ($params as $k => $v) {
|
||||
$str .= ($k . $v);
|
||||
}
|
||||
$str = $secret . $str . $secret; // 拼接签名原串
|
||||
$sign = md5($str); // 签名计算
|
||||
```
|
||||
|
||||
Java 示例的核心逻辑见 [`data/代码示例/消息推送-请求示例-JAVA.txt`](data/代码示例/消息推送-请求示例-JAVA.txt):
|
||||
把 `topic`/`pub_time`/`data` 放进 map → `Collections.sort` → 前后拼 secret → `CalculateMd5`。
|
||||
@@ -0,0 +1,86 @@
|
||||
# 抖音码速达 - 开放平台 对接文档
|
||||
|
||||
> 本目录把 **抖音码速达开放平台**(<https://dy-openplatform-api.wanmahui.com>)联调文档页的全部数据完整落到仓库里,
|
||||
> 便于离线查阅、评审与后续对接开发。
|
||||
>
|
||||
> 抓取时间:2026-10-08(Asia/Shanghai)| 抓取入口:`https://dy-openplatform-api.wanmahui.com/?token=<访问令牌已隐去>#message.trade_TradePaid`
|
||||
> 页面数据源:页面内嵌的 `#raw_data` JSON(本目录已原样保存为 `data/raw_data.json`)。
|
||||
> 说明:文档页访问令牌(token)属于凭据,已在本文档中隐去,如需重新访问请向平台方索取。
|
||||
|
||||
## 平台速览
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 平台名称 | 抖音码速达 - 开放平台 |
|
||||
| 服务地址(页面 origin) | `https://dy-openplatform-api.wanmahui.com` |
|
||||
| 接口网关 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| 消息推送测试入口 | `https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest` |
|
||||
| 请求编码 | `Content-Type: application/x-www-form-urlencoded` |
|
||||
| 签名算法 | MD5(32 位小写),见「[接口调用规范与签名](02-接口调用规范与签名.md)」 |
|
||||
| 鉴权要素 | 用户秘钥 secret + 抖店商户号 uid(OpenUid) + 方法名 method + 时间戳 timestamp |
|
||||
| 计费 | 按功能分级扣金豆(见「[计费规则](01-计费规则.md)」) |
|
||||
| 消息主题数量 | 14 条 |
|
||||
| 接口数量 | 16 个(不含公共参数 uid/method/timestamp/sign) |
|
||||
|
||||
## 文档目录
|
||||
|
||||
| 文档 | 内容 |
|
||||
| --- | --- |
|
||||
| [01-计费规则.md](01-计费规则.md) | 免费/基础/高级/增值 四档功能单价与各接口分级 |
|
||||
| [02-接口调用规范与签名.md](02-接口调用规范与签名.md) | 网关、公共参数、签名算法、返回结构、JAVA/.NET/PHP 请求示例 |
|
||||
| [03-消息推送规范与签名.md](03-消息推送规范与签名.md) | 推送参数、data 提交方式、签名与验签、消息设置、示例代码 |
|
||||
| 04 ~ 06 分析文档 | 【本地文档,暂未入库】结合本项目的深度分析、最小接入方案分析、待确认问题清单 |
|
||||
| `接口API/` | 16 个接口逐条文档(请求参数、返回参数与示例、签名原串示例) |
|
||||
| `消息推送/` | 14 条消息逐条文档(topic、data 字段、示例 JSON、签名原串示例) |
|
||||
| `data/raw_data.json` | 页面内嵌原始数据(api / message / fee / menu 四块,完整未删减) |
|
||||
| `data/page.html` | 文档页原始 HTML 快照(含页面模板与前端逻辑) |
|
||||
| `data/代码示例/` | 页面内置的 JAVA / .NET / PHP 示例代码原文 |
|
||||
|
||||
## 消息推送(14 条)
|
||||
|
||||
| # | 消息 | 主题 topic | 分级 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1 | [买家已付款](消息推送/01-买家已付款.md) | `trade_TradePaid` | 基础功能 | 在线支付订单,当买家付款成功时,会推送此消息 |
|
||||
| 2 | [卖家备注变更](消息推送/02-卖家备注变更.md) | `trade_TradeMemoModify` | 基础功能 | 卖家修改交易备注时,会推送此消息 |
|
||||
| 3 | [卖家发货](消息推送/03-卖家发货.md) | `trade_TradeSellerShip` | 基础功能 | 卖家对所有商品发货完成,且父订单状态为【已发货】时,会推送此消息 |
|
||||
| 4 | [卖家部分发货](消息推送/04-卖家部分发货.md) | `trade_TradePartlySellerShip` | 基础功能 | 卖家对部分商品(可能是部分件数)发货时,会推送此消息 |
|
||||
| 5 | [买家发起售后](消息推送/05-买家发起售后.md) | `refund_RefundCreated` | 基础功能 | 买家申请整单退款时,会推送此消息 |
|
||||
| 6 | [售后关闭](消息推送/06-售后关闭.md) | `refund_RefundClosed` | 高级功能 | 当买家取消申请或系统超时机制导致退款取消时,会推送此消息 |
|
||||
| 7 | [退款成功](消息推送/07-退款成功.md) | `refund_RefundSuccess` | 高级功能 | 当商家同意退款后,实际退款到账时,会推送此消息 |
|
||||
| 8 | [订单完成](消息推送/08-订单完成.md) | `trade_TradeSuccess` | 基础功能 | 买家确认收货或系统自动确认收货,且父订单状态变为「已完成」时,会推送此消息 |
|
||||
| 9 | [订单取消](消息推送/09-订单取消.md) | `trade_TradeCanceled` | 基础功能 | 触发场景:货到付款订单且订单状态为「待确认」,买家和商家可取消订单;货到付款订单且订单状态为「备货中」,买家、商家和平台客服可取消订单;货到付款订单且订单状态为「已发货」,物流状态为拒收或退回;在线支付订单且订单状态为「待付款」,买家可取消该订单;在线支付订单且订单状态为「待付款」,超时未支付,订单自动取消 |
|
||||
| 10 | [同意退款](消息推送/10-同意退款.md) | `refund_RefundAgreed` | 基础功能 | 触发场景:买家在发货前申请整单退款,卖家同意退款或超时自动同意退款时;买家在发货后申请退款,卖家同意退款或超时自动同意退款时;买家在发货后申请申请退货,卖家确认收货或系统超时自动确认收货时;卖家收到买家换货包裹,核验后无法换货,同意换货但转直接退款时 |
|
||||
| 11 | [拒绝退款](消息推送/11-拒绝退款.md) | `refund_RefundRefused` | 高级功能 | 触发场景:买家在发货前申请整单退款,卖家拒绝;买家在发货后申请退款,卖家拒绝;买家在发货后申请申请退货,买家发货后,卖家拒绝收货 |
|
||||
| 12 | [发起仲裁](消息推送/12-发起仲裁.md) | `refund_ArbitrateApplied` | 高级功能 | 触发场景:商家拒绝买家请求,买家可申请平台客服介入、发起客服仲裁,此时推送此消息。具体场景如下: 订单已发货,买家申请售后退款,此时商家拒绝,买家可发起仲裁;订单已发货,买家申请售后退换货,此时商家拒绝退货请求,买家可发起仲裁;订单已发货,买家申请售后退换货,买家已填写退货物流,此时商家拒绝收货,买家可发起仲裁 |
|
||||
| 13 | [取消仲裁](消息推送/13-取消仲裁.md) | `refund_ArbitrateCancelled` | 高级功能 | 买家申请客服介入、发起客服仲裁后,而后又取消客服仲裁时,推送此消息 |
|
||||
| 14 | [订单创建](消息推送/14-订单创建.md) | `trade_TradeCreate` | 基础功能 | 当买家下单,系统生成订单时,会推送此消息 |
|
||||
|
||||
## 接口 API(16 个)
|
||||
|
||||
| # | 接口 | 方法名 | 分级 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1 | [订单详情](接口API/01-订单详情.md) | `order.orderDetail` | 高级功能 | 查询订单的详细信息,仅显示关键字段 |
|
||||
| 2 | [充值结果提交](接口API/02-充值结果提交.md) | `topup.result` | 基础功能 | 商家处理完充值请求后,异步回调告知平台充值结果 |
|
||||
| 3 | [卡券同步](接口API/03-卡券同步.md) | `coupons.syncV2` | 基础功能 | 卖家在平台卖出券后同步卡券信息 |
|
||||
| 4 | [卡券核销V3](接口API/04-卡券核销V3.md) | `coupons.verifyV3` | 高级功能 | 卖家向平台提交卡券核销状态 |
|
||||
| 5 | [券码查询](接口API/05-券码查询.md) | `coupons.list` | 基础功能 | 查询券码在平台侧的状态详情 |
|
||||
| 6 | [卡券取消核销](接口API/06-卡券取消核销.md) | `coupons.cancelVerify` | 基础功能 | 当卡券核销错误之后,取消核销时候使用 |
|
||||
| 7 | [卖家备注](接口API/07-卖家备注.md) | `order.addOrderRemark` | 基础功能 | 卖家提交订单备注 |
|
||||
| 8 | [售后审核](接口API/08-售后审核.md) | `afterSale.operate` | 高级功能 | 售后统一操作接口 |
|
||||
| 9 | [查询商家拒绝原因列表](接口API/09-查询商家拒绝原因列表.md) | `afterSale.rejectReasonCodeList` | 免费功能 | 查询抖店支持的全量拒绝原因列表,或指定售后单可选的拒绝原因列表(仅支持已发货的售后查询,备货中未发货订单返回为空) |
|
||||
| 10 | [订单列表查询](接口API/10-订单列表查询.md) | `order.searchList` | 未标注 | 根据条件检索满足要求的订单列表,支持下单时间和更新时间排序;最大支持查询近90天的数据;注:本接口仅用作批量获取订单基础信息及核查订单状态,如需获取订单充值信息,构建充值流程,请对接【买家已付款】消息+【订单详情】API |
|
||||
| 11 | [商家主动取消订单](接口API/11-商家主动取消订单.md) | `coupons.CertSyncFailedCancelOrder` | 高级功能 | 仅适用于三方卡券订单,其他类型的订单都不支持;订单状态等于2,处于待发码状态,商家才可主动取消订单 |
|
||||
| 12 | [消息设置](接口API/12-消息设置.md) | `message.config` | 免费功能 | 用户自行设置消息接收地址,推送状态及订阅内容 |
|
||||
| 13 | [商品详情](接口API/13-商品详情.md) | `product.detail` | 基础功能 | 根据商品ID获取商品详情,输出仅限码速达系统已采集的字段 |
|
||||
| 14 | [商品列表](接口API/14-商品列表.md) | `product.list` | 高级功能 | 分页查询店铺商品列表,输出仅限码速达系统已采集的字段 |
|
||||
| 15 | [商品sku列表](接口API/15-商品sku列表.md) | `sku.list` | 高级功能 | 根据商品id获取商品的sku列表 |
|
||||
| 16 | [订单消息测试](接口API/16-订单消息测试.md) | `order.message` | 高级功能 | 测试接口,仅支持特定商户 |
|
||||
|
||||
## 对接要点(快速上手)
|
||||
|
||||
1. **拿凭据**:向平台方索取「用户秘钥 secret」与「抖店商户号 uid」。
|
||||
2. **调接口**:`POST {网关}`,`application/x-www-form-urlencoded`,带公共参数 `uid`、`method`、`timestamp`(10 分钟内有效)、`sign` + 业务参数。
|
||||
3. **算签名**:除 `sign` 外所有参数按**参数名字典序**拼接 `参数名+参数值`,首尾各加一次 secret,取 **MD5 小写**。
|
||||
4. **看返回**:`{"code":"10000","message":"成功","data":{...}}`;`code != 10000` 即失败,`message` 为错误原因。
|
||||
5. **收消息推送**:在「消息设置」接口配置 `message_url` 与订阅的 `topics`;平台以 `GET topic+pub_time+sign`、`data` 走 POST body 推送到该地址,验签同样用 MD5 原串。
|
||||
6. **自测**:消息可用 `messagetest` 入口按 topic 触发;接口联调前先确认账户金豆余额与功能分级。
|
||||
@@ -0,0 +1,221 @@
|
||||
{
|
||||
"platform": "抖音码速达 - 开放平台",
|
||||
"source_url": "https://dy-openplatform-api.wanmahui.com/?token=<已隐去>#message.trade_TradePaid",
|
||||
"source_origin": "https://dy-openplatform-api.wanmahui.com",
|
||||
"crawled_at": "2026-10-08T14:05:00+08:00",
|
||||
"data_source": "页面内嵌 #raw_data JSON(隐藏 input),单次请求即包含全部文档数据",
|
||||
"counts": {
|
||||
"messages": 14,
|
||||
"apis": 16,
|
||||
"fee_tiers": 4,
|
||||
"menu_groups": 3
|
||||
},
|
||||
"endpoints": {
|
||||
"gateway": "https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway",
|
||||
"message_test": "https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest"
|
||||
},
|
||||
"messages": [
|
||||
{
|
||||
"topic": "trade_TradePaid",
|
||||
"name": "买家已付款",
|
||||
"level": "基础功能",
|
||||
"props": 9
|
||||
},
|
||||
{
|
||||
"topic": "trade_TradeMemoModify",
|
||||
"name": "卖家备注变更",
|
||||
"level": "基础功能",
|
||||
"props": 5
|
||||
},
|
||||
{
|
||||
"topic": "trade_TradeSellerShip",
|
||||
"name": "卖家发货",
|
||||
"level": "基础功能",
|
||||
"props": 15
|
||||
},
|
||||
{
|
||||
"topic": "trade_TradePartlySellerShip",
|
||||
"name": "卖家部分发货",
|
||||
"level": "基础功能",
|
||||
"props": 21
|
||||
},
|
||||
{
|
||||
"topic": "refund_RefundCreated",
|
||||
"name": "买家发起售后",
|
||||
"level": "基础功能",
|
||||
"props": 17
|
||||
},
|
||||
{
|
||||
"topic": "refund_RefundClosed",
|
||||
"name": "售后关闭",
|
||||
"level": "高级功能",
|
||||
"props": 12
|
||||
},
|
||||
{
|
||||
"topic": "refund_RefundSuccess",
|
||||
"name": "退款成功",
|
||||
"level": "高级功能",
|
||||
"props": 12
|
||||
},
|
||||
{
|
||||
"topic": "trade_TradeSuccess",
|
||||
"name": "订单完成",
|
||||
"level": "基础功能",
|
||||
"props": 0
|
||||
},
|
||||
{
|
||||
"topic": "trade_TradeCanceled",
|
||||
"name": "订单取消",
|
||||
"level": "基础功能",
|
||||
"props": 0
|
||||
},
|
||||
{
|
||||
"topic": "refund_RefundAgreed",
|
||||
"name": "同意退款",
|
||||
"level": "基础功能",
|
||||
"props": 0
|
||||
},
|
||||
{
|
||||
"topic": "refund_RefundRefused",
|
||||
"name": "拒绝退款",
|
||||
"level": "高级功能",
|
||||
"props": 0
|
||||
},
|
||||
{
|
||||
"topic": "refund_ArbitrateApplied",
|
||||
"name": "发起仲裁",
|
||||
"level": "高级功能",
|
||||
"props": 0
|
||||
},
|
||||
{
|
||||
"topic": "refund_ArbitrateCancelled",
|
||||
"name": "取消仲裁",
|
||||
"level": "高级功能",
|
||||
"props": 0
|
||||
},
|
||||
{
|
||||
"topic": "trade_TradeCreate",
|
||||
"name": "订单创建",
|
||||
"level": "基础功能",
|
||||
"props": 7
|
||||
}
|
||||
],
|
||||
"apis": [
|
||||
{
|
||||
"method": "order.orderDetail",
|
||||
"name": "订单详情",
|
||||
"level": "高级功能",
|
||||
"params": 1,
|
||||
"returns": 39
|
||||
},
|
||||
{
|
||||
"method": "topup.result",
|
||||
"name": "充值结果提交",
|
||||
"level": "基础功能",
|
||||
"params": 9,
|
||||
"returns": 7
|
||||
},
|
||||
{
|
||||
"method": "coupons.syncV2",
|
||||
"name": "卡券同步",
|
||||
"level": "基础功能",
|
||||
"params": 2,
|
||||
"returns": 0
|
||||
},
|
||||
{
|
||||
"method": "coupons.verifyV3",
|
||||
"name": "卡券核销V3",
|
||||
"level": "高级功能",
|
||||
"params": 1,
|
||||
"returns": 0
|
||||
},
|
||||
{
|
||||
"method": "coupons.list",
|
||||
"name": "券码查询",
|
||||
"level": "基础功能",
|
||||
"params": 3,
|
||||
"returns": 13
|
||||
},
|
||||
{
|
||||
"method": "coupons.cancelVerify",
|
||||
"name": "卡券取消核销",
|
||||
"level": "基础功能",
|
||||
"params": 3,
|
||||
"returns": 0
|
||||
},
|
||||
{
|
||||
"method": "order.addOrderRemark",
|
||||
"name": "卖家备注",
|
||||
"level": "基础功能",
|
||||
"params": 4,
|
||||
"returns": 0
|
||||
},
|
||||
{
|
||||
"method": "afterSale.operate",
|
||||
"name": "售后审核",
|
||||
"level": "高级功能",
|
||||
"params": 3,
|
||||
"returns": 4
|
||||
},
|
||||
{
|
||||
"method": "afterSale.rejectReasonCodeList",
|
||||
"name": "查询商家拒绝原因列表",
|
||||
"level": "免费功能",
|
||||
"params": 1,
|
||||
"returns": 8
|
||||
},
|
||||
{
|
||||
"method": "order.searchList",
|
||||
"name": "订单列表查询",
|
||||
"level": "",
|
||||
"params": 12,
|
||||
"returns": 35
|
||||
},
|
||||
{
|
||||
"method": "coupons.CertSyncFailedCancelOrder",
|
||||
"name": "商家主动取消订单",
|
||||
"level": "高级功能",
|
||||
"params": 2,
|
||||
"returns": 4
|
||||
},
|
||||
{
|
||||
"method": "message.config",
|
||||
"name": "消息设置",
|
||||
"level": "免费功能",
|
||||
"params": 3,
|
||||
"returns": 0
|
||||
},
|
||||
{
|
||||
"method": "product.detail",
|
||||
"name": "商品详情",
|
||||
"level": "基础功能",
|
||||
"params": 1,
|
||||
"returns": 15
|
||||
},
|
||||
{
|
||||
"method": "product.list",
|
||||
"name": "商品列表",
|
||||
"level": "高级功能",
|
||||
"params": 2,
|
||||
"returns": 15
|
||||
},
|
||||
{
|
||||
"method": "sku.list",
|
||||
"name": "商品sku列表",
|
||||
"level": "高级功能",
|
||||
"params": 2,
|
||||
"returns": 12
|
||||
},
|
||||
{
|
||||
"method": "order.message",
|
||||
"name": "订单消息测试",
|
||||
"level": "高级功能",
|
||||
"params": 3,
|
||||
"returns": 0
|
||||
}
|
||||
],
|
||||
"files": {
|
||||
"raw_data.json": "01b9c677ebafaf9f45521c1ac12d11aa",
|
||||
"page.html": "12789c19c2d6a8271383eeb9f6f14aa4"
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,64 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
|
||||
namespace Test
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
string secret = "{{secret}}"; //用户秘钥
|
||||
string uid = "{{uid}}"; //用户OpenUid
|
||||
string method = "{{method}}"; //API方法名
|
||||
string timestamp = ((long)(DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds).ToString(); //时间戳
|
||||
//业务参数 {{p8}}
|
||||
Dictionary<string, string> dict = new Dictionary<string, string>();
|
||||
dict.Add("uid", uid);
|
||||
dict.Add("method", method);
|
||||
dict.Add("timestamp", timestamp);
|
||||
//业务参数 {{p9}}
|
||||
StringBuilder sb = new StringBuilder(secret); //拼接签名原串
|
||||
StringBuilder sb2 = new StringBuilder(); //拼接POST内容
|
||||
foreach (string key in dict.Keys.OrderBy(key => key))
|
||||
{
|
||||
sb.Append(key + dict[key]);
|
||||
sb2.Append(key + "=" + HttpUtility.UrlEncode(dict[key], Encoding.UTF8) + "&");
|
||||
}
|
||||
sb.Append(secret);
|
||||
string sign = CalculateMd5(sb.ToString()); //签名计算
|
||||
sb2.Append("sign=" + sign); //添加签名参数
|
||||
string result = CallApi(sb2.ToString()); //请求API
|
||||
Console.WriteLine(result);
|
||||
}
|
||||
|
||||
private static string CalculateMd5(string content)
|
||||
{
|
||||
var md5 = new MD5CryptoServiceProvider();
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(content);
|
||||
byte[] bytes2 = md5.ComputeHash(bytes);
|
||||
return BitConverter.ToString(bytes2).Replace("-", "").ToLower();
|
||||
}
|
||||
|
||||
private static string CallApi(string formData)
|
||||
{
|
||||
try
|
||||
{
|
||||
WebClient webClient = new WebClient();
|
||||
webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
|
||||
webClient.Headers.Add("Accept", "application/json");
|
||||
webClient.Encoding = Encoding.UTF8;
|
||||
string result = webClient.UploadString("{{url}}", "POST", formData);
|
||||
return result;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStream;
|
||||
import java.math.BigInteger;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.net.URLEncoder;
|
||||
import java.security.MessageDigest;
|
||||
import java.util.*;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String secret = "{{secret}}"; //用户秘钥
|
||||
String uid = "{{uid}}"; //用户OpenUid
|
||||
String method = "{{method}}"; //API方法名
|
||||
String timestamp = String.valueOf(System.currentTimeMillis() / 1000L); //时间戳
|
||||
//业务参数 {{p6}}
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
map.put("uid", uid);
|
||||
map.put("method", method);
|
||||
map.put("timestamp", timestamp);
|
||||
//业务参数 {{p7}}
|
||||
List<String> keys = new ArrayList(map.keySet()); //SET转LIST
|
||||
Collections.sort(keys); //排序
|
||||
StringBuffer sb = new StringBuffer(secret); //拼接签名原串
|
||||
StringBuffer sb2 = new StringBuffer(); //拼接POST内容
|
||||
for (String key : keys) {
|
||||
sb.append(key + map.get(key));
|
||||
sb2.append(key + "=" + URLEncoder.encode(map.get(key), "UTF-8") + "&");
|
||||
}
|
||||
sb.append(secret);
|
||||
String sign = CalculateMd5(sb.toString()); //签名计算
|
||||
sb2.append("sign=" + sign); //添加签名参数
|
||||
String result = CallApi(sb2.toString()); //请求API
|
||||
System.out.println(result);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
private static String CalculateMd5(String content) {
|
||||
try {
|
||||
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||
md.update(content.getBytes());
|
||||
byte[] digest = md.digest();
|
||||
Formatter formatter = new Formatter();
|
||||
for (byte b : digest) {
|
||||
formatter.format("%02x", b);
|
||||
}
|
||||
String result = formatter.toString();
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static String CallApi(String formData) {
|
||||
try {
|
||||
URL url = new URL("{{url}}");
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setRequestMethod("POST");
|
||||
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
|
||||
connection.setRequestProperty("Accept", "application/json");
|
||||
connection.setDoOutput(true);
|
||||
try (OutputStream os = connection.getOutputStream()) {
|
||||
byte[] input = formData.getBytes("utf-8");
|
||||
os.write(input, 0, input.length);
|
||||
}
|
||||
try (BufferedReader br = new BufferedReader(
|
||||
new InputStreamReader(connection.getInputStream(), "utf-8"))) {
|
||||
StringBuilder response = new StringBuilder();
|
||||
String responseLine = null;
|
||||
while ((responseLine = br.readLine()) != null) {
|
||||
response.append(responseLine.trim());
|
||||
}
|
||||
return response.toString();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
$secret = '{{secret}}'; //用户秘钥
|
||||
$params = array();
|
||||
$params['uid'] = '{{uid}}'; //用户OpenUid
|
||||
$params['method'] = '{{method}}'; //API方法名
|
||||
$params['timestamp'] = time(); //时间戳
|
||||
//业务参数 {{p10}}
|
||||
ksort($params); //排序
|
||||
$str='';
|
||||
foreach($params as $k => $v)
|
||||
{
|
||||
$str .= ($k . $v);
|
||||
$params[$k] = urlencode($v);
|
||||
}
|
||||
$str = $secret . $str . $secret; //拼接签名原串
|
||||
$sign = md5($str); //签名计算
|
||||
$params['sign'] = $sign; //添加签名参数
|
||||
$res = call_api($params); //请求API
|
||||
echo($res);
|
||||
|
||||
function call_api($params)
|
||||
{
|
||||
$curl = curl_init();
|
||||
if (version_compare(phpversion(), '5.4.0', '<')) {
|
||||
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
|
||||
} else {
|
||||
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
|
||||
}
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
|
||||
curl_setopt($curl, CURLOPT_POST, TRUE);
|
||||
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
|
||||
curl_setopt($curl, CURLOPT_URL, '{{url}}');
|
||||
$res = curl_exec($curl);
|
||||
curl_close ($curl);
|
||||
return $res;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
|
||||
namespace Test
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
string secret = "{{secret}}"; //用户秘钥
|
||||
string topic = "{{topic}}"; //消息主题
|
||||
string pub_time = "{{pub_time}}";//原消息发布时间
|
||||
string data = "{{data-2}}"; //消息内容
|
||||
Dictionary<string, string> dict = new Dictionary<string, string>();
|
||||
dict.Add("topic", topic);
|
||||
dict.Add("pub_time", pub_time);
|
||||
dict.Add("data", data);
|
||||
StringBuilder sb = new StringBuilder(secret); //拼接签名原串
|
||||
foreach (string key in dict.Keys.OrderBy(key => key))
|
||||
{
|
||||
sb.Append(key + dict[key]);
|
||||
}
|
||||
sb.Append(secret);
|
||||
string sign = CalculateMd5(sb.ToString()); //签名计算
|
||||
Console.WriteLine(sign);
|
||||
}
|
||||
|
||||
private static string CalculateMd5(string content)
|
||||
{
|
||||
var md5 = new MD5CryptoServiceProvider();
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(content);
|
||||
byte[] bytes2 = md5.ComputeHash(bytes);
|
||||
return BitConverter.ToString(bytes2).Replace("-", "").ToLower();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
import java.math.BigInteger;
|
||||
import java.security.MessageDigest;
|
||||
import java.util.*;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String secret = "{{secret}}"; //用户秘钥
|
||||
String topic = "{{topic}}"; //消息主题
|
||||
String pub_time = "{{pub-time}}"; //原消息发布时间
|
||||
String data = "{{data-2}}"; //消息内容
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
map.put("topic", topic);
|
||||
map.put("pub_time", pub_time);
|
||||
map.put("data", data);
|
||||
List<String> keys = new ArrayList(map.keySet()); //SET转LIST
|
||||
Collections.sort(keys); //排序
|
||||
StringBuffer sb = new StringBuffer(secret); //拼接签名原串
|
||||
for (String key : keys) {
|
||||
sb.append(key + map.get(key));
|
||||
}
|
||||
sb.append(secret);
|
||||
String sign = CalculateMd5(sb.toString()); //签名计算
|
||||
System.out.println(sign);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
private static String CalculateMd5(String content) {
|
||||
try {
|
||||
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||
md.update(content.getBytes());
|
||||
byte[] digest = md.digest();
|
||||
Formatter formatter = new Formatter();
|
||||
for (byte b : digest) {
|
||||
formatter.format("%02x", b);
|
||||
}
|
||||
String result = formatter.toString();
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
$secret = '{{secret}}'; //用户秘钥
|
||||
$params = array();
|
||||
$params['topic'] = '{{topic}}'; //消息主题
|
||||
$params['pub_time'] = '{{pub-time}}'; //原消息发布时间
|
||||
$params['data'] = '{{data}}'; //消息内容
|
||||
ksort($params); //排序
|
||||
$str='';
|
||||
foreach($params as $k => $v)
|
||||
{
|
||||
$str .= ($k . $v);
|
||||
}
|
||||
$str = $secret . $str . $secret; //拼接签名原串
|
||||
$sign = md5($str); //签名计算
|
||||
echo($sign);
|
||||
@@ -0,0 +1,144 @@
|
||||
# 订单详情(`order.orderDetail`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 订单详情」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 订单详情 |
|
||||
| 方法名 method | `order.orderDetail` |
|
||||
| 功能分级 | 高级功能 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 查询订单的详细信息,仅显示关键字段 |
|
||||
| 抖店原始路径 | `/order/orderDetail` |
|
||||
| 抖店原始文档 | [订单详情查询](https://op.jinritemai.com/docs/api-docs/15/1343) |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `order.orderDetail`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| shop_order_id | String | 是 | Post | 店铺父订单号,抖店平台生成,平台下唯一,示例:`6917533224570258991` |
|
||||
|
||||
## 返回参数
|
||||
|
||||
| 参数名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| data | Object | `` | |
|
||||
| order_id | String | `6917533224570258991` | 店铺父订单号,抖店平台生成,平台下唯一 |
|
||||
| order_status | Integer | `3` | 订单状态:1-待确认/待支付(订单创建完毕),105-已支付,2-备货中,101-部分发货,3-已发货(全部发货),4-已取消,5-已完成(已收货) |
|
||||
| shop_id | Integer | `94956` | 店铺ID,抖店平台生成,平台下唯一 |
|
||||
| shop_name | String | `订单专用_测试店三` | 商户名称 |
|
||||
| order_amount | Integer | `20500` | 订单金额(单位:分) |
|
||||
| pay_amount | Integer | `20500` | 支付金额(单位:分) |
|
||||
| pay_time | Integer | `1682479081` | 支付时间,时间戳,秒 |
|
||||
| create_time | Integer | `1682479079` | 下单时间,时间戳,秒 |
|
||||
| finish_time | Integer | `0` | 订单完成时间,时间戳,秒 |
|
||||
| doudian_open_id | String | `1@#SGf7u/L4T728WdIaNcm6c+7SOqTObqbPh6wJBSm6lRGO+VEipIFB4EZDoWtkW1ThcrgNhg==` | 用户唯一id,规则详见:https://op.jinritemai.com/docs/guide-docs/1368/4416 |
|
||||
| post_tel | String | `1231234` | 收件人电话 |
|
||||
| post_receiver | String | `aaa` | 收件人姓名 |
|
||||
| buyer_words | String | `取消` | 买家留言 |
|
||||
| seller_words | String | `取消` | 商家备注 |
|
||||
| seller_remark_stars | Integer | `0` | 插旗信息:0-灰 1-紫 2-青 3-绿 4-橙 5-红 |
|
||||
| order_type | Integer | `5` | 订单类型:0-普通订单,2-虚拟商品订单,4-电子券(poi核销),5-三方核销,6-服务市场 |
|
||||
| biz | Integer | `11` | 业务来源:1-鲁班,2-小店,3-好好学习,4-ev,5-虚拟,6-建站,7-平台卡券,8-玉石,9-ez,10-ep,11-三方卡券,12-服务市场,13-EP视频课,14-EP直播课,21-跨境BBC,22-跨境BC,23-跨境CC\|UPU,24-手机充值,25-拍卖保证金,26-懂车帝抵扣券,27-懂车帝返现券,28-离岛免税,29-海南会员购,30-抽奖,31-清北-企业代付,32-抖+券,33-联盟寄样,49-刀剑,53-通信卡,66-加油包,76-大闸蟹,99-保险,101-三方卡券卡密模式,102-小店海外,108-上门取件收款 |
|
||||
| b_type | Integer | `2` | 下单端:0-站外,1-火山,2-抖音,3-头条,4-西瓜,5-微信,6-值点app,7-头条lite,8-懂车帝,9-皮皮虾,11-抖音极速版,12-TikTok,13-musically,14-穿山甲,15-火山极速版,16-服务市场,26-番茄小说,27-UG教育营销电商平台,28-Jumanji,29-电商SDK |
|
||||
| sku_order_list | Array | `` | 订单详情信息,一个主订单下有可以最大返回40个子订单 |
|
||||
| order_id | String | `4781320682406083640` | 店铺子订单号,抖店平台生成,平台下唯一;注意:一笔订单下有一个子订单和父订单单号相同 |
|
||||
| product_id | Integer | `3473196049974326153` | 商品ID,字符串类型 |
|
||||
| sku_id | Integer | `3254535` | 商品SkuID |
|
||||
| out_product_id | String | `432655662343` | 商品外部编码 |
|
||||
| out_sku_id | String | `43564553` | 外部SkuID |
|
||||
| product_name | String | `XX鞋子` | 商品名称 |
|
||||
| goods_price | Integer | `100` | 商品原价(单位:分) |
|
||||
| item_num | Integer | `2` | 订单商品数量 |
|
||||
| order_amount | Integer | `20500` | 订单金额(单位:分) |
|
||||
| pay_amount | Integer | `20500` | 支付金额(单位:分) |
|
||||
| code | String | `XXX001` | 商家后台商品编码 |
|
||||
| account_list | Array | `` | 买家账号信息,列表类型,当order_type=2,order_type_desc为虚拟订单时该参数会返回信息 |
|
||||
| account_id | String | `15678909876` | 账号值 |
|
||||
| account_type | String | `1` | 买家账号类型:Mobile-手机号,Email-邮箱,IdCard-身份证,Passport-护照,BankCard-银行卡,Number-纯数学,NumberLetter-数字字母混合 |
|
||||
| account_name | String | `测试` | 买家账号名称 |
|
||||
| after_sale_info | Object | `` | 售后信息 |
|
||||
| after_sale_id | Integer | `6965315853751632172` | 售后单ID |
|
||||
| after_sale_status | Integer | `12` | 售后状态:6-售后申请,27-拒绝售后申请,12-售后成功,7-售后退货中,11-售后已发货,29-售后退货拒绝,13-[换货返回-换货售后换货商家发货]/[补寄返回-补寄待用户收货], 14-[换货返回-换货售后换货用户收货]/[补寄返回-补寄用户已收货] ,28-售后失败,51-订单取消成功,53-逆向交易已完成 |
|
||||
| after_sale_type | Integer | `1` | 售后类型:0-退货退款,1-已发货仅退款,2-未发货仅退款,3-换货,4-系统取消,5-用户取消,6-价保,7-补寄 |
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功",
|
||||
"data": {
|
||||
"order_id": "6917533224570258991",
|
||||
"order_status": 3,
|
||||
"shop_id": 94956,
|
||||
"shop_name": "订单专用_测试店三",
|
||||
"order_amount": 20500,
|
||||
"pay_amount": 20500,
|
||||
"pay_time": 1682479081,
|
||||
"create_time": 1682479079,
|
||||
"finish_time": 0,
|
||||
"doudian_open_id": "1@#SGf7u/L4T728WdIaNcm6c+7SOqTObqbPh6wJBSm6lRGO+VEipIFB4EZDoWtkW1ThcrgNhg==",
|
||||
"post_tel": "1231234",
|
||||
"post_receiver": "aaa",
|
||||
"buyer_words": "取消",
|
||||
"seller_words": "取消",
|
||||
"seller_remark_stars": 0,
|
||||
"order_type": 5,
|
||||
"biz": 11,
|
||||
"b_type": 2,
|
||||
"sku_order_list": [{
|
||||
"order_id": "4781320682406083640",
|
||||
"product_id": 3473196049974326153,
|
||||
"sku_id": 3254535,
|
||||
"out_product_id": "432655662343",
|
||||
"out_sku_id": "43564553",
|
||||
"product_name": "XX鞋子",
|
||||
"goods_price": 100,
|
||||
"item_num": 2,
|
||||
"order_amount": 20500,
|
||||
"pay_amount": 20500,
|
||||
"code": "XXX001",
|
||||
"account_list": [{
|
||||
"account_id": "15678909876",
|
||||
"account_type": "1",
|
||||
"account_name": "测试"
|
||||
}],
|
||||
"after_sale_info": {
|
||||
"after_sale_id": 6965315853751632172,
|
||||
"after_sale_status": 12,
|
||||
"after_sale_type": 1
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXmethodorder.orderDetailshop_order_id6917533224570258991timestamp1780000000uid111111111XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`method`、`shop_order_id`、`timestamp`、`uid`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `e4a08602d21966e99d2fa0921d7456b0`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 1 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,85 @@
|
||||
# 充值结果提交(`topup.result`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 充值结果提交」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 充值结果提交 |
|
||||
| 方法名 method | `topup.result` |
|
||||
| 功能分级 | 基础功能 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 商家处理完充值请求后,异步回调告知平台充值结果 |
|
||||
| 抖店原始路径 | `/topup/result` |
|
||||
| 抖店原始文档 | [商家充值结果回调](https://op.jinritemai.com/docs/api-docs/164/1639) |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `topup.result`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| trade_order_no | String | 是 | Post | 订单号,示例:`47544092076043809181` |
|
||||
| topup_biz | String | 是 | Post | 充值业务,示例:`MOBILE_TOPUP` |
|
||||
| seller_order_no | String | 是 | Post | 商家充值单号,示例:`DY8123123` |
|
||||
| seller_order_status | String | 是 | Post | 充值结果,示例:`SUCCESS` |
|
||||
| err_code | String | 否 | Post | 错误码,示例:`1003` |
|
||||
| err_desc | String | 否 | Post | 错误信息,示例:`参数校验失败` |
|
||||
| url | String | 否 | Post | 去使用链接,示例:`https://xxxx.com` |
|
||||
| url_type | String | 否 | Post | 去使用链接类型:microapp-小程序,normal-普通链接,示例:`normal` |
|
||||
| topup_failure_reason_code | String | 否 | Post | 充值失败错误码:10001-手机号码无效,10002-商家缺货,10003-命中运营商风控策略,示例:`10001` |
|
||||
|
||||
## 返回参数
|
||||
|
||||
| 参数名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| data | Object | `` | 返回数据 |
|
||||
| trade_order_no | String | `4754409207604380918` | 平台订单号 |
|
||||
| topup_biz | String | `MOBILE_TOPUP` | 充值业务 |
|
||||
| result | String | `FAILED` | 平台接口充值结果失败 |
|
||||
| seller_order_no | String | `DY8123123` | 商家充值单号 |
|
||||
| err_code | String | `-1` | 错误码 |
|
||||
| err_desc | String | `内部错误` | 错误信息 |
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功",
|
||||
"data": {
|
||||
"trade_order_no": "4754409207604380918",
|
||||
"topup_biz": "MOBILE_TOPUP",
|
||||
"result": "FAILED",
|
||||
"seller_order_no": "DY8123123",
|
||||
"err_code": "-1",
|
||||
"err_desc": "内部错误"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXerr_code1003err_desc参数校验失败methodtopup.resultseller_order_noDY8123123seller_order_statusSUCCESStimestamp1780000000topup_bizMOBILE_TOPUPtopup_failure_reason_code10001trade_order_no47544092076043809181uid111111111urlhttps://xxxx.comurl_typenormalXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`err_code`、`err_desc`、`method`、`seller_order_no`、`seller_order_status`、`timestamp`、`topup_biz`、`topup_failure_reason_code`、`trade_order_no`、`uid`、`url`、`url_type`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `9322cbc2e8f5cce0b2931cbe9eb6e312`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 2 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,78 @@
|
||||
# 卡券同步(`coupons.syncV2`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 卡券同步」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 卡券同步 |
|
||||
| 方法名 method | `coupons.syncV2` |
|
||||
| 功能分级 | 基础功能 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 卖家在平台卖出券后同步卡券信息 |
|
||||
| 抖店原始路径 | `/coupons/syncV2` |
|
||||
| 抖店原始文档 | [卡券同步](https://op.jinritemai.com/docs/api-docs/52/712) |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `coupons.syncV2`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| order_id | String | 是 | Post | 子订单ID,示例:`123421345` |
|
||||
| cert_list | Json | 是 | Post | 卡券信息列表,数组类型,以Json字符串形式传入,示例:`[{"cert_link":"https://obd.gtimg.com/new-benefit-web-schema/dev/dist/index.html?ShortLinkId=6438f6f4a87f2&e=test&dyp=1&c=cafsdadsfas","cert_no":"7136xxxasd","grant_time":"2010-01-01 12:12:12"}]` |
|
||||
|
||||
### 嵌套参数 `cert_list`
|
||||
|
||||
卡券信息列表,数组类型,以Json字符串形式传入
|
||||
|
||||
提交时以 JSON 字符串整体作为一个参数值,示例:
|
||||
|
||||
```json
|
||||
[{"cert_link":"https://obd.gtimg.com/new-benefit-web-schema/dev/dist/index.html?ShortLinkId=6438f6f4a87f2&e=test&dyp=1&c=cafsdadsfas","cert_no":"7136xxxasd","grant_time":"2010-01-01 12:12:12"}]
|
||||
```
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| cert_link | String | 否 | 卡券跳转链接,长度限制255 |
|
||||
| cert_no | String | 是 | 卡券券码 |
|
||||
| grant_time | String | 是 | 发券时间 |
|
||||
|
||||
## 返回参数
|
||||
|
||||
(无返回参数说明)
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功"
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXcert_list[{"cert_link":"https://obd.gtimg.com/new-benefit-web-schema/dev/dist/index.html?ShortLinkId=6438f6f4a87f2&e=test&dyp=1&c=cafsdadsfas","cert_no":"7136xxxasd","grant_time":"2010-01-01 12:12:12"}]methodcoupons.syncV2order_id123421345timestamp1780000000uid111111111XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`cert_list`、`method`、`order_id`、`timestamp`、`uid`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `e178612ad7b122104b9ec34e12fdfb9a`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 3 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,61 @@
|
||||
# 卡券核销V3(`coupons.verifyV3`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 卡券核销V3」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 卡券核销V3 |
|
||||
| 方法名 method | `coupons.verifyV3` |
|
||||
| 功能分级 | 高级功能 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 卖家向平台提交卡券核销状态 |
|
||||
| 抖店原始路径 | `/coupons/verifyV2` |
|
||||
| 抖店原始文档 | [卡券核销接口V2版本](https://op.jinritemai.com/docs/api-docs/52/797) |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `coupons.verifyV3`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| cert_no | String | 是 | Post | 卡券号码,示例:`123456` |
|
||||
|
||||
## 返回参数
|
||||
|
||||
(无返回参数说明)
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功"
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXcert_no123456methodcoupons.verifyV3timestamp1780000000uid111111111XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`cert_no`、`method`、`timestamp`、`uid`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `276e1c47c1c31305d2bc651db4083ef2`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 4 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,91 @@
|
||||
# 券码查询(`coupons.list`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 券码查询」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 券码查询 |
|
||||
| 方法名 method | `coupons.list` |
|
||||
| 功能分级 | 基础功能 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 查询券码在平台侧的状态详情 |
|
||||
| 抖店原始路径 | `/coupons/list` |
|
||||
| 抖店原始文档 | [券码查询接口](https://op.jinritemai.com/docs/api-docs/52/369) |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `coupons.list`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| order_id | String | 否 | Post | 子订单ID,示例:`123` |
|
||||
| cert_no | String | 否 | Post | 卡号券码,示例:`卡券id` |
|
||||
| cert_type | Integer | 否 | Post | 卡券类型:0-三方卡券,1-平台卡券,示例:`0` |
|
||||
|
||||
## 返回参数
|
||||
|
||||
| 参数名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| data | Array | `` | 返回数据,列表类型 |
|
||||
| order_id | String | `6917586388057718374` | 平台订单ID |
|
||||
| verrify_order_ids | String | `123123123123;789789789789` | 三方商家的订单Id,如果有多个,使用;分割 |
|
||||
| cert_id | String | `71937153151279783203` | 卡券ID |
|
||||
| out_cert_id | String | `123` | 外部卡券ID |
|
||||
| cert_no | String | `71936748123123166654548` | 卡号券码 |
|
||||
| valid_start | Integer | `1673452800` | 有效开始时间 |
|
||||
| valid_end | Integer | `1674921599` | 有效结束时间 |
|
||||
| grant_time | Integer | `1674914207` | 发券时间,0则用当前时间 |
|
||||
| status | Integer | `1` | 状态:1-未激活(表示初始状态), 2-未使用,3-已使用,4-已废弃,5-已过期,6-已完成 |
|
||||
| total_num | Integer | `2` | 可核销次数 |
|
||||
| verify_num | Integer | `1` | 已核销次数 |
|
||||
| available_num | Integer | `1` | 剩余可用次数 |
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功",
|
||||
"data": [{
|
||||
"order_id": "6917586388057718374",
|
||||
"verrify_order_ids": "123123123123;789789789789",
|
||||
"cert_id": "71937153151279783203",
|
||||
"out_cert_id": "123",
|
||||
"cert_no": "71936748123123166654548",
|
||||
"valid_start": 1673452800,
|
||||
"valid_end": 1674921599,
|
||||
"grant_time": 1674914207,
|
||||
"status": 1,
|
||||
"total_num": 2,
|
||||
"verify_num": 1,
|
||||
"available_num": 1
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXcert_no卡券idcert_type0methodcoupons.listorder_id123timestamp1780000000uid111111111XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`cert_no`、`cert_type`、`method`、`order_id`、`timestamp`、`uid`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `7cf0d2b6bc406444baa75215b584c997`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 5 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,63 @@
|
||||
# 卡券取消核销(`coupons.cancelVerify`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 卡券取消核销」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 卡券取消核销 |
|
||||
| 方法名 method | `coupons.cancelVerify` |
|
||||
| 功能分级 | 基础功能 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 当卡券核销错误之后,取消核销时候使用 |
|
||||
| 抖店原始路径 | `/coupons/cancelVerify` |
|
||||
| 抖店原始文档 | [卡券取消核销接口](https://op.jinritemai.com/docs/api-docs/52/668) |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `coupons.cancelVerify`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| cert_no | String | 是 | Post | 卡号券码,示例:`231342sdd` |
|
||||
| batch_no | String | 否 | Post | 幂等请求编号,示例:`123123` |
|
||||
| cancel_verify_count | Integer | 否 | Post | 取消核销总次数,示例:`3` |
|
||||
|
||||
## 返回参数
|
||||
|
||||
(无返回参数说明)
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功"
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXbatch_no123123cancel_verify_count3cert_no231342sddmethodcoupons.cancelVerifytimestamp1780000000uid111111111XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`batch_no`、`cancel_verify_count`、`cert_no`、`method`、`timestamp`、`uid`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `69503e5bcd1a7b8dfea36fb2d40cdb3b`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 6 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,64 @@
|
||||
# 卖家备注(`order.addOrderRemark`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 卖家备注」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 卖家备注 |
|
||||
| 方法名 method | `order.addOrderRemark` |
|
||||
| 功能分级 | 基础功能 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 卖家提交订单备注 |
|
||||
| 抖店原始路径 | `/order/addOrderRemark` |
|
||||
| 抖店原始文档 | [为商家提供订单备注接口](https://op.jinritemai.com/docs/api-docs/15/568) |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `order.addOrderRemark`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| order_id | String | 是 | Post | 店铺订单ID,示例:`6496679971677798670` |
|
||||
| remark | String | 是 | Post | 备注内容,必填选项;如果不填会导致订单的备注被空值覆盖,最大不得超过500个字符,示例:`这是具体的备注内容` |
|
||||
| is_add_star | String | 否 | Post | 是否加旗标,不填则默认为false,不会修改旗帜颜色; is_add_star=true,需要加旗帜或者覆盖原来的旗帜颜色;is_add_star=false,不添加旗帜,不会覆盖原来的旗帜颜色,示例:`true` |
|
||||
| star | String | 否 | Post | 标星等级:0-灰色旗标,1-紫色旗标,2-青色旗标,3-绿色旗标,4-橙色旗标,5-红色旗标,示例:`2` |
|
||||
|
||||
## 返回参数
|
||||
|
||||
(无返回参数说明)
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功"
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXis_add_startruemethodorder.addOrderRemarkorder_id6496679971677798670remark这是具体的备注内容star2timestamp1780000000uid111111111XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`is_add_star`、`method`、`order_id`、`remark`、`star`、`timestamp`、`uid`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `fc5679218161d1beeb088ffad2ae33cc`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 7 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,96 @@
|
||||
# 售后审核(`afterSale.operate`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 售后审核」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 售后审核 |
|
||||
| 方法名 method | `afterSale.operate` |
|
||||
| 功能分级 | 高级功能 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 售后统一操作接口 |
|
||||
| 抖店原始路径 | `/afterSale/operate` |
|
||||
| 抖店原始文档 | [售后审核接口聚合版](https://op.jinritemai.com/docs/api-docs/17/560) |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `afterSale.operate`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| type | Integer | 是 | Post | 操作类型:201-同意仅退款,202-拒绝仅退款,示例:`201` |
|
||||
| items | Json | 是 | Post | 操作售后详情,数组类型,以Json字符串形式传入,示例:`[{"repair_type":1,"aftersale_id":6959800000297566494,"reason":"卡密商品已发货,不支持退款","remark":"卡密已查看,且可正常使用,拒绝退款","evidence":[{"type":1,"url":"http://xxxxxxxx.jpg","desc":"店铺相关说明"}],"reject_reason_code":1,"update_time":0}]` |
|
||||
| store_id | Integer | 否 | Post | 门店ID,抖超小时达业务使用,示例:`123` |
|
||||
|
||||
### 嵌套参数 `items`
|
||||
|
||||
操作售后详情,数组类型,以Json字符串形式传入
|
||||
|
||||
提交时以 JSON 字符串整体作为一个参数值,示例:
|
||||
|
||||
```json
|
||||
[{"repair_type":1,"aftersale_id":6959800000297566494,"reason":"卡密商品已发货,不支持退款","remark":"卡密已查看,且可正常使用,拒绝退款","evidence":[{"type":1,"url":"http://xxxxxxxx.jpg","desc":"店铺相关说明"}],"reject_reason_code":1,"update_time":0}]
|
||||
```
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| repair_type | Integer | 否 | 维修类型:1-原商品维修,2-商品换新 |
|
||||
| aftersale_id | Integer | 是 | 售后单号 |
|
||||
| reason | String | 否 | 操作原因,拒绝操作必填 |
|
||||
| remark | String | 否 | 操作评论,拒绝操作必填 |
|
||||
| evidence | Array | 否 | 操作凭证编码,当【查询商家拒绝原因列表】接口响应参数evidence_need=Y时,该参数必填;使用【查询商家拒绝原因列表】接口获取响应参数中的reject_reason_code字段。 |
|
||||
| type | Integer | 否 | 凭证类型:1-图片 |
|
||||
| url | String | 否 | 凭证url |
|
||||
| desc | String | 否 | 凭证描述 |
|
||||
| reject_reason_code | Integer | 否 | 售后拒绝原因码,拒绝时必填填。通过【查询商家拒绝原因列表】接口获取 |
|
||||
| update_time | Integer | 否 | 用于校验售后单版本是不是最新的版本,防止售后单变更且open侧审核通过导致资损。使用【买家发起售后】消息推送中的update_time字段 |
|
||||
|
||||
## 返回参数
|
||||
|
||||
| 参数名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| data | Array | `` | 审核结果 |
|
||||
| aftersale_id | Integer | `6959800000297566494` | 售后单号 |
|
||||
| status_code | Integer | `0` | 操作结果码 |
|
||||
| status_msg | String | `success` | 操作结果描述 |
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功",
|
||||
"data": [{
|
||||
"aftersale_id": 6959800000297566494,
|
||||
"status_code": 0,
|
||||
"status_msg": "success"
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXitems[{"repair_type":1,"aftersale_id":6959800000297566494,"reason":"卡密商品已发货,不支持退款","remark":"卡密已查看,且可正常使用,拒绝退款","evidence":[{"type":1,"url":"http://xxxxxxxx.jpg","desc":"店铺相关说明"}],"reject_reason_code":1,"update_time":0}]methodafterSale.operatestore_id123timestamp1780000000type201uid111111111XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`items`、`method`、`store_id`、`timestamp`、`type`、`uid`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `2be721539a1d74b950eca4e6237c6d50`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 8 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,79 @@
|
||||
# 查询商家拒绝原因列表(`afterSale.rejectReasonCodeList`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 查询商家拒绝原因列表」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 查询商家拒绝原因列表 |
|
||||
| 方法名 method | `afterSale.rejectReasonCodeList` |
|
||||
| 功能分级 | 免费功能 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 查询抖店支持的全量拒绝原因列表,或指定售后单可选的拒绝原因列表(仅支持已发货的售后查询,备货中未发货订单返回为空) |
|
||||
| 抖店原始路径 | `/afterSale/rejectReasonCodeList` |
|
||||
| 抖店原始文档 | [查询商家拒绝原因列表](https://op.jinritemai.com/docs/api-docs/17/1540) |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `afterSale.rejectReasonCodeList`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| aftersale_id | Integer | 否 | Post | 售后单号,示例:`7140522277954690000` |
|
||||
|
||||
## 返回参数
|
||||
|
||||
| 参数名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| data | Array | `` | 售后商家拒绝原因详情列表 |
|
||||
| reject_reason_code | Integer | `1` | 售后审核拒绝原因枚举编码 |
|
||||
| reason | String | `多拍/错拍/不想要` | 售后审核拒绝原因文案 |
|
||||
| evidence_description | String | `请提供发货物流进度截图` | 凭证描述文案 |
|
||||
| evidence_need | String | `Y` | 是否需要上传凭证:Y-必填,N-非必填 |
|
||||
| image | String | `/obj/ecom-aftersale-image-example/vsfguUuWBsXzjgyexWJRoBUMVORQBnmvMQHBRFom.png` | 凭证示例图片链接 |
|
||||
| order_type | Integer | `1` | 订单类型:0-普通实物订单,1-全款预售订单,2-虚拟商品订单,3-快闪店订单,4-电子券,5-三方核销,6-服务市场,-1-通用,不考虑订单类型 |
|
||||
| pkg | Integer | `1` | 是否收到货:0-未收到,1-收到,-1-通用,不考虑是否收到货 |
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功",
|
||||
"data": [{
|
||||
"reject_reason_code": 1,
|
||||
"reason": "多拍/错拍/不想要",
|
||||
"evidence_description": "请提供发货物流进度截图",
|
||||
"evidence_need": "Y",
|
||||
"image": "/obj/ecom-aftersale-image-example/vsfguUuWBsXzjgyexWJRoBUMVORQBnmvMQHBRFom.png",
|
||||
"order_type": 1,
|
||||
"pkg": 1
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXaftersale_id7140522277954690000methodafterSale.rejectReasonCodeListtimestamp1780000000uid111111111XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`aftersale_id`、`method`、`timestamp`、`uid`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `b18a9c5691de6ad91d95f52bb1fa47d9`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 9 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,147 @@
|
||||
# 订单列表查询(`order.searchList`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 订单列表查询」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 订单列表查询 |
|
||||
| 方法名 method | `order.searchList` |
|
||||
| 功能分级 | 未标注 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 根据条件检索满足要求的订单列表,支持下单时间和更新时间排序;最大支持查询近90天的数据;注:本接口仅用作批量获取订单基础信息及核查订单状态,如需获取订单充值信息,构建充值流程,请对接【买家已付款】消息+【订单详情】API |
|
||||
| 抖店原始路径 | `/order/searchList` |
|
||||
| 抖店原始文档 | [订单列表查询](https://op.jinritemai.com/docs/api-docs/15/1342) |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `order.searchList`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| size | Integer | 是 | Post | 单页大小,限制100以内,示例:`20` |
|
||||
| page | Integer | 是 | Post | 页码,0页开始,示例:`0` |
|
||||
| product | String | 否 | Post | 商品,number型代表商品ID,其它代表商品名称,示例:`3473196049974326153` |
|
||||
| after_sale_status_desc | String | 否 | Post | 售后状态:all-全部,in_aftersale-售后中,refund-退款中,refund_success-退款成功,refund_fail-退款失败,exchange_success-换货成功,aftersale_close-售后关闭,示例:`refund_success` |
|
||||
| order_type | Integer | 否 | Post | 订单类型:0-普通订单,2-虚拟商品订单,4-电子券(poi核销),5-三方核销,示例:`1` |
|
||||
| create_time_start | Integer | 否 | Post | 下单时间:开始,秒级时间戳,示例:`1617355413` |
|
||||
| create_time_end | Integer | 否 | Post | 下单时间:截止,秒级时间戳,示例:`1617355413` |
|
||||
| order_status | String | 否 | Post | 订单状态,","分隔多个状态:1-待支付,101-部分发货,105-已支付,2-待发货,3-已发货,4-已取消,5-已完成,示例:`105,2` |
|
||||
| update_time_start | Integer | 否 | Post | 更新时间:开始,秒级时间戳,示例:`1617355413` |
|
||||
| update_time_end | Integer | 否 | Post | 更新时间:截止,秒级时间戳,示例:`1617355413` |
|
||||
| order_by | String | 否 | Post | 排序条件:create_time-订单创建时间,update_time-订单更新时间,默认create_time,示例:`create_time` |
|
||||
| order_asc | Boolean | 否 | Post | 排序类型:true-升序,false-降序,默认降序,示例:`false` |
|
||||
|
||||
## 返回参数
|
||||
|
||||
| 参数名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| data | Object | `` | |
|
||||
| page | Integer | `` | 页数,从0开始 |
|
||||
| total | Integer | `` | 总订单数 |
|
||||
| size | Integer | `` | 单页大小 |
|
||||
| shop_order_list | Array | `` | 订单信息 |
|
||||
| order_id | String | `4781320682406083640` | 店铺订单号 |
|
||||
| order_status | Integer | `3` | 订单状态:1-待确认/待支付-订单创建完毕,105-已支付,2-备货中,101-部分发货,3-已发货(全部发货),4-已取消,5 已完成(已收货) |
|
||||
| shop_id | Integer | `77977` | 店铺ID |
|
||||
| shop_name | String | `刘好好严选` | 商户名称 |
|
||||
| order_amount | Integer | `600` | 订单金额(单位:分) |
|
||||
| pay_amount | Integer | `500` | 支付金额(单位:分) |
|
||||
| pay_time | String | `2021-04-02 17:23:33` | 支付时间 |
|
||||
| create_time | String | `2021-04-02 17:23:33` | 下单时间 |
|
||||
| finish_time | String | `2021-04-02 17:23:33` | 订单完成时间 |
|
||||
| doudian_open_id | String | `#zuLyd4U4J3p+czzXkwg+ZQ673h7KTcrKOddb5iPGAAE0K3MYJmgXEXof9LDtoScAfMKvdVRqpAL4CEI3SrLwYATIzTF9Qw==` | 用户唯一id,规则详见:https://op.jinritemai.com/docs/guide-docs/1368/4416 |
|
||||
| buyer_words | String | `要xxx` | 买家留言 |
|
||||
| seller_words | String | `注意XX` | 商家备注 |
|
||||
| seller_remark_stars | Integer | `1` | 插旗信息:0-灰 1-紫 2-青 3-绿 4-橙 5-红 |
|
||||
| order_type | Integer | `0` | 订单类型:0-普通订单,2-虚拟商品订单,4-电子券(poi核销),5-三方核销 |
|
||||
| biz | Integer | `1` | 业务来源 |
|
||||
| sku_order_list | Array | `` | 商品单信息 |
|
||||
| order_id | String | `4781320682406083640` | 商品订单号 |
|
||||
| product_id | Integer | `3473196049974326153` | 商品ID |
|
||||
| sku_id | Integer | `3254535` | 商品SkuID |
|
||||
| out_product_id | String | `432655662343` | 商品外部编码 |
|
||||
| out_sku_id | String | `43564553` | 外部Skuid |
|
||||
| product_name | String | `衣服` | 商品名称 |
|
||||
| goods_price | Integer | `100` | 商品原价(单位:分) |
|
||||
| item_num | Integer | `2` | 订单商品数量 |
|
||||
| order_amount | Integer | `600` | 订单金额(单位:分) |
|
||||
| pay_amount | Integer | `500` | 支付金额(单位:分) |
|
||||
| after_sale_info | Object | `` | 售后信息 |
|
||||
| after_sale_status | Integer | `6` | 售后状态:0-售后初始化,6-售后申请,7-售后退货中,27-拒绝售后申请,12-售后成功,28-售后失败,11-售后已发货,29-退货后拒绝退款,13-售后换货商家发货,14-售后换货用户收货,51-取消成功,53-逆向交易完成 |
|
||||
| after_sale_type | Integer | `1` | 售后类型:0-售后退货退款,1-售后退款,2-售前退款,3-换货,4-系统取消,5-用户取消 |
|
||||
| refund_status | Integer | `1` | 退款状态:1-待退款,3-退款成功,4-退款失败;当买家发起售后后又主动取消售后,此时after_sale_status=28,并且refund_status=1的状态不变,不会流转至4状态 |
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功",
|
||||
"data": {
|
||||
"page": 0,
|
||||
"total": 0,
|
||||
"size": 0,
|
||||
"shop_order_list": [{
|
||||
"order_id": "4781320682406083640",
|
||||
"order_status": 3,
|
||||
"shop_id": 77977,
|
||||
"shop_name": "刘好好严选",
|
||||
"order_amount": 600,
|
||||
"pay_amount": 500,
|
||||
"pay_time": "2021-04-02 17:23:33",
|
||||
"create_time": "2021-04-02 17:23:33",
|
||||
"finish_time": "2021-04-02 17:23:33",
|
||||
"doudian_open_id": "#zuLyd4U4J3p+czzXkwg+ZQ673h7KTcrKOddb5iPGAAE0K3MYJmgXEXof9LDtoScAfMKvdVRqpAL4CEI3SrLwYATIzTF9Qw==",
|
||||
"buyer_words": "要xxx",
|
||||
"seller_words": "注意XX",
|
||||
"seller_remark_stars": 1,
|
||||
"order_type": 0,
|
||||
"biz": 1,
|
||||
"sku_order_list": [{
|
||||
"order_id": "4781320682406083640",
|
||||
"product_id": 3473196049974326153,
|
||||
"sku_id": 3254535,
|
||||
"out_product_id": "432655662343",
|
||||
"out_sku_id": "43564553",
|
||||
"product_name": "衣服",
|
||||
"goods_price": 100,
|
||||
"item_num": 2,
|
||||
"order_amount": 600,
|
||||
"pay_amount": 500,
|
||||
"after_sale_info": {
|
||||
"after_sale_status": 6,
|
||||
"after_sale_type": 1,
|
||||
"refund_status": 1
|
||||
}
|
||||
}]
|
||||
}]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXafter_sale_status_descrefund_successcreate_time_end1617355413create_time_start1617355413methodorder.searchListorder_ascfalseorder_bycreate_timeorder_status105,2order_type1page0product3473196049974326153size20timestamp1780000000uid111111111update_time_end1617355413update_time_start1617355413XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`after_sale_status_desc`、`create_time_end`、`create_time_start`、`method`、`order_asc`、`order_by`、`order_status`、`order_type`、`page`、`product`、`size`、`timestamp`、`uid`、`update_time_end`、`update_time_start`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `4f87b7ebbad3cd4842a87b467a31d444`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 10 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,87 @@
|
||||
# 商家主动取消订单(`coupons.CertSyncFailedCancelOrder`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 商家主动取消订单」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 商家主动取消订单 |
|
||||
| 方法名 method | `coupons.CertSyncFailedCancelOrder` |
|
||||
| 功能分级 | 高级功能 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 仅适用于三方卡券订单,其他类型的订单都不支持;订单状态等于2,处于待发码状态,商家才可主动取消订单 |
|
||||
| 抖店原始路径 | `/coupons/CertSyncFailedCancelOrder` |
|
||||
| 抖店原始文档 | [商家主动取消](https://op.jinritemai.com/docs/api-docs/15/6662) |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `coupons.CertSyncFailedCancelOrder`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| order_id | String | 是 | Post | 订单号,示例:`6931496948675122841` |
|
||||
| op | Json | 否 | Post | 风控相关信息,对象类型,以Json字符串形式传入,示例:`{"platform":1,"op_uid":1234}` |
|
||||
|
||||
### 嵌套参数 `op`
|
||||
|
||||
风控相关信息,对象类型,以Json字符串形式传入
|
||||
|
||||
提交时以 JSON 字符串整体作为一个参数值,示例:
|
||||
|
||||
```json
|
||||
{"platform":1,"op_uid":1234}
|
||||
```
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| platform | Integer | 否 | 操作平台枚举(选填,暂时用不上) |
|
||||
| op_uid | Integer | 否 | 操作人uid(选填,暂时用不上) |
|
||||
|
||||
## 返回参数
|
||||
|
||||
| 参数名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| data | Object | `` | 返回数据 |
|
||||
| ret_status | String | `000000` | 返回状态 |
|
||||
| ret_code | String | `000000` | 返回码 |
|
||||
| ret_message | String | `000000` | 返回信息 |
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功",
|
||||
"data": {
|
||||
"ret_status": "000000",
|
||||
"ret_code": "000000",
|
||||
"ret_message": "000000"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXmethodcoupons.CertSyncFailedCancelOrderop{"platform":1,"op_uid":1234}order_id6931496948675122841timestamp1780000000uid111111111XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`method`、`op`、`order_id`、`timestamp`、`uid`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `1b2baad023e50fe6e7e76cec0af244f9`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 11 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,61 @@
|
||||
# 消息设置(`message.config`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 消息设置」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 消息设置 |
|
||||
| 方法名 method | `message.config` |
|
||||
| 功能分级 | 免费功能 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 用户自行设置消息接收地址,推送状态及订阅内容 |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `message.config`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| status | Integer | 是 | Post | 推送状态:0-禁用,1-启用,第一次提交时必填,示例:`1` |
|
||||
| message_url | String | 否 | Post | 推送地址,第一次提交时必填,示例:`https://api.xxxx.com/message` |
|
||||
| topics | String | 否 | Post | 消息的topic,多个用半角逗号分隔,第一次提交时必填,示例:`trade_TradePaid,refund_RefundCreated,refund_RefundClosed` |
|
||||
|
||||
## 返回参数
|
||||
|
||||
(无返回参数说明)
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功"
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXmessage_urlhttps://api.xxxx.com/messagemethodmessage.configstatus1timestamp1780000000topicstrade_TradePaid,refund_RefundCreated,refund_RefundCloseduid111111111XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`message_url`、`method`、`status`、`timestamp`、`topics`、`uid`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `e45e713a4f7b636f1cf49c3c8211095d`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 12 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,93 @@
|
||||
# 商品详情(`product.detail`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 商品详情」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 商品详情 |
|
||||
| 方法名 method | `product.detail` |
|
||||
| 功能分级 | 基础功能 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 根据商品ID获取商品详情,输出仅限码速达系统已采集的字段 |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `product.detail`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| product_id | Integer | 是 | Post | 商品ID,抖店系统生成,店铺下唯一;长度19位,示例:`3558192687276554544` |
|
||||
|
||||
## 返回参数
|
||||
|
||||
| 参数名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| data | Object | `` | |
|
||||
| product_id | Integer | `3539925204033339668` | 商品ID,抖店系统生成,店铺下唯一;长度19位 |
|
||||
| name | String | `XXX充值卡` | 商品标题 |
|
||||
| product_type | Integer | `3` | 商品类型:0-普通,3-虚拟,6-玉石闪购,7-云闪购 |
|
||||
| discount_price | Integer | `1999` | 售卖价,单位分 |
|
||||
| img | String | `https://img.xxxx.com/abc/def.jpg` | 商品图片 |
|
||||
| status | Integer | `0` | 商品在店铺中状态:0-在线,1-下线,2-删除 |
|
||||
| check_status | Integer | `3` | 商品审核状态:1-未提交,2-待审核,3-审核通过,4-审核未通过,5-封禁,7-审核通过待上架 |
|
||||
| skus | Array | `` | 规格信息 |
|
||||
| id | Integer | `1737398770243598` | 规格ID;抖店系统生成,商品ID下唯一 |
|
||||
| code | String | `XXX001` | 商家编码 |
|
||||
| price | Integer | `102` | 商户名称 |
|
||||
| specs | Array | `` | 规格项和规格值 |
|
||||
| name | String | `充值类型` | 属性名 |
|
||||
| value | String | `点卡寄售` | 属性值 |
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功",
|
||||
"data": {
|
||||
"product_id": 3539925204033339668,
|
||||
"name": "XXX充值卡",
|
||||
"product_type": 3,
|
||||
"discount_price": 1999,
|
||||
"img": "https://img.xxxx.com/abc/def.jpg",
|
||||
"status": 0,
|
||||
"check_status": 3,
|
||||
"skus": [{
|
||||
"id": 1737398770243598,
|
||||
"code": "XXX001",
|
||||
"price": 102,
|
||||
"specs": [{
|
||||
"name": "充值类型",
|
||||
"value": "点卡寄售"
|
||||
}]
|
||||
}]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXmethodproduct.detailproduct_id3558192687276554544timestamp1780000000uid111111111XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`method`、`product_id`、`timestamp`、`uid`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `af8e6bec4afed930f81391a6d611c237`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 13 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,94 @@
|
||||
# 商品列表(`product.list`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 商品列表」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 商品列表 |
|
||||
| 方法名 method | `product.list` |
|
||||
| 功能分级 | 高级功能 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 分页查询店铺商品列表,输出仅限码速达系统已采集的字段 |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `product.list`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| page | Integer | 否 | Post | 页码,从1开始,缺省为1,示例:`1` |
|
||||
| size | Integer | 否 | Post | 页长,范围1~100,缺省为15,示例:`10` |
|
||||
|
||||
## 返回参数
|
||||
|
||||
| 参数名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| data | Object | `` | |
|
||||
| page | Integer | `1` | 页码,从1开始 |
|
||||
| size | Integer | `10` | 页长,范围1~100 |
|
||||
| total | Integer | `422` | 本次查询返回的商品总数 |
|
||||
| data | Array | `` | 商品数据 |
|
||||
| product_id | Integer | `3539925204033339668` | 商品ID,抖店系统生成,店铺下唯一;长度19位 |
|
||||
| name | String | `XXX充值卡` | 商品标题 |
|
||||
| product_type | Integer | `3` | 商品类型:0-普通,3-虚拟,6-玉石闪购,7-云闪购 |
|
||||
| discount_price | Integer | `1999` | 售卖价,单位分 |
|
||||
| img | String | `https://img.xxxx.com/abc/def.jpg` | 商品图片 |
|
||||
| status | Integer | `0` | 商品在店铺中状态:0-在线,1-下线,2-删除 |
|
||||
| check_status | Integer | `3` | 商品审核状态:1-未提交,2-待审核,3-审核通过,4-审核未通过,5-封禁,7-审核通过待上架 |
|
||||
| skus | Array | `` | 规格信息 |
|
||||
| id | Integer | `1737398770243598` | 规格ID;抖店系统生成,商品ID下唯一 |
|
||||
| code | String | `XXX001` | 商家编码 |
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功",
|
||||
"data": {
|
||||
"page": 1,
|
||||
"size": 10,
|
||||
"total": 422,
|
||||
"data": [{
|
||||
"product_id": 3539925204033339668,
|
||||
"name": "XXX充值卡",
|
||||
"product_type": 3,
|
||||
"discount_price": 1999,
|
||||
"img": "https://img.xxxx.com/abc/def.jpg",
|
||||
"status": 0,
|
||||
"check_status": 3,
|
||||
"skus": [{
|
||||
"id": 1737398770243598,
|
||||
"code": "XXX001"
|
||||
}]
|
||||
}]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXmethodproduct.listpage1size10timestamp1780000000uid111111111XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`method`、`page`、`size`、`timestamp`、`uid`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `cffbf285d9928305b202acd0a0aec203`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 14 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,89 @@
|
||||
# 商品sku列表(`sku.list`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 商品sku列表」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 商品sku列表 |
|
||||
| 方法名 method | `sku.list` |
|
||||
| 功能分级 | 高级功能 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 根据商品id获取商品的sku列表 |
|
||||
| 抖店原始路径 | `/sku/list /sku/list` |
|
||||
| 抖店原始文档 | [获取商品sku列表](https://op.jinritemai.com/docs/api-docs/14/82) |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `sku.list`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| product_id | Integer | 否 | Post | 商品ID,抖店系统生成,示例:`3213654123157` |
|
||||
| out_product_id | Integer | 否 | Post | 外部商品ID,商家创建商品时自定义,示例:`243523452435` |
|
||||
|
||||
## 返回参数
|
||||
|
||||
| 参数名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| data | Array | `` | sku列表 |
|
||||
| id | Integer | `1736402086955032` | 商品sku_id,抖店系统生成 |
|
||||
| sku_status | Boolean | `true` | sku状态:true-上架,false-下架 |
|
||||
| out_sku_id | Integer | `0` | 外部的skuId,商家自定义,未设置返回为0 |
|
||||
| product_id | Integer | `3557453527615939930` | 商品ID,抖店系统生成 |
|
||||
| price | Integer | `12` | 商品价格,单位分 |
|
||||
| spec_id | Integer | `1737037851056167` | 规格ID |
|
||||
| create_time | Integer | `1621611875` | 创建时间,时间戳,单位秒 |
|
||||
| code | String | `dy001` | sku外部编码 |
|
||||
| sell_properties | Array | `` | 销售属性 |
|
||||
| value_spec_detail_id | Integer | `111` | 规格值id |
|
||||
| value_name | String | `红色` | 规格值名称 |
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功",
|
||||
"data": [{
|
||||
"id": 1736402086955032,
|
||||
"sku_status": true,
|
||||
"out_sku_id": 0,
|
||||
"product_id": 3557453527615939930,
|
||||
"price": 12,
|
||||
"spec_id": 1737037851056167,
|
||||
"create_time": 1621611875,
|
||||
"code": "dy001",
|
||||
"sell_properties": [{
|
||||
"value_spec_detail_id": 111,
|
||||
"value_name": "红色"
|
||||
}]
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXmethodsku.listout_product_id243523452435product_id3213654123157timestamp1780000000uid111111111XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`method`、`out_product_id`、`product_id`、`timestamp`、`uid`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `006da90ba5f3b8fa7d2395ca4f0ca416`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 15 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,61 @@
|
||||
# 订单消息测试(`order.message`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「接口API → 订单消息测试」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 接口名称 | 订单消息测试 |
|
||||
| 方法名 method | `order.message` |
|
||||
| 功能分级 | 高级功能 |
|
||||
| 请求地址 | `POST https://dy-openplatform-api.wanmahui.com/api/openplatform/gateway` |
|
||||
| Content-Type | `application/x-www-form-urlencoded` |
|
||||
| 说明 | 测试接口,仅支持特定商户 |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| uid | String | 是 | Post | 抖店商户号(公共参数,示例 `111111111`) |
|
||||
| method | String | 是 | Post | 方法名,固定为 `order.message`(公共参数) |
|
||||
| timestamp | String | 是 | Post | 秒级时间戳,10 分钟内有效(公共参数) |
|
||||
| sign | String | 是 | Post | 签名,签名原串 MD5(小写),见「[接口调用规范与签名](../02-接口调用规范与签名.md)」 |
|
||||
| order_id | String | 是 | Post | 订单号,示例:`1234567` |
|
||||
| content | String | 是 | Post | 消息内容,示例:`订单已发货,请注意查收` |
|
||||
| message_type | Integer | 是 | Post | 消息类型:1-订单状态消息,2-订单发货消息,4-图片消息,5-视频消息,示例:`2` |
|
||||
|
||||
## 返回参数
|
||||
|
||||
(无返回参数说明)
|
||||
|
||||
## 返回示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "10000",
|
||||
"message": "成功"
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
除 `sign` 外的全部参数按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(这里用占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、占位商户号 `111111111`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXcontent订单已发货,请注意查收message_type2methodorder.messageorder_id1234567timestamp1780000000uid111111111XXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
参数名排序:`content`、`message_type`、`method`、`order_id`、`timestamp`、`uid`
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `880a5d8a4f18c0822f93406b96c703f6`
|
||||
|
||||
## 请求代码示例
|
||||
|
||||
页面内置 JAVA / .NET / PHP 三种示例代码,已原样保存:
|
||||
|
||||
- `data/代码示例/接口API-请求示例-JAVA.txt`
|
||||
- `data/代码示例/接口API-请求示例-DOTNET.txt`
|
||||
- `data/代码示例/接口API-请求示例-PHP.txt`
|
||||
|
||||
---
|
||||
|
||||
第 16 / 16 个接口 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,72 @@
|
||||
# 买家已付款(`trade_TradePaid`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「消息推送 → 买家已付款」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 消息名称 | 买家已付款 |
|
||||
| 消息主题 topic | `trade_TradePaid` |
|
||||
| 功能分级 | 基础功能 |
|
||||
| 说明 | 在线支付订单,当买家付款成功时,会推送此消息 |
|
||||
| 抖店原始文档 | [订单支付/确认消息](https://op.jinritemai.com/docs/message-docs/30/110) |
|
||||
| 抖店消息 tag | `101` |
|
||||
|
||||
## 推送参数
|
||||
|
||||
| 参数名 | 类型 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| topic | String | Get | 消息主题:`trade_TradePaid` |
|
||||
| pub_time | Number | Get | 原消息发布时间(秒时间戳) |
|
||||
| data | String | Post | 消息内容,JSON 字符串(URL 编码后提交) |
|
||||
| sign | String | Get | 签名,签名原串 MD5(小写),见「[消息推送规范与签名](../03-消息推送规范与签名.md)」 |
|
||||
|
||||
## data 内容(属性说明)
|
||||
|
||||
| 属性名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| pay_amount | Integer | `1990` | 订单实付金额 |
|
||||
| s_ids | Array | `[ 123 ]` | 子订单ID列表 |
|
||||
| order_status | Integer | `2` | 父订单状态,订单支付消息的status值为"2" |
|
||||
| order_type | Integer | `0` | 订单类型:0-实物,2-普通虚拟,4-poi核销,5-三方核销,6-服务市场 |
|
||||
| pay_time | Integer | `1630373504` | 在线订单支付时间;货到付款订单确认时间 |
|
||||
| p_id | Integer | `4837328765348567000` | 父订单ID |
|
||||
| shop_id | Integer | `77977` | 店铺ID,即时零售店铺该字段为即时零售总部id |
|
||||
| pay_type | Integer | `1` | 订单支付方式: 0: 货到付款 1: 微信 2: 支付宝 |
|
||||
| biz | Integer | `2` | 订单业务类型,表示买家从哪里看到的这个商品、产生了订单:1-鲁班广告,2-联盟,4-商城,8-自主经营,10-线索通支付表单,12-抖音门店,14-抖+,15-穿山甲 |
|
||||
|
||||
## data 内容示例(JSON)
|
||||
|
||||
```json
|
||||
{
|
||||
"pay_amount": 1990,
|
||||
"s_ids": [
|
||||
123
|
||||
],
|
||||
"order_status": 2,
|
||||
"order_type": 0,
|
||||
"pay_time": 1630373504,
|
||||
"p_id": 4837328765348567000,
|
||||
"shop_id": 77977,
|
||||
"pay_type": 1,
|
||||
"biz": 2
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
推送参数 `data`、`pub_time`、`topic` 按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXdata{"pay_amount":1990,"s_ids":[123],"order_status":2,"order_type":0,"pay_time":1630373504,"p_id":4837328765348567000,"shop_id":77977,"pay_type":1,"biz":2}pub_time1780000000topictrade_TradePaidXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `1f4e1e6fc7e2ebad3368abfc2e07f2d1`
|
||||
|
||||
## 推送/测试地址
|
||||
|
||||
- 平台消息推送测试入口:`GET https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest?topic=trade_TradePaid&pub_time={秒时间戳}&sign={签名}`(data 以 POST body 提交)
|
||||
- 正式接收地址由商家在「接口API → 消息设置」中配置(`message.message_config`),平台按 `topics` 订阅的主题推送到该地址。
|
||||
|
||||
---
|
||||
|
||||
第 1 / 14 条消息 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,62 @@
|
||||
# 卖家备注变更(`trade_TradeMemoModify`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「消息推送 → 卖家备注变更」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 消息名称 | 卖家备注变更 |
|
||||
| 消息主题 topic | `trade_TradeMemoModify` |
|
||||
| 功能分级 | 基础功能 |
|
||||
| 说明 | 卖家修改交易备注时,会推送此消息 |
|
||||
| 抖店原始文档 | [卖家添加备注消息](https://op.jinritemai.com/docs/message-docs/30/571) |
|
||||
| 抖店消息 tag | `113` |
|
||||
|
||||
## 推送参数
|
||||
|
||||
| 参数名 | 类型 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| topic | String | Get | 消息主题:`trade_TradeMemoModify` |
|
||||
| pub_time | Number | Get | 原消息发布时间(秒时间戳) |
|
||||
| data | String | Post | 消息内容,JSON 字符串(URL 编码后提交) |
|
||||
| sign | String | Get | 签名,签名原串 MD5(小写),见「[消息推送规范与签名](../03-消息推送规范与签名.md)」 |
|
||||
|
||||
## data 内容(属性说明)
|
||||
|
||||
| 属性名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| p_id | Integer | `483680741644460700` | 父订单ID |
|
||||
| remark | String | `备注` | 备注内容,最大不得超过60个字符 |
|
||||
| star | Integer | `3` | 标星等级:0-灰色旗标,1-紫色旗标,2-青色旗标,3-绿色旗标,4-橙色旗标,5-红色旗标 |
|
||||
| update_time | Integer | `1630269363` | 时间戳,秒 |
|
||||
| shop_id | Integer | `11808642` | 店铺ID,即时零售店铺该字段为即时零售总部id |
|
||||
|
||||
## data 内容示例(JSON)
|
||||
|
||||
```json
|
||||
{
|
||||
"p_id": 483680741644460700,
|
||||
"remark": "备注",
|
||||
"star": 3,
|
||||
"update_time": 1630269363,
|
||||
"shop_id": 11808642
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
推送参数 `data`、`pub_time`、`topic` 按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXdata{"p_id":483680741644460700,"remark":"备注","star":3,"update_time":1630269363,"shop_id":11808642}pub_time1780000000topictrade_TradeMemoModifyXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `4857ea0f89c990610d003fa96d93b2d9`
|
||||
|
||||
## 推送/测试地址
|
||||
|
||||
- 平台消息推送测试入口:`GET https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest?topic=trade_TradeMemoModify&pub_time={秒时间戳}&sign={签名}`(data 以 POST body 提交)
|
||||
- 正式接收地址由商家在「接口API → 消息设置」中配置(`message.message_config`),平台按 `topics` 订阅的主题推送到该地址。
|
||||
|
||||
---
|
||||
|
||||
第 2 / 14 条消息 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,86 @@
|
||||
# 卖家发货(`trade_TradeSellerShip`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「消息推送 → 卖家发货」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 消息名称 | 卖家发货 |
|
||||
| 消息主题 topic | `trade_TradeSellerShip` |
|
||||
| 功能分级 | 基础功能 |
|
||||
| 说明 | 卖家对所有商品发货完成,且父订单状态为【已发货】时,会推送此消息 |
|
||||
| 抖店原始文档 | [卖家发货消息](https://op.jinritemai.com/docs/message-docs/30/111) |
|
||||
| 抖店消息 tag | `102` |
|
||||
|
||||
## 推送参数
|
||||
|
||||
| 参数名 | 类型 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| topic | String | Get | 消息主题:`trade_TradeSellerShip` |
|
||||
| pub_time | Number | Get | 原消息发布时间(秒时间戳) |
|
||||
| data | String | Post | 消息内容,JSON 字符串(URL 编码后提交) |
|
||||
| sign | String | Get | 签名,签名原串 MD5(小写),见「[消息推送规范与签名](../03-消息推送规范与签名.md)」 |
|
||||
|
||||
## data 内容(属性说明)
|
||||
|
||||
| 属性名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| receiver_msg | Object | `` | 收货人详细信息 |
|
||||
| addr | String | `{}` | 收货地址,包含省市区和详细地址 |
|
||||
| name | String | `张三` | 收货人姓名 |
|
||||
| tel | String | `13117428564` | 收货人手机号 |
|
||||
| p_id | Integer | `4835999782215623000` | 父订单ID |
|
||||
| s_ids | Array | `[ 123 ]` | 子订单ID列表 |
|
||||
| shop_id | Integer | `597277` | 店铺ID,即时零售店铺该字段为即时零售总部id |
|
||||
| biz | Integer | `2` | 订单业务类型,表示买家从哪里看到的这个商品、产生了订单:1-鲁班广告,2-联盟,4-商城,8-自主经营,10-线索通支付表单,12-抖音门店,14-抖+,15-穿山甲 |
|
||||
| logistics_msg | Object | `` | 发货物流信息 |
|
||||
| express_company_id | String | `yunda` | 发货快递公司 |
|
||||
| logistics_code | String | `431******408` | 发货物流单号 |
|
||||
| order_status | Integer | `3` | 父订单状态,卖家发货消息的status值为"3" |
|
||||
| order_type | Integer | `2` | 订单类型: 0: 实物 2: 普通虚拟 4: poi核销 5: 三方核销 6: 服务市场 |
|
||||
| update_time | Integer | `1630335741` | 订单发货时间 |
|
||||
| store_id | Integer | `597277` | 即时零售门店ID |
|
||||
|
||||
## data 内容示例(JSON)
|
||||
|
||||
```json
|
||||
{
|
||||
"receiver_msg": {
|
||||
"addr": "{}",
|
||||
"name": "张三",
|
||||
"tel": "13117428564"
|
||||
},
|
||||
"p_id": 4835999782215623000,
|
||||
"s_ids": [
|
||||
123
|
||||
],
|
||||
"shop_id": 597277,
|
||||
"biz": 2,
|
||||
"logistics_msg": {
|
||||
"express_company_id": "yunda",
|
||||
"logistics_code": "431******408"
|
||||
},
|
||||
"order_status": 3,
|
||||
"order_type": 2,
|
||||
"update_time": 1630335741,
|
||||
"store_id": 597277
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
推送参数 `data`、`pub_time`、`topic` 按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXdata{"receiver_msg":{"addr":"{}","name":"张三","tel":"13117428564"},"p_id":4835999782215623000,"s_ids":[123],"shop_id":597277,"biz":2,"logistics_msg":{"express_company_id":"yunda","logistics_code":"431******408"},"order_status":3,"order_type":2,"update_time":1630335741,"store_id":597277}pub_time1780000000topictrade_TradeSellerShipXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `83208e09a486476a7adc5d8db83ff01b`
|
||||
|
||||
## 推送/测试地址
|
||||
|
||||
- 平台消息推送测试入口:`GET https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest?topic=trade_TradeSellerShip&pub_time={秒时间戳}&sign={签名}`(data 以 POST body 提交)
|
||||
- 正式接收地址由商家在「接口API → 消息设置」中配置(`message.message_config`),平台按 `topics` 订阅的主题推送到该地址。
|
||||
|
||||
---
|
||||
|
||||
第 3 / 14 条消息 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,99 @@
|
||||
# 卖家部分发货(`trade_TradePartlySellerShip`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「消息推送 → 卖家部分发货」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 消息名称 | 卖家部分发货 |
|
||||
| 消息主题 topic | `trade_TradePartlySellerShip` |
|
||||
| 功能分级 | 基础功能 |
|
||||
| 说明 | 卖家对部分商品(可能是部分件数)发货时,会推送此消息 |
|
||||
| 抖店原始文档 | [卖家部分发货消息](https://op.jinritemai.com/docs/message-docs/30/208) |
|
||||
| 抖店消息 tag | `108` |
|
||||
|
||||
## 推送参数
|
||||
|
||||
| 参数名 | 类型 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| topic | String | Get | 消息主题:`trade_TradePartlySellerShip` |
|
||||
| pub_time | Number | Get | 原消息发布时间(秒时间戳) |
|
||||
| data | String | Post | 消息内容,JSON 字符串(URL 编码后提交) |
|
||||
| sign | String | Get | 签名,签名原串 MD5(小写),见「[消息推送规范与签名](../03-消息推送规范与签名.md)」 |
|
||||
|
||||
## data 内容(属性说明)
|
||||
|
||||
| 属性名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| p_id | Integer | `4705288465508533000` | 父订单ID |
|
||||
| order_status | Integer | `2` | 父订单状态,卖家发货消息的status值为"2" |
|
||||
| logistics_msg | Object | `` | 发货物流信息 |
|
||||
| express_company_id | String | `gdkd` | 发货快递公司 |
|
||||
| logistics_code | String | `111111111111111` | 发货物流单号 |
|
||||
| pack_id | String | `4705288465508532862` | 包裹ID |
|
||||
| shipped_order_info | Array | `` | 已发货子订单信息 |
|
||||
| sku_num | Integer | `2` | 该子订单里已购买的sku数量 |
|
||||
| product_id | Integer | `2329389` | 对应的商品ID |
|
||||
| shipped_num | Integer | `1` | 已发货sku数量 |
|
||||
| shipped_order_id | Integer | `4705288465508533000` | 已发货子订单ID |
|
||||
| sku_id | Integer | `3373737` | 对应的SkuID |
|
||||
| receiver_msg | Object | `` | 收货人信息 |
|
||||
| addr | String | `{}` | 收货地址 |
|
||||
| name | String | `张三` | 收货人姓名 |
|
||||
| tel | String | `13117428565` | 收货人手机号 |
|
||||
| s_ids | Array | `[ 123 ]` | 子订单ID列表 |
|
||||
| shop_id | Integer | `77977` | 店铺id,即时零售店铺该字段为即时零售总部id |
|
||||
| order_type | Integer | `2` | 订单类型:0-实物,2-普通虚拟,4-poi核销,5-三方核销,6-服务市场 |
|
||||
| biz | Integer | `2` | 订单业务类型,表示买家从哪里看到的这个商品、产生了订单:1-鲁班广告,2-联盟,4-商城,8-自主经营,10-线索通支付表单,12-抖音门店,14-抖+,15-穿山甲 |
|
||||
| update_time | Integer | `123` | 订单发货时间 |
|
||||
|
||||
## data 内容示例(JSON)
|
||||
|
||||
```json
|
||||
{
|
||||
"p_id": 4705288465508533000,
|
||||
"order_status": 2,
|
||||
"logistics_msg": {
|
||||
"express_company_id": "gdkd",
|
||||
"logistics_code": "111111111111111",
|
||||
"pack_id": "4705288465508532862",
|
||||
"shipped_order_info": [{
|
||||
"sku_num": 2,
|
||||
"product_id": 2329389,
|
||||
"shipped_num": 1,
|
||||
"shipped_order_id": 4705288465508533000,
|
||||
"sku_id": 3373737
|
||||
}]
|
||||
},
|
||||
"receiver_msg": {
|
||||
"addr": "{}",
|
||||
"name": "张三",
|
||||
"tel": "13117428565"
|
||||
},
|
||||
"s_ids": [
|
||||
123
|
||||
],
|
||||
"shop_id": 77977,
|
||||
"order_type": 2,
|
||||
"biz": 2,
|
||||
"update_time": 123
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
推送参数 `data`、`pub_time`、`topic` 按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXdata{"p_id":4705288465508533000,"order_status":2,"logistics_msg":{"express_company_id":"gdkd","logistics_code":"111111111111111","pack_id":"4705288465508532862","shipped_order_info":[{"sku_num":2,"product_id":2329389,"shipped_num":1,"shipped_order_id":4705288465508533000,"sku_id":3373737}]},"receiver_msg":{"addr":"{}","name":"张三","tel":"13117428565"},"s_ids":[123],"shop_id":77977,"order_type":2,"biz":2,"update_time":123}pub_time1780000000topictrade_TradePartlySellerShipXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `f0f65e89ec6c83bd397cc55750358a27`
|
||||
|
||||
## 推送/测试地址
|
||||
|
||||
- 平台消息推送测试入口:`GET https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest?topic=trade_TradePartlySellerShip&pub_time={秒时间戳}&sign={签名}`(data 以 POST body 提交)
|
||||
- 正式接收地址由商家在「接口API → 消息设置」中配置(`message.message_config`),平台按 `topics` 订阅的主题推送到该地址。
|
||||
|
||||
---
|
||||
|
||||
第 4 / 14 条消息 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,87 @@
|
||||
# 买家发起售后(`refund_RefundCreated`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「消息推送 → 买家发起售后」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 消息名称 | 买家发起售后 |
|
||||
| 消息主题 topic | `refund_RefundCreated` |
|
||||
| 功能分级 | 基础功能 |
|
||||
| 说明 | 买家申请整单退款时,会推送此消息 |
|
||||
| 抖店原始文档 | [买家发起售后申请消息](https://op.jinritemai.com/docs/message-docs/31/115) |
|
||||
| 抖店消息 tag | `200` |
|
||||
|
||||
## 推送参数
|
||||
|
||||
| 参数名 | 类型 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| topic | String | Get | 消息主题:`refund_RefundCreated` |
|
||||
| pub_time | Number | Get | 原消息发布时间(秒时间戳) |
|
||||
| data | String | Post | 消息内容,JSON 字符串(URL 编码后提交) |
|
||||
| sign | String | Get | 签名,签名原串 MD5(小写),见「[消息推送规范与签名](../03-消息推送规范与签名.md)」 |
|
||||
|
||||
## data 内容(属性说明)
|
||||
|
||||
| 属性名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| refund_amount | Integer | `8900` | 申请退款的金额(含运费) |
|
||||
| refund_voucher_num | Integer | `0` | 申请退款的卡券的数量 |
|
||||
| shop_id | Integer | `10437917` | 店铺ID |
|
||||
| aftersale_id | Integer | `7000893114000949000` | 售后单ID |
|
||||
| aftersale_status | Integer | `6` | 售后状态,枚举值如下 |
|
||||
| aftersale_type | Integer | `2` | 售后类型:0-退货,1-售后退款,2-发货前退款 |
|
||||
| apply_time | Integer | `1630022518` | 售后申请时间 |
|
||||
| s_id | Integer | `4835804142146757000` | 子订单ID |
|
||||
| p_id | Integer | `4835804142146757000` | 父订单ID |
|
||||
| refund_post_amount | Integer | `0` | 申请退的运费金额 |
|
||||
| reason_code | Integer | `1` | 申请售后原因码,枚举值如下https://op.jinritemai.com/docs/question-docs/93/2306 |
|
||||
| update_time | String | `2022-09-02T10:27:50+08:00` | 售后单更新时间 |
|
||||
| return_book_info | Object | `` | 用户退货物流偏好 |
|
||||
| send_type | Integer | `1` | 寄回类型:1-自行寄回,2-上门取件,4-到店退货,5-商家自有运力上门取货,3-快递柜,8-驿站,10-商家上门取货【商家取货的统称:自有运力、平台运力、线下自取】 |
|
||||
| time_begin | String | `09:00` | 上门取件预约开始时间段 |
|
||||
| time_end | String | `11:00` | 上门取件预约结束时间段 |
|
||||
| encrypt_addr | String | `北京市海淀区海淀街道海淀街道海淀大街x号xx大厦x楼xxx室` | 地址, 已加密需解密使用 |
|
||||
|
||||
## data 内容示例(JSON)
|
||||
|
||||
```json
|
||||
{
|
||||
"refund_amount": 8900,
|
||||
"refund_voucher_num": 0,
|
||||
"shop_id": 10437917,
|
||||
"aftersale_id": 7000893114000949000,
|
||||
"aftersale_status": 6,
|
||||
"aftersale_type": 2,
|
||||
"apply_time": 1630022518,
|
||||
"s_id": 4835804142146757000,
|
||||
"p_id": 4835804142146757000,
|
||||
"refund_post_amount": 0,
|
||||
"reason_code": 1,
|
||||
"update_time": "2022-09-02T10:27:50+08:00",
|
||||
"return_book_info": {
|
||||
"send_type": 1,
|
||||
"time_begin": "09:00",
|
||||
"time_end": "11:00",
|
||||
"encrypt_addr": "北京市海淀区海淀街道海淀街道海淀大街x号xx大厦x楼xxx室"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
推送参数 `data`、`pub_time`、`topic` 按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXdata{"refund_amount":8900,"refund_voucher_num":0,"shop_id":10437917,"aftersale_id":7000893114000949000,"aftersale_status":6,"aftersale_type":2,"apply_time":1630022518,"s_id":4835804142146757000,"p_id":4835804142146757000,"refund_post_amount":0,"reason_code":1,"update_time":"2022-09-02T10:27:50+08:00","return_book_info":{"send_type":1,"time_begin":"09:00","time_end":"11:00","encrypt_addr":"北京市海淀区海淀街道海淀街道海淀大街x号xx大厦x楼xxx室"}}pub_time1780000000topicrefund_RefundCreatedXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `456e2018286c2e63534852142e62ebf2`
|
||||
|
||||
## 推送/测试地址
|
||||
|
||||
- 平台消息推送测试入口:`GET https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest?topic=refund_RefundCreated&pub_time={秒时间戳}&sign={签名}`(data 以 POST body 提交)
|
||||
- 正式接收地址由商家在「接口API → 消息设置」中配置(`message.message_config`),平台按 `topics` 订阅的主题推送到该地址。
|
||||
|
||||
---
|
||||
|
||||
第 5 / 14 条消息 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,76 @@
|
||||
# 售后关闭(`refund_RefundClosed`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「消息推送 → 售后关闭」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 消息名称 | 售后关闭 |
|
||||
| 消息主题 topic | `refund_RefundClosed` |
|
||||
| 功能分级 | 高级功能 |
|
||||
| 说明 | 当买家取消申请或系统超时机制导致退款取消时,会推送此消息 |
|
||||
| 抖店原始文档 | [售后关闭消息](https://op.jinritemai.com/docs/message-docs/31/122) |
|
||||
| 抖店消息 tag | `207` |
|
||||
|
||||
## 推送参数
|
||||
|
||||
| 参数名 | 类型 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| topic | String | Get | 消息主题:`refund_RefundClosed` |
|
||||
| pub_time | Number | Get | 原消息发布时间(秒时间戳) |
|
||||
| data | String | Post | 消息内容,JSON 字符串(URL 编码后提交) |
|
||||
| sign | String | Get | 签名,签名原串 MD5(小写),见「[消息推送规范与签名](../03-消息推送规范与签名.md)」 |
|
||||
|
||||
## data 内容(属性说明)
|
||||
|
||||
| 属性名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| aftersale_type | Integer | `0` | 售后类型:0-退货,1-售后退款,2-发货前退款 |
|
||||
| refund_amount | Integer | `6800` | 申请退款的金额(含运费) |
|
||||
| reason_code | Integer | `83` | 申请售后原因码,枚举值如下 |
|
||||
| close_time | Integer | `1630023532` | 退款成功时间 |
|
||||
| refund_voucher_num | Integer | `0` | 申请退款的卡券的数量 |
|
||||
| s_id | Integer | `4831577825636368000` | 子订单ID |
|
||||
| shop_id | Integer | `15791245` | 店铺ID |
|
||||
| aftersale_id | Integer | `6998111327440863000` | 售后单ID |
|
||||
| p_id | Integer | `4831577825636368000` | 父订单ID |
|
||||
| aftersale_status | Integer | `28` | 售后状态码,枚举值如下 |
|
||||
| refund_post_amount | Integer | `0` | 申请退的运费金额 |
|
||||
| update_time | String | `2022-09-02T10:27:50+08:00` | 售后单更新时间 |
|
||||
|
||||
## data 内容示例(JSON)
|
||||
|
||||
```json
|
||||
{
|
||||
"aftersale_type": 0,
|
||||
"refund_amount": 6800,
|
||||
"reason_code": 83,
|
||||
"close_time": 1630023532,
|
||||
"refund_voucher_num": 0,
|
||||
"s_id": 4831577825636368000,
|
||||
"shop_id": 15791245,
|
||||
"aftersale_id": 6998111327440863000,
|
||||
"p_id": 4831577825636368000,
|
||||
"aftersale_status": 28,
|
||||
"refund_post_amount": 0,
|
||||
"update_time": "2022-09-02T10:27:50+08:00"
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
推送参数 `data`、`pub_time`、`topic` 按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXdata{"aftersale_type":0,"refund_amount":6800,"reason_code":83,"close_time":1630023532,"refund_voucher_num":0,"s_id":4831577825636368000,"shop_id":15791245,"aftersale_id":6998111327440863000,"p_id":4831577825636368000,"aftersale_status":28,"refund_post_amount":0,"update_time":"2022-09-02T10:27:50+08:00"}pub_time1780000000topicrefund_RefundClosedXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `614aa4ce330e9c5f0224c960fbf40c6d`
|
||||
|
||||
## 推送/测试地址
|
||||
|
||||
- 平台消息推送测试入口:`GET https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest?topic=refund_RefundClosed&pub_time={秒时间戳}&sign={签名}`(data 以 POST body 提交)
|
||||
- 正式接收地址由商家在「接口API → 消息设置」中配置(`message.message_config`),平台按 `topics` 订阅的主题推送到该地址。
|
||||
|
||||
---
|
||||
|
||||
第 6 / 14 条消息 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,76 @@
|
||||
# 退款成功(`refund_RefundSuccess`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「消息推送 → 退款成功」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 消息名称 | 退款成功 |
|
||||
| 消息主题 topic | `refund_RefundSuccess` |
|
||||
| 功能分级 | 高级功能 |
|
||||
| 说明 | 当商家同意退款后,实际退款到账时,会推送此消息 |
|
||||
| 抖店原始文档 | [退款成功消息](https://op.jinritemai.com/docs/message-docs/31/121) |
|
||||
| 抖店消息 tag | `206` |
|
||||
|
||||
## 推送参数
|
||||
|
||||
| 参数名 | 类型 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| topic | String | Get | 消息主题:`refund_RefundSuccess` |
|
||||
| pub_time | Number | Get | 原消息发布时间(秒时间戳) |
|
||||
| data | String | Post | 消息内容,JSON 字符串(URL 编码后提交) |
|
||||
| sign | String | Get | 签名,签名原串 MD5(小写),见「[消息推送规范与签名](../03-消息推送规范与签名.md)」 |
|
||||
|
||||
## data 内容(属性说明)
|
||||
|
||||
| 属性名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| p_id | Integer | `4835702458804230000` | 父订单ID |
|
||||
| shop_id | Integer | `19586871` | 店铺ID |
|
||||
| aftersale_id | Integer | `7000774764214157000` | 售后单ID |
|
||||
| success_time | Integer | `1629994938` | 退款成功时间 |
|
||||
| refund_voucher_num | Integer | `0` | 申请退款的卡券的数量 |
|
||||
| s_id | Integer | `4835702458804230000` | 子订单ID(售前整单退类型无此字段) |
|
||||
| aftersale_status | Integer | `13` | 售后状态码,枚举值如下 |
|
||||
| aftersale_type | Integer | `2` | 售后类型:0-退货,1-售后退款,2-发货前退款 |
|
||||
| refund_amount | Integer | `24500` | 申请退款的金额(含运费) |
|
||||
| refund_post_amount | Integer | `0` | 申请退的运费金额 |
|
||||
| reason_code | Integer | `1` | 申请售后原因码,枚举值如下 |
|
||||
| update_time | String | `2022-09-02T10:27:50+08:00` | 售后单更新时间 |
|
||||
|
||||
## data 内容示例(JSON)
|
||||
|
||||
```json
|
||||
{
|
||||
"p_id": 4835702458804230000,
|
||||
"shop_id": 19586871,
|
||||
"aftersale_id": 7000774764214157000,
|
||||
"success_time": 1629994938,
|
||||
"refund_voucher_num": 0,
|
||||
"s_id": 4835702458804230000,
|
||||
"aftersale_status": 13,
|
||||
"aftersale_type": 2,
|
||||
"refund_amount": 24500,
|
||||
"refund_post_amount": 0,
|
||||
"reason_code": 1,
|
||||
"update_time": "2022-09-02T10:27:50+08:00"
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
推送参数 `data`、`pub_time`、`topic` 按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXdata{"p_id":4835702458804230000,"shop_id":19586871,"aftersale_id":7000774764214157000,"success_time":1629994938,"refund_voucher_num":0,"s_id":4835702458804230000,"aftersale_status":13,"aftersale_type":2,"refund_amount":24500,"refund_post_amount":0,"reason_code":1,"update_time":"2022-09-02T10:27:50+08:00"}pub_time1780000000topicrefund_RefundSuccessXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `acc70133942967e0bbcbd0f91d55effc`
|
||||
|
||||
## 推送/测试地址
|
||||
|
||||
- 平台消息推送测试入口:`GET https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest?topic=refund_RefundSuccess&pub_time={秒时间戳}&sign={签名}`(data 以 POST body 提交)
|
||||
- 正式接收地址由商家在「接口API → 消息设置」中配置(`message.message_config`),平台按 `topics` 订阅的主题推送到该地址。
|
||||
|
||||
---
|
||||
|
||||
第 7 / 14 条消息 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,50 @@
|
||||
# 订单完成(`trade_TradeSuccess`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「消息推送 → 订单完成」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 消息名称 | 订单完成 |
|
||||
| 消息主题 topic | `trade_TradeSuccess` |
|
||||
| 功能分级 | 基础功能 |
|
||||
| 说明 | 买家确认收货或系统自动确认收货,且父订单状态变为「已完成」时,会推送此消息 |
|
||||
| 抖店原始文档 | [交易完成消息](https://op.jinritemai.com/docs/message-docs/30/112) |
|
||||
| 抖店消息 tag | `103` |
|
||||
|
||||
## 推送参数
|
||||
|
||||
| 参数名 | 类型 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| topic | String | Get | 消息主题:`trade_TradeSuccess` |
|
||||
| pub_time | Number | Get | 原消息发布时间(秒时间戳) |
|
||||
| data | String | Post | 消息内容,JSON 字符串(URL 编码后提交) |
|
||||
| sign | String | Get | 签名,签名原串 MD5(小写),见「[消息推送规范与签名](../03-消息推送规范与签名.md)」 |
|
||||
|
||||
## data 内容(属性说明)
|
||||
|
||||
(页面未列出属性字段,以抖店原始文档为准)
|
||||
|
||||
## data 内容示例(JSON)
|
||||
|
||||
```json
|
||||
{}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
推送参数 `data`、`pub_time`、`topic` 按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXdata{}pub_time1780000000topictrade_TradeSuccessXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `9e085a6dccc6c8f517666dae8f93ac09`
|
||||
|
||||
## 推送/测试地址
|
||||
|
||||
- 平台消息推送测试入口:`GET https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest?topic=trade_TradeSuccess&pub_time={秒时间戳}&sign={签名}`(data 以 POST body 提交)
|
||||
- 正式接收地址由商家在「接口API → 消息设置」中配置(`message.message_config`),平台按 `topics` 订阅的主题推送到该地址。
|
||||
|
||||
---
|
||||
|
||||
第 8 / 14 条消息 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,50 @@
|
||||
# 订单取消(`trade_TradeCanceled`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「消息推送 → 订单取消」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 消息名称 | 订单取消 |
|
||||
| 消息主题 topic | `trade_TradeCanceled` |
|
||||
| 功能分级 | 基础功能 |
|
||||
| 说明 | 触发场景:货到付款订单且订单状态为「待确认」,买家和商家可取消订单;货到付款订单且订单状态为「备货中」,买家、商家和平台客服可取消订单;货到付款订单且订单状态为「已发货」,物流状态为拒收或退回;在线支付订单且订单状态为「待付款」,买家可取消该订单;在线支付订单且订单状态为「待付款」,超时未支付,订单自动取消 |
|
||||
| 抖店原始文档 | [订单取消消息](https://op.jinritemai.com/docs/message-docs/30/123) |
|
||||
| 抖店消息 tag | `106` |
|
||||
|
||||
## 推送参数
|
||||
|
||||
| 参数名 | 类型 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| topic | String | Get | 消息主题:`trade_TradeCanceled` |
|
||||
| pub_time | Number | Get | 原消息发布时间(秒时间戳) |
|
||||
| data | String | Post | 消息内容,JSON 字符串(URL 编码后提交) |
|
||||
| sign | String | Get | 签名,签名原串 MD5(小写),见「[消息推送规范与签名](../03-消息推送规范与签名.md)」 |
|
||||
|
||||
## data 内容(属性说明)
|
||||
|
||||
(页面未列出属性字段,以抖店原始文档为准)
|
||||
|
||||
## data 内容示例(JSON)
|
||||
|
||||
```json
|
||||
{}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
推送参数 `data`、`pub_time`、`topic` 按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXdata{}pub_time1780000000topictrade_TradeCanceledXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `fbbad894bd5904f1b7eecb34e510c04d`
|
||||
|
||||
## 推送/测试地址
|
||||
|
||||
- 平台消息推送测试入口:`GET https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest?topic=trade_TradeCanceled&pub_time={秒时间戳}&sign={签名}`(data 以 POST body 提交)
|
||||
- 正式接收地址由商家在「接口API → 消息设置」中配置(`message.message_config`),平台按 `topics` 订阅的主题推送到该地址。
|
||||
|
||||
---
|
||||
|
||||
第 9 / 14 条消息 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,50 @@
|
||||
# 同意退款(`refund_RefundAgreed`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「消息推送 → 同意退款」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 消息名称 | 同意退款 |
|
||||
| 消息主题 topic | `refund_RefundAgreed` |
|
||||
| 功能分级 | 基础功能 |
|
||||
| 说明 | 触发场景:买家在发货前申请整单退款,卖家同意退款或超时自动同意退款时;买家在发货后申请退款,卖家同意退款或超时自动同意退款时;买家在发货后申请申请退货,卖家确认收货或系统超时自动确认收货时;卖家收到买家换货包裹,核验后无法换货,同意换货但转直接退款时 |
|
||||
| 抖店原始文档 | [同意退款消息](https://op.jinritemai.com/docs/message-docs/31/116) |
|
||||
| 抖店消息 tag | `201` |
|
||||
|
||||
## 推送参数
|
||||
|
||||
| 参数名 | 类型 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| topic | String | Get | 消息主题:`refund_RefundAgreed` |
|
||||
| pub_time | Number | Get | 原消息发布时间(秒时间戳) |
|
||||
| data | String | Post | 消息内容,JSON 字符串(URL 编码后提交) |
|
||||
| sign | String | Get | 签名,签名原串 MD5(小写),见「[消息推送规范与签名](../03-消息推送规范与签名.md)」 |
|
||||
|
||||
## data 内容(属性说明)
|
||||
|
||||
(页面未列出属性字段,以抖店原始文档为准)
|
||||
|
||||
## data 内容示例(JSON)
|
||||
|
||||
```json
|
||||
{}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
推送参数 `data`、`pub_time`、`topic` 按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXdata{}pub_time1780000000topicrefund_RefundAgreedXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `129c1dc7220f601678d167ca78110f63`
|
||||
|
||||
## 推送/测试地址
|
||||
|
||||
- 平台消息推送测试入口:`GET https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest?topic=refund_RefundAgreed&pub_time={秒时间戳}&sign={签名}`(data 以 POST body 提交)
|
||||
- 正式接收地址由商家在「接口API → 消息设置」中配置(`message.message_config`),平台按 `topics` 订阅的主题推送到该地址。
|
||||
|
||||
---
|
||||
|
||||
第 10 / 14 条消息 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,50 @@
|
||||
# 拒绝退款(`refund_RefundRefused`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「消息推送 → 拒绝退款」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 消息名称 | 拒绝退款 |
|
||||
| 消息主题 topic | `refund_RefundRefused` |
|
||||
| 功能分级 | 高级功能 |
|
||||
| 说明 | 触发场景:买家在发货前申请整单退款,卖家拒绝;买家在发货后申请退款,卖家拒绝;买家在发货后申请申请退货,买家发货后,卖家拒绝收货 |
|
||||
| 抖店原始文档 | [拒绝退款消息](https://op.jinritemai.com/docs/message-docs/31/119) |
|
||||
| 抖店消息 tag | `204` |
|
||||
|
||||
## 推送参数
|
||||
|
||||
| 参数名 | 类型 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| topic | String | Get | 消息主题:`refund_RefundRefused` |
|
||||
| pub_time | Number | Get | 原消息发布时间(秒时间戳) |
|
||||
| data | String | Post | 消息内容,JSON 字符串(URL 编码后提交) |
|
||||
| sign | String | Get | 签名,签名原串 MD5(小写),见「[消息推送规范与签名](../03-消息推送规范与签名.md)」 |
|
||||
|
||||
## data 内容(属性说明)
|
||||
|
||||
(页面未列出属性字段,以抖店原始文档为准)
|
||||
|
||||
## data 内容示例(JSON)
|
||||
|
||||
```json
|
||||
{}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
推送参数 `data`、`pub_time`、`topic` 按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXdata{}pub_time1780000000topicrefund_RefundRefusedXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `8d649b8db2ee575c527a7a5304b9fee4`
|
||||
|
||||
## 推送/测试地址
|
||||
|
||||
- 平台消息推送测试入口:`GET https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest?topic=refund_RefundRefused&pub_time={秒时间戳}&sign={签名}`(data 以 POST body 提交)
|
||||
- 正式接收地址由商家在「接口API → 消息设置」中配置(`message.message_config`),平台按 `topics` 订阅的主题推送到该地址。
|
||||
|
||||
---
|
||||
|
||||
第 11 / 14 条消息 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,50 @@
|
||||
# 发起仲裁(`refund_ArbitrateApplied`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「消息推送 → 发起仲裁」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 消息名称 | 发起仲裁 |
|
||||
| 消息主题 topic | `refund_ArbitrateApplied` |
|
||||
| 功能分级 | 高级功能 |
|
||||
| 说明 | 触发场景:商家拒绝买家请求,买家可申请平台客服介入、发起客服仲裁,此时推送此消息。具体场景如下: 订单已发货,买家申请售后退款,此时商家拒绝,买家可发起仲裁;订单已发货,买家申请售后退换货,此时商家拒绝退货请求,买家可发起仲裁;订单已发货,买家申请售后退换货,买家已填写退货物流,此时商家拒绝收货,买家可发起仲裁 |
|
||||
| 抖店原始文档 | [买家发起客服仲裁消息](https://op.jinritemai.com/docs/message-docs/31/256) |
|
||||
| 抖店消息 tag | `212` |
|
||||
|
||||
## 推送参数
|
||||
|
||||
| 参数名 | 类型 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| topic | String | Get | 消息主题:`refund_ArbitrateApplied` |
|
||||
| pub_time | Number | Get | 原消息发布时间(秒时间戳) |
|
||||
| data | String | Post | 消息内容,JSON 字符串(URL 编码后提交) |
|
||||
| sign | String | Get | 签名,签名原串 MD5(小写),见「[消息推送规范与签名](../03-消息推送规范与签名.md)」 |
|
||||
|
||||
## data 内容(属性说明)
|
||||
|
||||
(页面未列出属性字段,以抖店原始文档为准)
|
||||
|
||||
## data 内容示例(JSON)
|
||||
|
||||
```json
|
||||
{}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
推送参数 `data`、`pub_time`、`topic` 按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXdata{}pub_time1780000000topicrefund_ArbitrateAppliedXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `f96c45b2922a4282f78a64857b466845`
|
||||
|
||||
## 推送/测试地址
|
||||
|
||||
- 平台消息推送测试入口:`GET https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest?topic=refund_ArbitrateApplied&pub_time={秒时间戳}&sign={签名}`(data 以 POST body 提交)
|
||||
- 正式接收地址由商家在「接口API → 消息设置」中配置(`message.message_config`),平台按 `topics` 订阅的主题推送到该地址。
|
||||
|
||||
---
|
||||
|
||||
第 12 / 14 条消息 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,50 @@
|
||||
# 取消仲裁(`refund_ArbitrateCancelled`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「消息推送 → 取消仲裁」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 消息名称 | 取消仲裁 |
|
||||
| 消息主题 topic | `refund_ArbitrateCancelled` |
|
||||
| 功能分级 | 高级功能 |
|
||||
| 说明 | 买家申请客服介入、发起客服仲裁后,而后又取消客服仲裁时,推送此消息 |
|
||||
| 抖店原始文档 | [买家取消仲裁消息](https://op.jinritemai.com/docs/message-docs/31/260) |
|
||||
| 抖店消息 tag | `215` |
|
||||
|
||||
## 推送参数
|
||||
|
||||
| 参数名 | 类型 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| topic | String | Get | 消息主题:`refund_ArbitrateCancelled` |
|
||||
| pub_time | Number | Get | 原消息发布时间(秒时间戳) |
|
||||
| data | String | Post | 消息内容,JSON 字符串(URL 编码后提交) |
|
||||
| sign | String | Get | 签名,签名原串 MD5(小写),见「[消息推送规范与签名](../03-消息推送规范与签名.md)」 |
|
||||
|
||||
## data 内容(属性说明)
|
||||
|
||||
(页面未列出属性字段,以抖店原始文档为准)
|
||||
|
||||
## data 内容示例(JSON)
|
||||
|
||||
```json
|
||||
{}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
推送参数 `data`、`pub_time`、`topic` 按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXdata{}pub_time1780000000topicrefund_ArbitrateCancelledXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `e7f05a035d12436f644f32ed73cfb872`
|
||||
|
||||
## 推送/测试地址
|
||||
|
||||
- 平台消息推送测试入口:`GET https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest?topic=refund_ArbitrateCancelled&pub_time={秒时间戳}&sign={签名}`(data 以 POST body 提交)
|
||||
- 正式接收地址由商家在「接口API → 消息设置」中配置(`message.message_config`),平台按 `topics` 订阅的主题推送到该地址。
|
||||
|
||||
---
|
||||
|
||||
第 13 / 14 条消息 | 导航: [返回索引](../README.md)
|
||||
@@ -0,0 +1,68 @@
|
||||
# 订单创建(`trade_TradeCreate`)
|
||||
|
||||
> 本页数据抓取自抖音码速达开放平台「消息推送 → 订单创建」。
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 消息名称 | 订单创建 |
|
||||
| 消息主题 topic | `trade_TradeCreate` |
|
||||
| 功能分级 | 基础功能 |
|
||||
| 说明 | 当买家下单,系统生成订单时,会推送此消息 |
|
||||
| 抖店原始文档 | [订单创建消息](https://op.jinritemai.com/docs/message-docs/30/109) |
|
||||
| 抖店消息 tag | `100` |
|
||||
|
||||
## 推送参数
|
||||
|
||||
| 参数名 | 类型 | 提交方式 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| topic | String | Get | 消息主题:`trade_TradeCreate` |
|
||||
| pub_time | Number | Get | 原消息发布时间(秒时间戳) |
|
||||
| data | String | Post | 消息内容,JSON 字符串(URL 编码后提交) |
|
||||
| sign | String | Get | 签名,签名原串 MD5(小写),见「[消息推送规范与签名](../03-消息推送规范与签名.md)」 |
|
||||
|
||||
## data 内容(属性说明)
|
||||
|
||||
| 属性名 | 类型 | 示例 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| p_id | Integer | `4835999782215623000` | 父订单ID |
|
||||
| s_ids | Array | `[ 123 ]` | 子订单ID列表 |
|
||||
| shop_id | Integer | `597277` | 店铺ID,即时零售店铺该字段为即时零售总部id |
|
||||
| order_status | Integer | `1` | 父订单状态,订单创建消息的order_status值为"1" |
|
||||
| order_type | Integer | `2` | 订单类型: 0: 实物 2: 普通虚拟 4: poi核销 5: 三方核销 6: 服务市场 |
|
||||
| create_time | Integer | `1630335741` | 订单创建时间 |
|
||||
| biz | Integer | `2` | 订单业务类型,表示买家从哪里看到的这个商品、产生了订单:1-鲁班广告,2-联盟,4-商城,8-自主经营,10-线索通支付表单,12-抖音门店,14-抖+,15-穿山甲 |
|
||||
|
||||
## data 内容示例(JSON)
|
||||
|
||||
```json
|
||||
{
|
||||
"p_id": 4835999782215623000,
|
||||
"s_ids": [
|
||||
123
|
||||
],
|
||||
"shop_id": 597277,
|
||||
"order_status": 1,
|
||||
"order_type": 2,
|
||||
"create_time": 1630335741,
|
||||
"biz": 2
|
||||
}
|
||||
```
|
||||
|
||||
## 签名原串示例
|
||||
|
||||
推送参数 `data`、`pub_time`、`topic` 按参数名字典序拼接 `参数名+参数值`,首尾各加一次用户秘钥(占位秘钥 `XXXXXXXXXXXXXXXXXXXX`、时间戳 `1780000000`):
|
||||
|
||||
```text
|
||||
XXXXXXXXXXXXXXXXXXXXdata{"p_id":4835999782215623000,"s_ids":[123],"shop_id":597277,"order_status":1,"order_type":2,"create_time":1630335741,"biz":2}pub_time1780000000topictrade_TradeCreateXXXXXXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
`sign = md5(签名原串)`(32 位小写)= `9fdda386c7758d1b02ec70d2e2b53171`
|
||||
|
||||
## 推送/测试地址
|
||||
|
||||
- 平台消息推送测试入口:`GET https://dy-openplatform-api.wanmahui.com/api/openplatform/messagetest?topic=trade_TradeCreate&pub_time={秒时间戳}&sign={签名}`(data 以 POST body 提交)
|
||||
- 正式接收地址由商家在「接口API → 消息设置」中配置(`message.message_config`),平台按 `topics` 订阅的主题推送到该地址。
|
||||
|
||||
---
|
||||
|
||||
第 14 / 14 条消息 | 导航: [返回索引](../README.md)
|
||||
Reference in New Issue
Block a user