- 在“支付设置”里点“密钥管理”,点“生成新密钥”。系统会弹出两段字符:
AppKey和AppSecret,记得复制到安全的记事本。 - 打开“回调地址”页面,填入你服务器的 HTTPS 接口,最好加上
/douyin/pay/notify,别忘了在服务器上写好签名校验。 - 把“支付网关域名”复制下来,后面调用 SDK 时要用到。
代码层面:下单&回调
我选的语言是 Node.js,官方 SDK 只要 npm i @douyin/pay,几行代码就搞定。核心代码大概是:
const DouyinPay = require('@douyin/pay');
const client = new DouyinPay({
appKey: 'YOUR_APP_KEY',
appSecret: 'YOUR_APP_SECRET',
gateway: 'https://open.douyin.com/pay'
});
app.post('/order', async (req, res) => {
const order = await client.createOrder({
outOrderNo: `DD${Date.now()}`,
totalAmount: req.body.amount,
subject: '商品名称',
notifyUrl: 'https://yourdomain.com/douyin/pay/notify'
});
res.json({payUrl: order.payUrl});
});
回调那块,我把签名校验写成了中间件,收到抖音的 POST 后,用appSecret做 HMAC‑SHA256,对比 sign 字段,一不匹配直接 403。别忘了把订单状态写进数据库,防止重复回调。
测试与上线
抖音提供了沙箱环境,URL 里多了 sandbox,我先在本地跑了两遍,发现支付成功后订单状态一直是“待支付”,原来是回调 URL 写成了 http,平台直接丢弃。改成 https,一切顺利。正式环境只要把 gateway 换成正式域名,重新生成密钥,提交审核。
整个过程最让我感慨的,是从“找不到文档”到“自己写了注释”,把每一步都写进团队 Wiki,后面新人接手时只要点开链接就能复现。抖音支付不再是遥不可及的黑盒子,而是可以像点外卖一样,几分钟搞定。
- 在“支付设置”里点“密钥管理”,点“生成新密钥”。系统会弹出两段字符:
AppKey和AppSecret,记得复制到安全的记事本。 - 打开“回调地址”页面,填入你服务器的 HTTPS 接口,最好加上
/douyin/pay/notify,别忘了在服务器上写好签名校验。 - 把“支付网关域名”复制下来,后面调用 SDK 时要用到。
代码层面:下单&回调
我选的语言是 Node.js,官方 SDK 只要 npm i @douyin/pay,几行代码就搞定。核心代码大概是:
const DouyinPay = require('@douyin/pay');
const client = new DouyinPay({
appKey: 'YOUR_APP_KEY',
appSecret: 'YOUR_APP_SECRET',
gateway: 'https://open.douyin.com/pay'
});
app.post('/order', async (req, res) => {
const order = await client.createOrder({
outOrderNo: `DD${Date.now()}`,
totalAmount: req.body.amount,
subject: '商品名称',
notifyUrl: 'https://yourdomain.com/douyin/pay/notify'
});
res.json({payUrl: order.payUrl});
});
回调那块,我把签名校验写成了中间件,收到抖音的 POST 后,用appSecret做 HMAC‑SHA256,对比 sign 字段,一不匹配直接 403。别忘了把订单状态写进数据库,防止重复回调。
测试与上线
抖音提供了沙箱环境,URL 里多了 sandbox,我先在本地跑了两遍,发现支付成功后订单状态一直是“待支付”,原来是回调 URL 写成了 http,平台直接丢弃。改成 https,一切顺利。正式环境只要把 gateway 换成正式域名,重新生成密钥,提交审核。
整个过程最让我感慨的,是从“找不到文档”到“自己写了注释”,把每一步都写进团队 Wiki,后面新人接手时只要点开链接就能复现。抖音支付不再是遥不可及的黑盒子,而是可以像点外卖一样,几分钟搞定。
- 在“支付设置”里点“密钥管理”,点“生成新密钥”。系统会弹出两段字符:
AppKey和AppSecret,记得复制到安全的记事本。 - 打开“回调地址”页面,填入你服务器的 HTTPS 接口,最好加上
/douyin/pay/notify,别忘了在服务器上写好签名校验。 - 把“支付网关域名”复制下来,后面调用 SDK 时要用到。
代码层面:下单&回调
我选的语言是 Node.js,官方 SDK 只要 npm i @douyin/pay,几行代码就搞定。核心代码大概是:
const DouyinPay = require('@douyin/pay');
const client = new DouyinPay({
appKey: 'YOUR_APP_KEY',
appSecret: 'YOUR_APP_SECRET',
gateway: 'https://open.douyin.com/pay'
});
app.post('/order', async (req, res) => {
const order = await client.createOrder({
outOrderNo: `DD${Date.now()}`,
totalAmount: req.body.amount,
subject: '商品名称',
notifyUrl: 'https://yourdomain.com/douyin/pay/notify'
});
res.json({payUrl: order.payUrl});
});
回调那块,我把签名校验写成了中间件,收到抖音的 POST 后,用appSecret做 HMAC‑SHA256,对比 sign 字段,一不匹配直接 403。别忘了把订单状态写进数据库,防止重复回调。
测试与上线
抖音提供了沙箱环境,URL 里多了 sandbox,我先在本地跑了两遍,发现支付成功后订单状态一直是“待支付”,原来是回调 URL 写成了 http,平台直接丢弃。改成 https,一切顺利。正式环境只要把 gateway 换成正式域名,重新生成密钥,提交审核。
整个过程最让我感慨的,是从“找不到文档”到“自己写了注释”,把每一步都写进团队 Wiki,后面新人接手时只要点开链接就能复现。抖音支付不再是遥不可及的黑盒子,而是可以像点外卖一样,几分钟搞定。
说真的,第一次把抖音支付塞进自家小程序,我那叫一个心惊肉跳——好像在给自己装上了个会偷钱的黑匣子。后来摸索出一套“从零到上线”的实操流程,决定把这段血泪史分享给和我一样想把流量变现的朋友们。
准备工作:账号与资质
先把抖音企业号升级到企业认证,别小看这一步,平台会在后台弹窗提醒你“请完善企业信息”,填错了公司全称或者营业执照照片不清晰,后面所有接口都卡死。我的经验是:把营业执照拍成PDF,压到200KB以下,直接拖进去,系统几秒钟就给绿灯。

申请支付产品
登录抖音开放平台,左侧导航点“支付产品”,点进去会出现几款模板:普通支付、分账、预授权。我当时只想卖点小商品,选了普通支付,点“立即申请”。后台会让你填“收款主体”和“结算账户”。结算账户一定要是企业对公卡,个人卡会在审核时被拒。
获取接口密钥
AppKey和AppSecret,记得复制到安全的记事本。/douyin/pay/notify,别忘了在服务器上写好签名校验。代码层面:下单&回调
我选的语言是 Node.js,官方 SDK 只要 npm i @douyin/pay,几行代码就搞定。核心代码大概是:
const DouyinPay = require('@douyin/pay');
const client = new DouyinPay({
appKey: 'YOUR_APP_KEY',
appSecret: 'YOUR_APP_SECRET',
gateway: 'https://open.douyin.com/pay'
});
app.post('/order', async (req, res) => {
const order = await client.createOrder({
outOrderNo: `DD${Date.now()}`,
totalAmount: req.body.amount,
subject: '商品名称',
notifyUrl: 'https://yourdomain.com/douyin/pay/notify'
});
res.json({payUrl: order.payUrl});
});
回调那块,我把签名校验写成了中间件,收到抖音的 POST 后,用appSecret做 HMAC‑SHA256,对比 sign 字段,一不匹配直接 403。别忘了把订单状态写进数据库,防止重复回调。
测试与上线
抖音提供了沙箱环境,URL 里多了 sandbox,我先在本地跑了两遍,发现支付成功后订单状态一直是“待支付”,原来是回调 URL 写成了 http,平台直接丢弃。改成 https,一切顺利。正式环境只要把 gateway 换成正式域名,重新生成密钥,提交审核。
整个过程最让我感慨的,是从“找不到文档”到“自己写了注释”,把每一步都写进团队 Wiki,后面新人接手时只要点开链接就能复现。抖音支付不再是遥不可及的黑盒子,而是可以像点外卖一样,几分钟搞定。
- 在“支付设置”里点“密钥管理”,点“生成新密钥”。系统会弹出两段字符:
AppKey和AppSecret,记得复制到安全的记事本。 - 打开“回调地址”页面,填入你服务器的 HTTPS 接口,最好加上
/douyin/pay/notify,别忘了在服务器上写好签名校验。 - 把“支付网关域名”复制下来,后面调用 SDK 时要用到。
代码层面:下单&回调
我选的语言是 Node.js,官方 SDK 只要 npm i @douyin/pay,几行代码就搞定。核心代码大概是:
const DouyinPay = require('@douyin/pay');
const client = new DouyinPay({
appKey: 'YOUR_APP_KEY',
appSecret: 'YOUR_APP_SECRET',
gateway: 'https://open.douyin.com/pay'
});
app.post('/order', async (req, res) => {
const order = await client.createOrder({
outOrderNo: `DD${Date.now()}`,
totalAmount: req.body.amount,
subject: '商品名称',
notifyUrl: 'https://yourdomain.com/douyin/pay/notify'
});
res.json({payUrl: order.payUrl});
});
回调那块,我把签名校验写成了中间件,收到抖音的 POST 后,用appSecret做 HMAC‑SHA256,对比 sign 字段,一不匹配直接 403。别忘了把订单状态写进数据库,防止重复回调。
测试与上线
抖音提供了沙箱环境,URL 里多了 sandbox,我先在本地跑了两遍,发现支付成功后订单状态一直是“待支付”,原来是回调 URL 写成了 http,平台直接丢弃。改成 https,一切顺利。正式环境只要把 gateway 换成正式域名,重新生成密钥,提交审核。
整个过程最让我感慨的,是从“找不到文档”到“自己写了注释”,把每一步都写进团队 Wiki,后面新人接手时只要点开链接就能复现。抖音支付不再是遥不可及的黑盒子,而是可以像点外卖一样,几分钟搞定。
- 在“支付设置”里点“密钥管理”,点“生成新密钥”。系统会弹出两段字符:
AppKey和AppSecret,记得复制到安全的记事本。 - 打开“回调地址”页面,填入你服务器的 HTTPS 接口,最好加上
/douyin/pay/notify,别忘了在服务器上写好签名校验。 - 把“支付网关域名”复制下来,后面调用 SDK 时要用到。
代码层面:下单&回调
我选的语言是 Node.js,官方 SDK 只要 npm i @douyin/pay,几行代码就搞定。核心代码大概是:
const DouyinPay = require('@douyin/pay');
const client = new DouyinPay({
appKey: 'YOUR_APP_KEY',
appSecret: 'YOUR_APP_SECRET',
gateway: 'https://open.douyin.com/pay'
});
app.post('/order', async (req, res) => {
const order = await client.createOrder({
outOrderNo: `DD${Date.now()}`,
totalAmount: req.body.amount,
subject: '商品名称',
notifyUrl: 'https://yourdomain.com/douyin/pay/notify'
});
res.json({payUrl: order.payUrl});
});
回调那块,我把签名校验写成了中间件,收到抖音的 POST 后,用appSecret做 HMAC‑SHA256,对比 sign 字段,一不匹配直接 403。别忘了把订单状态写进数据库,防止重复回调。
测试与上线
抖音提供了沙箱环境,URL 里多了 sandbox,我先在本地跑了两遍,发现支付成功后订单状态一直是“待支付”,原来是回调 URL 写成了 http,平台直接丢弃。改成 https,一切顺利。正式环境只要把 gateway 换成正式域名,重新生成密钥,提交审核。
整个过程最让我感慨的,是从“找不到文档”到“自己写了注释”,把每一步都写进团队 Wiki,后面新人接手时只要点开链接就能复现。抖音支付不再是遥不可及的黑盒子,而是可以像点外卖一样,几分钟搞定。


评论(0)