开发者 API 和 Webhook
简介
爱发电提供了webhook和api两种方式为开发者提供便利。以下内容爱发电简称平台,开发者称开发者。
后台地址 https://afdian.net/dashboard/dev
Webhook
需要在配置通知地址,每当有订单时,平台会请求开发者配置的url(如果服务器异常,可能不保证能及时推送,因此建议结合API一起使用)
此功能的url可在开发者后台找到对应配置,如下图所示
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个返回结构示例
字段说明
订单字段说明
赞助者字段说明
最后更新于