Webhook
此功能会将创作者的订单信息发送到配置的URL,以满足不同的业务场景。
每当有新的事件发生时,平台会请求开发者配置的url。
立即开始
需要在创作中心-开发配置中配置通知地址,并开启此功能。
对接规范
为保证数据在传输过程中不被非法篡改,接口数据使用「国密SM2」进行加密。
开发人员在接收到请求之后,需要返回固定相应参数,以明确表示成功收到回调。
注意
- 为保证您的接口安全,请勿泄露开发者控制台的公钥和私钥!
- Webhook接口请求过程中无法携带Token,请关闭对Webhook通知地址的鉴权。
- 同一个的异步消息可能会通知多次,因此接收异步消息需做好幂等处理,保障多次接收到同样的消息处理后结果不变。
请求方式
请求方式:HTTP
请求类型:POST
Content-Type:application/json; charset=utf-8
示例参数
{
"data": "04da010fc3d76183edaeea16f36e314d6fd5c00011551e1d9d134106486b9665f28daf1d69bd11c2a76cdc96d940fffa91f82a35e5a2ec49007b2b99720205abf4624acbc2f40832b10f8fbc32722589872d70472030e9194bb9be32a8ca152ec8da88aae8f230ec4bd337d7e09056ed1c33abec5beb9444ae30700385c1bddf385a8b97e68c68178afc8326b347e772dd0012ce354c13c6b52a4f30c202d41c8677d4098f13cbb3922f90ff6d623bba376f59b4fb6108d58efa01cfc15195e1a34b341da4f4dff19aae72f88faff63f787c042e9a726b09e0102f9c0d07e70b599cf7ee689ecbe6bab34aa07572a4172dffaec72a02f28207409c74567514273065e2b1ff7fdcfeb67e5f2fd7006a1c785b889f85e5569968b14c66a20391750f507457258ef82b08d45e3da19d761645e8cd52a1c45a7152b9088396c73da5b0f14e0b344271f175a0b4a461212529bc82a88a4e9a127da1f922620d10803af9d9218ce58ed381afb3721ecfdb36a519e51cb35f7b4e98e2aac55b8f68f21d819ca3efc210413091021e0397e8a99e7e29454903fbe824fceae41067aefa285a9b7b769da83504896594bf5bf7f0178015b8aa7c3bd6622f471893bb4c4b61d3003c693f5b24e199bbd0e011109f0a8df7cd39462639e271f230fcc5ff342286c4322e59845edbfd7610f25f416caf3768366798135477b8009d1b1764b22f944e408a04c09f66debc361d375c7326d51573ddffa835811e0c56f695aeea9aa75e69ca"
}
参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
data | String | 是 | 加密后的参数,请使用国密SM2解密后使用 |
数据解密
参数使用「国密SM2」算法进行加密,在获取到加密后的data之后,请使用开发控制台的私钥进行解密。
解密代码示例
在开发过程中遇到问题,请通过联系我们进行沟通,我们会提供协助。
Java
使用hutool提供的工具类进行解密。
public static void main(String[] args) {
// 加密后的data数据
String encryptDataStr = "04da010fc3d76183edaeea16f36e314d6fd5c00011551e1d9d134106486b9665f28daf1d69bd11c2a76cdc96d940fffa91f82a35e5a2ec49007b2b99720205abf4624acbc2f40832b10f8fbc32722589872d70472030e9194bb9be32a8ca152ec8da88aae8f230ec4bd337d7e09056ed1c33abec5beb9444ae30700385c1bddf385a8b97e68c68178afc8326b347e772dd0012ce354c13c6b52a4f30c202d41c8677d4098f13cbb3922f90ff6d623bba376f59b4fb6108d58efa01cfc15195e1a34b341da4f4dff19aae72f88faff63f787c042e9a726b09e0102f9c0d07e70b599cf7ee689ecbe6bab34aa07572a4172dffaec72a02f28207409c74567514273065e2b1ff7fdcfeb67e5f2fd7006a1c785b889f85e5569968b14c66a20391750f507457258ef82b08d45e3da19d761645e8cd52a1c45a7152b9088396c73da5b0f14e0b344271f175a0b4a461212529bc82a88a4e9a127da1f922620d10803af9d9218ce58ed381afb3721ecfdb36a519e51cb35f7b4e98e2aac55b8f68f21d819ca3efc210413091021e0397e8a99e7e29454903fbe824fceae41067aefa285a9b7b769da83504896594bf5bf7f0178015b8aa7c3bd6622f471893bb4c4b61d3003c693f5b24e199bbd0e011109f0a8df7cd39462639e271f230fcc5ff342286c4322e59845edbfd7610f25f416caf3768366798135477b8009d1b1764b22f944e408a04c09f66debc361d375c7326d51573ddffa835811e0c56f695aeea9aa75e69ca";
// 开发者私钥
String privateKey = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgyt3R73aG2whXYSODOjx9NUzp7q9doi2rGxQ2zhFa1NGgCgYIKoEcz1UBgi2hRANCAAR6BaHGSvq9RB5XeyOY7EzpwIirSeE+sEjtE9oYK0m4p87H50+U7La7yCqR6HjmehDFF2x1C3ssagbUQJiHNgKW";
// 使用Hutool的SM2工具类进行解密
SM2 sm2 = SmUtil.sm2(privateKey, null);
String decryptStr = sm2.decryptStr(encryptDataStr, KeyType.PrivateKey);
// 格式化
System.out.println(JSON.parse(decryptStr));
}
解密后的参数
示例参数(解密后)
{
"type":"order",
"data": {
"outTradeNo": "202501071111221876466629953572865",
"payOrderNo": "2025010711112218764666299535728651876466630192648193",
"productId": "a32i1aa09",
"productType": "product",
"topicType": null,
"buyerId": "1829469206740008962",
"sellerId": "1829467451708977154",
"affiliateUserId": "1829467451708977155",
"price": 10.00,
"sellerIncome": 9.00,
"affiliateIncome": 0.50,
"status": "0",
"payType": "alipay",
"payTime": "2025-01-07T11:11:30",
"finishTime": "2025-01-07T11:11:31"
}
}
type参数说明(解密后)
当前仅通知订单消息,所以type
字段仅为order
data参数说明(解密后)
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
outTradeNo | String | 是 | 原力推订单号 |
payOrderNo | String | 是 | 支付订单号 |
productId | String | 是 | 订单作品id |
productType | String | 是 | 订单作品类型,product-作品类型,column-专栏类型 会根据平台功能扩展,新增其他类型 |
topicType | String | 选填 | productType为column时必填 |
buyerId | String | 是 | 买方id |
sellerId | 是 | 卖方id | |
sellerId | String | 选填 | 分销用户id 分销订单时必填 |
price | Number | 是 | 订单金额 |
sellerIncome | Number | 是 | |
affiliateIncome | Number | 选填 | 分销用户收入 分销订单时必填 |
status | String | 是 | 订单状态 |
payType | String | 是 | 支付类型:alipay-支付宝,wxpay-微信支付 |
payTime | datetime | 是 | 付款时间 |
finishTime | datetime | 是 | 订单完成时间 |
响应参数(重要)
您在接受到参数之后,要对原力推的Webhook请求进行响应,以便原力推判断是否推送成功。
响应示例
{
"c": 200,
"m": "",
"d": null
}
原力推仅校验响应数据的c
字段,如果c
字段不是 200 ,则认为通知失败。