原力推 - 用户指南原力推 - 用户指南
返回原力推
返回原力推
  • 用户必读

    • 👏 欢迎来到原力推
    • 🔎 为什么需要原力推
    • 🤖 功能指南
  • 创作者

    • 📝 创作公约
    • 🍣 作品
    • 🍱 合集
    • 🍔 专栏
    • 🗄 创作内容保护
    • 🚧 主页装修
  • 收入

    • 💳 提现和手续费
  • 开发者

    • 🔑 Webhook
  • 使用问题

    • 🔍 搜不到想找的内容
    • 🛠 常见问题
  • 更多

    • 📞 联系我们
    • 👤 用户协议
    • 🔐 隐私政策
    • 🖌 创作者协议

Webhook

此功能会将创作者的订单信息发送到配置的 URL,以满足不同的业务场景。

每当有新的事件发生时,平台会请求开发者配置的 url。

立即开始

需要在创作中心-开发配置中配置通知地址,并开启此功能。

对接规范

为保证数据在传输过程中不被非法篡改,接口数据使用「国密 SM2」进行加密。

开发人员在接收到请求之后,需要返回固定相应参数,以明确表示成功收到回调。

注意

  1. 为保证您的接口安全,请勿泄露开发者控制台的公钥和私钥!
  2. Webhook 接口请求过程中无法携带 Token,请关闭对 Webhook 通知地址的鉴权。
  3. 同一个的异步消息可能会通知多次,因此接收异步消息需做好幂等处理,保障多次接收到同样的消息处理后结果不变。

请求方式

请求方式:HTTP

请求类型:POST

Content-Type:application/json; charset=utf-8

示例参数
{
  "data": "04dc4f73ee53585896972983c3e7b538955c1d8402f27ea647b9bd8e93bd22e7ee95ec785f05c599fd44da52d03efd2abc75b5533ffea00f8faa9b41a61eedcf2c53c44f2d72e6d5db36435e2a2523a68fdc0d98e581fd491acc7deebff1871ab04ae2d3b6f1ae1d1f0cd658d36f080e098cb94e5ccbba01cfeb26b25d853de698d4bddb1d57d567367e03a69acc8a8f489d3ea8fc4afb3ee9a50fd5638e9902cda56a22af9fd8547ef1ca35a5ac7a97575a990f6b6933539a2be2fc5025ba5ea4ef94af7ce91e5da66ae1ae2ed402536710bb6ea9804c003cb0d289f35bbaa3aee37775073cf51cdf86d39e84dad279617bc3693b713e73f6d7b53198cf63023bc1d9a08aa5bb80f6e162e1449ca5c847bb63af4ac37482714d0eb9558af609b7f12adc7d285c8ee2fa20ca281010e4fd477fae78e8a0bce3c86b37e8cf6645c7b72a981cc7033b1ebfa32530dcbc2562a3403c6b408a767a2ebcfd1848815f0fca971d7417f3150dc94ea23afa3cc0a576221136e4cb5d291fdc54cdad591f690dabb7bb9481522a64fca12abc2a00785de68b69811c130fb6c493dacd66e06e293c24a39aaf92d621ebf838b09e01b778cf29c0d47af1c02ece18df7f6f7a4dd32c5de50954493d627412a81b582b9a19db7b4c23377d9c57a58352c6cd94cef97da18a1f80d392b971ab0485adbab76eae54f6f7431752d7cccdb7a662edd0af5bd17bf85aff58ba0f8c2cb36f25f532cb4698101f1190b71231129c5e4aac38c263a3ec30529a6ffad2dc8c36f10c07175b6211a08aacfb9dd65dd26ec497f82547cb63ee6f4a796d31a2279ca1e083034bbff059c4ccc76b69eedc2cb6a78aea8458f14061fea8e69eccdc93f3eba93d68e54aded6d6fd9632f3f56cbeaf11a6bba779a03473a734fc"
}
参数说明
参数名类型是否必填说明
dataString是加密后的参数,请使用国密 SM2 解密后使用

数据解密

参数使用「国密 SM2」算法进行加密,在获取到加密后的 data 之后,请使用开发控制台的私钥进行解密。

解密代码示例

在开发过程中遇到问题,请通过联系我们进行沟通,我们会提供协助。

Java

使用 hutool 提供的工具类进行解密。

public static void main(String[] args) {
    // 加密后的data数据
    String encryptDataStr = "04dc4f73ee53585896972983c3e7b538955c1d8402f27ea647b9bd8e93bd22e7ee95ec785f05c599fd44da52d03efd2abc75b5533ffea00f8faa9b41a61eedcf2c53c44f2d72e6d5db36435e2a2523a68fdc0d98e581fd491acc7deebff1871ab04ae2d3b6f1ae1d1f0cd658d36f080e098cb94e5ccbba01cfeb26b25d853de698d4bddb1d57d567367e03a69acc8a8f489d3ea8fc4afb3ee9a50fd5638e9902cda56a22af9fd8547ef1ca35a5ac7a97575a990f6b6933539a2be2fc5025ba5ea4ef94af7ce91e5da66ae1ae2ed402536710bb6ea9804c003cb0d289f35bbaa3aee37775073cf51cdf86d39e84dad279617bc3693b713e73f6d7b53198cf63023bc1d9a08aa5bb80f6e162e1449ca5c847bb63af4ac37482714d0eb9558af609b7f12adc7d285c8ee2fa20ca281010e4fd477fae78e8a0bce3c86b37e8cf6645c7b72a981cc7033b1ebfa32530dcbc2562a3403c6b408a767a2ebcfd1848815f0fca971d7417f3150dc94ea23afa3cc0a576221136e4cb5d291fdc54cdad591f690dabb7bb9481522a64fca12abc2a00785de68b69811c130fb6c493dacd66e06e293c24a39aaf92d621ebf838b09e01b778cf29c0d47af1c02ece18df7f6f7a4dd32c5de50954493d627412a81b582b9a19db7b4c23377d9c57a58352c6cd94cef97da18a1f80d392b971ab0485adbab76eae54f6f7431752d7cccdb7a662edd0af5bd17bf85aff58ba0f8c2cb36f25f532cb4698101f1190b71231129c5e4aac38c263a3ec30529a6ffad2dc8c36f10c07175b6211a08aacfb9dd65dd26ec497f82547cb63ee6f4a796d31a2279ca1e083034bbff059c4ccc76b69eedc2cb6a78aea8458f14061fea8e69eccdc93f3eba93d68e54aded6d6fd9632f3f56cbeaf11a6bba779a03473a734fc";
    // 开发者私钥
    String privateKey = "0BDB27A77796DEC9AA3E98098D15966BBDCBC7782F48ACC69468854EA3D2967C";
    // 使用Hutool的SM2工具类进行解密
    String decryptStr = SmUtil.sm2Decrypt(encryptDataStr, privateKey);
    // 格式化
    System.out.println(JSON.parse(decryptStr));
}

TypeScript

使用 sm-crypto 进行解密。

// 安装依赖
npm i sm-crypto


import { sm2 } from 'sm-crypto';
// 开发者私钥
const privateKey = '00F4AEB2FE729229331B7A0B0EE4B50D4CC1879872DF55DCC3FB6C8FE6975EE3B0';
/*
 加密后的内容
 注意:
 在解密时,sm-crypto会自动补充前缀 04 ,使密文变成:0404...,所以解密前需要去除密文的前缀 04
 示例:Webhook发送的密文:049e672...,解密使用的密文应为:9e672...
*/
const encryptedData = '9e672f95731aeed82635fa9ea55a80c567460b1466f561b64b833ee75a358948d18989411f528d75ffc1e3bb12fe6983b87ee4d49295bc0c210e389e98d829c6637572bf28d2c844e3a53e6a6b26c809f597e42b31c8b8d94fccf5c659e44ff091d9c9d00d80726443f5a47eaeb61a70e07528d79950a257f248e60672c073f323e48a114b89ad58d92526dcc043b612fec76b2193d7bf8f175efeb9201fcc273bb9df541a148efb90d2a1bf1d518afaa3dd8efc33baa8c95ec86be42b8e4419bfbeb7cadec9ac9dcda8028b89b14f24ed9c288818711bd3dd581f24709a2e21e263c5bf42a845f87774c5975cc21f1e8366e7f99b0da7bf197be547fadc6db595089d1e7ecc4b958dfdad9e9eff70e4d16d3ee1f181a1f575fbea5a07650e49029a195d00f4a02f6c653628ba78c032904c024e452a4a213466011d68976e5fa752251d495e2234dba08a690913eedcc8d3bc5530447bff417460bf864e3f89ab9c1473c5ec80aa7f7297b1acf6157782eaf347065d922d725640962e524723ed324ce37bc25fd77fdbf7c443b719ca048b3d1d000c5195a9ab907eafc1dccfbc931df24c31bbb8f18ee70cf779b2bacd6a381d593d2a9cae99d8ad5663271488c83beee4f78586ab7f94f5cb579fc00dadad90a9ff31de4d2211267009d6f7539baf1a9f7964efbf9bc37b5c1bd9b9d0b3d88d17fbc0764966b1c9054ddde29fb06f7cd5de0f407cc3ab422008346d64516523eff2810744916d23a9ef01187650ce684eef8be1ad4babae208cbd4193a31f3863c47ceba792524236e3158ca6d42180484d6b61463d08b7d93491f10453';
// 解密操作
const decryptedData  = sm2.doDecrypt(encryptedData, privateKey);
console.log('解密后的数据:', decryptedData);

解密后的参数

示例参数(解密后)
{
	"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-07 11:11:30",
		"finishTime": "2025-01-07 11:11:31",
		"remark": "我是订单备注"
	}
}
type 参数说明(解密后)

当前仅通知订单消息,所以type字段仅为order

data 参数说明(解密后)
参数名类型是否必填说明
outTradeNoString是原力推订单号
payOrderNoString是支付订单号
productIdString是订单作品 id
productTypeString是订单作品类型,product-作品类型,column-专栏类型
会根据平台功能扩展,新增其他类型
topicTypeString选填productType 为 column 时必填
buyerIdString是买方 id
sellerIdString是作者 id
affiliateUserIdString选填分销用户 id
分销订单时必填
priceNumber是订单金额
sellerIncomeNumber是作者的收入
affiliateIncomeNumber选填分销用户收入
分销订单时必填
statusString是订单状态
payTypeString是支付类型:alipay-支付宝,wxpay-微信支付
payTimedatetime是付款时间
finishTimedatetime是订单完成时间
remarkString选填订单备注

响应参数(重要)

您在接受到参数之后,要对原力推的 Webhook 请求进行响应,以便原力推判断是否推送成功。

响应示例

{
  "c": 200,
  "m": "",
  "d": null
}

原力推仅校验响应数据的c字段,如果c字段不是 200 ,则认为通知失败。

更新日志

  • 2025-01-23
  1. 完善参数说明
  2. 添加对TypeScript的支持
  3. 修改SM2公钥和私钥为Hex格式(已兼容旧版本,业务不会受到影响)
  • 2025-01-19
  1. 完善参数说明
  2. 添加remark(订单备注)字段
  • 2025-01-13

发布Webhook功能