开发者 API 和 Webhook

简介

爱发电提供了webhook和api两种方式为开发者提供便利。以下内容爱发电简称平台,开发者称开发者。

后台地址 https://afdian.net/dashboard/dev

  1. Webhook

    • 需要在配置通知地址,每当有订单时,平台会请求开发者配置的url(如果服务器异常,可能不保证能及时推送,因此建议结合API一起使用)

    • 此功能的url可在开发者后台找到对应配置,如下图所示

  2. API

    • 该功能需要开发者主动请求爱发电平台,目前可查询历史订单和赞助的人。

    • 此功能涉及到的 user_id、api token 可在开发者后台找到对应配置。如下图所示

Webhook

说明

此功能会将开发者相关的订单打给配置好的url,同时要求开发者返回固定结构,以明确表示成功收到回调。(不排除以后在异常时会重复请求,因此建议做幂等逻辑,支持重复推送)平台请求开发者配置的URL数据示例,目前 data.type 仅为 order ,data.order 对象具体订单字段见最下方解释

{
  "ec": 200,
  "em": "ok",
  "data": {
    "type": "order",
    "order": {
      "out_trade_no": "202106232138371083454010626",
      "user_id": "adf397fe8374811eaacee52540025c377",
      "user_private_id":"33这个是每个用户唯一的,相当于微信的 unionid",
      "plan_id": "a45353328af911eb973052540025c377",
      "month": 1,
      "total_amount": "5.00",
      "show_amount": "5.00",
      "status": 2,
      "remark": "",
      "redeem_id": "",
      "product_type": 0,
      "discount": "0.00",
      "sku_detail": [{
        "sku_id": "b082342c4aba11ebb5cb52540025c377",
        "count": 1,
        "name": "15000 赏金/货币 兑换码",
        "album_id": "",
        "pic": "https://pic1.afdiancdn.com/user/8a8e408a3aeb11eab26352540025c377/common/sfsfsff.jpg"
      }],
      "address_person": "",
      "address_phone": "",
      "address_address": ""
    }
  }
}

要求开发者响应的JSON示例,如果接口不返回ec 200 ,则平台认为回调失败

API

当前功能需要用到 user_id 和 生成的API Token,以下简称 token。请求平台时可以为form表单或者json,平台返回的数据为json。

签名介绍

为了保证数据安全与灵活性,平台做了一个简单的签名逻辑。平台接收的参数如下。

示例

JSON请求示例

检验签名是否准确

https://afdian.net/api/open/ping可用postman或其他工具请求测试接口。如果接口返回 ec = 200,则证明签名校验通过。如果签名不通过,会返回拼接的字符串,方便检查不通过的原因。比如下面这种场景就是签名不正确。可以直接复制里面的 debug.kv_string,离线计算sign值。如果token为123,由于签名计算规则为 sign=md5(tokenkv_string),可以很方便的校验传参是否正确。

下面是ts过期的情况

如果返回 ec 为 200,类似下面结构,说明没问题。

ec 字段异常错误码

具体接口列表

查订单

https://afdian.net/api/open/query-order

可传的参数为

参数名

含义

示例

page

按页数倒序获取订单,按订单创建时间倒序

1 2 3累加

out_trade_no

指定订单号查询信息,如需要查多个,则英文逗号分隔

222225555,2222222666

参数为 page 可传 1,2,3 等(以后会支持传时间查询)即请求参数 params 的值为 {"page":1}

当前按订单创建时间倒序,每页50条数据返回数据结构示例

【注意层级和webhook结构有不同,这里的 order 对象是放到 list 里的】,具体订单含义见最下方解释

查赞助者

https://afdian.net/api/open/query-sponsor参数为 page 可传 1,2,3 等即请求参数 params 的值为 {"page":1}当前按建立关系时间倒序,每页20个返回结构示例

字段说明

订单字段说明

赞助者字段说明

最后更新于