Skip to content

LOVELIVELIMITED/Soda_Docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

合作平台 REST API 使用详解

通过使用 Partner Merchant 合作平台 REST API 可以让你用任何支持发送 HTTP 请求的设备来与 Soda Express 进行交互。

API 版本

版本 内容
线上版本1.7 Sep 15 2020 请使用本版本 API 🎉
已弃用 0.6.0 March 7 2020 Beta Release

Base URL

为保证用户、开发者的数据安全,请务必总是使用 HTTPS 来加密传输讯息。
文档中 API Base URL 给予地理位置和国家进行区分,请注意使用。

区域 Base URL
🇳🇿新西兰 nz-merc.lovelive.team

标准响应格式

对于所有的请求,响应格式都是一个 JSON 对象。

一个请求是否成功是由返回字段里的 errno 标明的。而服务端通常都会返回一个 2XX 的 HTTP 状态码表示成功,而一个 5XX 的 HTTP 状态码表示请求异常。当一个请求失败时响应的主体仍然是一个 JSON 对象,但是总是会包含 errnoerrmsg 这两个字段,你可以用它们来进行调试。举个例子,如果尝试用非法的属性名来保存一个对象会得到如下信息:

{
  "errno": 4001,
  "errmsg": "app_key不存在"
}

请求签名

将全部的请求内容使用字母顺序 a-z 进行排序,排序后使用 md5 HEX 进行加密后放置于头部 sign 字段。

如密钥错误会返回

{
  "errno": 4003,
  "errmsg": "Wrong Sign"
}

回调接口

如需要完整接入 Soda 平台,体验更完整的服务,那么接入回调服务将会是一个非常好的选择。

请通过企业微信 @liujiaqi 提供一个后端接口用于接受 Soda 的回调状态信息,这样将更好的获得订单和相关服务的状态。
Soda 将以 Json 格式向提前预留的接口发送请求。请求示例如下。

{
  "order_no": "5404633a6434412eb5c64d556852b328",
  "status": "2",
  "msg": "订单已被跑男接到"
}
Status 定义 备注
1 已经接单
2 已经拿到餐品
3 已经送达
-2 无法联系到收件人 重定向餐品至中转点
-6 争议订单进入流程 客服联系
1005 平台过载请停止接单 不会带订单号

起点地址终点地址 JSON

| 字段 | 格式 | 备注 | | ---- | ---------------------------------- | | |formatted_addresse|String|街道名| |city|String|城市区域| |latitude|Number|纬度| |longitude|Number|经度| |phone|String|电话| |name|String|名字|

{
   "formatted_addresse":"4 Yjsp St",
   "city":"Mount Eden\nAuckland 1024",
   "latitude":-36.89357,
   "longitude":174.759766,
   "phone":"0220826111",
   "name":"兔先生"
}

价格相关接口

查询配送价格

URL HTTP 功能
/opentp/v1/cost/calculation POST 查询配送价格
  • 注意本价格不包含 GST

查询配送价格服务接口的使用可以获得配送价格

请求示例

| 字段 | 格式 | 备注 | | ---- | ---------------------------------- | | |app_key|String|AppKey 企业微信联系 @liujiaqi 获取| |startAddress|String|起点地址是一个 object 请求时将它转成 string 类型| |endAddress|String|终点地址是一个 object 请求时将它转成 string 类型| |service_type|String|AppKey 企业微信联系 @liujiaqi 获取| |weight|Number|单位为 g1 公斤则填写 1000|

{
  "app_key": "AppKey",
  "startAddress": "{ "formatted_addresse":"4 Yjsp St", "city":"Mount Eden\nAuckland 1024", "latitude":-36.89357, "longitude":174.759766, "phone":"0220826111", "name":"兔先生" }",
  "endAddress": "{ "formatted_addresse":"4 Yjsp St", "city":"Mount Eden\nAuckland 1024", "latitude":-36.89357, "longitude":174.759766, "phone":"0220826111", "name":"兔先生" }",
  "service_type": "OPENID,
  "weight": 10000
}

返回示例

| 字段 | 格式 | 备注 | | ---- | ---------------------------------- | | |data.totalPrice|String|总价格| |data.start.startDistance|Number|起步价距离| |data.start.startPrice|String|起步价价格| |data.weightPrice|Number|重量价格| |data.excced.exccedDistance|Number|超出部分距离| |data.excced.exccedPrice|String|超出部分价格|

{
  "errno": 0,
  "errmsg": "",
  "data": {
    "totalPrice": "22.25",
    "start": {
      "startDistance": 2000,
      "startPrice": "6.25"
    },
    "weightPrice": 0,
    "excced": {
      "exccedDistance": 23918,
      "exccedPrice": "16.00"
    }
  }
}

订单相关接口

合作商家下单

URL HTTP 功能
/opentp/v1/order/place POST 合作商家下单

合作商家下单服务接口的使用可以通过接口直接在 Soda Express 下单

请求示例

| 字段 | 格式 | 备注 | | ---- | ---------------------------------- | | |app_key|String|AppKey 企业微信联系 @liujiaqi 获取| |startAddress|String|起点地址是一个 object 请求时将它转成 string 类型| |endAddress|String|终点地址是一个 object 请求时将它转成 string 类型| |service_type|String|AppKey 企业微信联系 @liujiaqi 获取| |weight|Number|单位为 g1 公斤则填写 1000| |textarea|String|平台订单号| |goodslist|String|商品描述是一个 object 请求时将它转成 string 类型| |est_time|String|预计出餐时间| |sent_time|2020-04-03 15:56:34|未来运送时间 |

{
  "app_key": "AppKey",
  "startAddress": "{ "formatted_addresse":"4 Yjsp St", "city":"Mount Eden\nAuckland 1024", "latitude":-36.89357, "longitude":174.759766, "phone":"0220826111", "name":"兔先生" }",
  "endAddress": "{ "formatted_addresse":"4 Yjsp St", "city":"Mount Eden\nAuckland 1024", "latitude":-36.89357, "longitude":174.759766, "phone":"0220826111", "name":"兔先生" }",
  "service_type": "OPENID",
  "textarea": "平台订单号",
  "weight": 10000,
  "goodslist":{
    "totalprice":1145.14,
    "noti":"多喝热水么么哒",
    "data":[
        "{
          "id":1,
          "name":"吃米酸奶",
          "sku":"去冰 少糖",
          "price":1.14,
          "qty":19
        }",
        "{
          "id":2,
          "name":"矢泽妮可",
          "sku":"24 岁女高生",
          "price":19.19,
          "qty":810
        }",
        "{
          "id":3,
          "name":"渡边曜",
          "sku":"四年级 很有精神",
          "price":8.10,
          "qty":19
        }"
    ]
  }
}

返回示例

| 字段 | 格式 | 备注 | | ---- | ---------------------------------- | | |data.totalFee|Number|总价格 不包含 GST 进位保留两位小数点你| |data.out_trade_no|String|平台唯一订单号|

{
  "errno": 0,
  "errmsg": "",
  "data": {
    "totalFee": 25.5875,
    "out_trade_no": "5404633a6434412eb5c64d556852b328",
  }
}

合作商家取消订单

URL HTTP 功能
/opentp/v1/order/cancel POST 合作商家取消订单

合作商家下单服务接口的使用可以通过接口直接在 Soda Express 关闭订单

请求示例

| 字段 | 格式 | 备注 | | ---- | ---------------------------------- | | |app_key|String|AppKey 企业微信联系 @liujiaqi 获取| |order_no|String|Soda 订单号|

{
  "app_key": "AppKey",
  "order_no": "order_no",
}

返回示例

{
  "errno": 0,
  "errmsg": "订单已取消",
}
{
  "errno": 0,
  "errmsg": "订单将会送回取货地址",
}
{
  "errno": 1404,
  "errmsg": "订单不存在",
}
{
  "errno": 1403,
  "errmsg": "不是您的订单",
}

获得本周账期订单细节

URL HTTP 功能
/opentp/v1/order/weeklist POST 获得本周账期订单

通过请求本接口可以获得本账期的账单计费订单信息,仅供参考

请求示例

| 字段 | 格式 | 备注 | | ---- | ---------------------------------- | | |app_key|String|AppKey 企业微信联系 @liujiaqi 获取|

{
  "app_key": "AppKey",
}

返回示例

{
  "errno": 0,
  "errmsg": "success",
  "data": [
    {
      "id": 3366,
      "order_no": "705ecf800d864bf180c9052704c5f60a",
      "pay_amount": 3.49,
      "pay_type": 1,
      "service_type": "OPENID",
      "interal_value": 0,
      "interal_amount": 0,
      "night_price": 0,
      "start_distance_amount": 3.49,
      "exceed_distance_amount": 0,
      "exceed_distance": 0,
      "weight_id": 0,
      "weight_price": 0,
      "status": 3,
      "refund_amount": 0,
      "refund_status": 0,
      "start_address": "",
      "start_hash": null,
      "end_address": "",
      "goods_des": "测试物品",
      "send_time": "2020-06-22 16:49:39",
      "create_time": "2020-06-22 16:49:40",
      "expt_desc": null,
      "wx_id": 0,
      "form_ids": "",
      "openid": "0",
      "tip": 0,
      "distance": 1540,
      "ws_id": 0,
      "refund_no": null,
      "argue_desc": "糖吃洒了",
      "order_type": 1,
      "opentp_key": "APPKEY"
    },
  ]
}

获得订单细节

URL HTTP 功能
/opentp/v1/order/track POST 订单状态跟踪

通过请求本接口可以获得本账期的账单计费订单信息,仅供参考

请求示例

| 字段 | 格式 | 备注 | | ---- | ---------------------------------- | | |app_key|String|AppKey 企业微信联系 @liujiaqi 获取| |order_no|String|订单编号|

{
  "app_key": "AppKey",
  "order_no": "705ecf800d864bf180c9052704c5f60a"
}

返回示例

{
  "errno": 0,
  "errmsg": "success",
  "data": [
    {
      "id": 3366,
      "order_no": "705ecf800d864bf180c9052704c5f60a",
      "pay_amount": 3.49,
      "pay_type": 1,
      "service_type": "OPENID",
      "interal_value": 0,
      "interal_amount": 0,
      "night_price": 0,
      "start_distance_amount": 3.49,
      "exceed_distance_amount": 0,
      "exceed_distance": 0,
      "weight_id": 0,
      "weight_price": 0,
      "status": 3,
      "refund_amount": 0,
      "refund_status": 0,
      "start_address": "",
      "start_hash": null,
      "end_address": "",
      "goods_des": "测试物品",
      "send_time": "2020-06-22 16:49:39",
      "create_time": "2020-06-22 16:49:40",
      "expt_desc": null,
      "wx_id": 0,
      "form_ids": "",
      "openid": "0",
      "tip": 0,
      "distance": 1540,
      "ws_id": 0,
      "refund_no": null,
      "argue_desc": "",
      "order_type": 1,
      "opentp_key": "APPKEY",
      "lat": -36.801526,
      "lnt": 174.740425,
    },
  ]
}

发起订单争议

URL HTTP 功能
/opentp/v1/order/argue POST 发起订单争议

通过请求本接口可以获得本账期的账单计费订单信息,仅供参考

请求示例

| 字段 | 格式 | 备注 | | ---- | ---------------------------------- | | |app_key|String|AppKey 企业微信联系 @liujiaqi 获取| |argue_desc|String|争议内容,请描述| |order_no|String|订单编号|

{
  "argue_desc": "糖吃洒了",
  "order_no": "705ecf800d864bf180c9052704c5f60a1",
  "app_key": "APPKEY"
}

返回示例

{
  "errno": 0,
  "errmsg": "",
  "data": "收到,订单进入争议流程"
}

评价相关接口

评价订单

URL HTTP 功能
/opentp/v1/evaluate/add POST 评价订单接口

通过请求本接口可以进行订单的相关评价

请求示例

| 字段 | 格式 | 备注 | | ---- | ---------------------------------- | | |app_key|String|AppKey 企业微信联系 @liujiaqi 获取| |score|String|分数 区间 1-5| |order_id|String|订单号| |msg|String|评价内容| |ws_id|String|配送司机|

{
  "ws_id": "12",
  "order_id": "sadfsgdhdgfsdfas",
  "score": "5",
  "msg": "verygood",
  "app_key": "AppKey"
}

返回示例

{
  "errno": 0,
  "errmsg": "评价成功",
  "data": {}
}