拉卡拉支付接口分賬功能對接教程——從零到上線
一、什么是拉卡拉分賬功能?
拉卡拉分賬功能,是拉卡拉為平臺型商戶提供的一款自動化資金分配工具。簡單說就是:
例如一個外賣平臺:
↓
├─ 商家 A 分得:25 元(餐費)
├─ 平臺分得:3 元(傭金)
└─ 騎手分得:2 元(配送費)
整個過程對消費者無感,對商戶來說資金自動清分、T+1 到賬。不需要人工對賬,不需要手動轉賬,省時省力還減少差錯。
二、接入前的準備工作
第一步:申請拉卡拉商戶號
聯系本站客服18056517119,提交營業執照、法人身份證、對公賬戶信息,申請成為拉卡拉特約商戶。分賬功能需要在商戶資料中注明"開通分賬結算"。
客服熱線:95016(工作日 8:00-20:00)第二步:獲取 API 密鑰
拉卡拉會提供以下關鍵參數:
| 參數名 | 說明 | 示例值 |
|---|---|---|
merchant_no | 商戶號 | 822290070110001 |
app_id | 應用ID(接入系統標識) | 2022022812345678 |
api_secret | API密鑰(簽名用,保密) | 4f3c8a2b9e1d... |
public_key | 拉卡拉公鑰(驗簽用) | -----BEGIN ... |
api_secret 和私鑰請保存在服務器端,不要明文暴露在客戶端代碼中。第三步:設置回調地址
在拉卡拉商戶后臺配置:
· 支付結果通知地址(notify_url)
· 分賬結果通知地址(split_notify_url)
這兩個 URL 必須是外網可訪問的 HTTPS 地址。
三、分賬業務流程全景圖
以下是標準的拉卡拉分賬對接流程:
│ 用戶在平臺 │ ──→ │ 平臺服務端 │ ──→ │ 拉卡拉API │
│ 下單付款 │ │ 處理分賬 │ │ 執行清算 │
└──────────┘ └──────────┘ └──────────┘
│ │ │
▼ ▼ ▼
支付憑證展示 組裝分賬參數 資金分配到各
給用戶看 請求支付接口 方賬戶
關鍵節點:
用戶下單
平臺調用下單接口(攜帶分賬標記)
拉卡拉凍結分賬金額
用戶支付成功
平臺調用分賬執行接口
資金解凍并分配到各方賬戶
各方收到到賬通知
四、核心接口對接詳解
4.1 下單接口(含分賬標記)
請求地址:POST https://open.lakala.com/api/v3/pay/unifiedorder
數據格式:JSON
請求參數示例(簡化):
| 參數 | 說明 |
|---|---|
split_mark = "Y" | 表示此筆交易需要分賬 |
split_rule[].receiver_no | 必須是已在拉卡拉注冊的子商戶 |
amount 總和 | 須 = total_amount - 平臺自己留存的金額 |
| 最大收款方 | 可分賬給最多 10 個收款方 |
返回示例:
split_mark = "Y",這筆資金會立刻被凍結在拉卡拉監管戶,不會立刻劃撥到平臺賬戶。用戶支付成功后,拉卡拉會異步通知 notify_url。4.2 支付結果通知
用戶支付成功后,拉卡拉會 POST 請求到你的 notify_url:
收到通知后你需要:
驗證簽名(用拉卡拉公鑰驗簽)
驗證 order_no 和金額是否匹配
更新訂單狀態為"已支付"
返回
"SUCCESS"(告訴拉卡拉不用再通知了)
4.3 分賬執行接口
確認訂單 OK 后(例如平臺確認商家已接單),調用此接口執行分賬:
請求地址:POST https://open.lakala.com/api/v3/split/execute
返回結果:
分賬受理成功后,拉卡拉會異步執行資金清分,并將結果通知到 split_notify_url。
4.4 分賬結果通知
分賬執行完成后,拉卡拉通知你的 split_notify_url:
到這里,整筆分賬完成。剩余平臺留存的 500 元會在商戶結算周期自動到賬。
五、關鍵代碼示例(Node.js)
5.1 簽名工具函數
// 拉卡拉 API 簽名算法(SHA256withRSA)
const crypto = require('crypto');
function generateSign(params, privateKey) {
// 1. 參數按字典序排序
const keys = Object.keys(params).sort();
const str = keys
.filter(k => params[k] !== '' && params[k] !== undefined && k !== 'sign')
.map(k => `${k}=${params[k]}`)
.join('&');
// 2. SHA256 簽名
const signer = crypto.createSign('SHA256');
signer.update(str, 'utf8');
return signer.sign(privateKey, 'base64');
}
function verifySign(params, publicKey) {
const sign = params.sign;
const keys = Object.keys(params).sort();
const str = keys
.filter(k => params[k] !== '' && params[k] !== undefined && k !== 'sign')
.map(k => `${k}=${params[k]}`)
.join('&');
const verifier = crypto.createVerify('SHA256');
verifier.update(str, 'utf8');
return verifier.verify(publicKey, sign, 'base64');
}5.2 下單并標記分賬
const axios = require('axios');
async function createOrderWithSplit(orderData) {
const params = {
merchant_no: '822290070110001',
out_trade_no: orderData.orderId,
total_amount: orderData.total, // 單位:分
subject: orderData.subject,
trade_type: 'JSAPI',
notify_url: 'https://api.xxx.com/pay/notify',
split_mark: 'Y',
split_rule: orderData.splits
};
// 簽名
params.sign = generateSign(params, PRIVATE_KEY);
try {
const res = await axios.post(
'https://open.lakala.com/api/v3/pay/unifiedorder',
params
);
return res.data;
} catch (err) {
console.error('下單失敗:', err.response?.data || err.message);
throw err;
}
}5.3 執行分賬
async function executeSplit(outTradeNo, tradeNo, splitRule) {
const params = {
merchant_no: '822290070110001',
out_trade_no: outTradeNo,
trade_no: tradeNo,
split_rule: splitRule,
remark: '訂單確認完成,執行分賬'
};
params.sign = generateSign(params, PRIVATE_KEY);
const res = await axios.post(
'https://open.lakala.com/api/v3/split/execute',
params
);
return res.data;
}5.4 處理支付結果通知
// 接收拉卡拉異步通知
app.post('/pay/notify', (req, res) => {
const data = req.body;
// 1. 驗簽
if (!verifySign(data, LAKALA_PUBLIC_KEY)) {
return res.status(400).send('簽名驗證失敗');
}
// 2. 驗證訂單狀態
if (data.trade_status !== 'TRADE_SUCCESS') {
return res.status(200).send('FAIL');
}
// 3. 更新本地訂單狀態
updateOrderStatus(data.out_trade_no, 'paid');
// 4. 告訴拉卡拉收到通知
res.send('SUCCESS');
});六、常見問題與避坑指南
Q1:分賬金額沒有立刻到接收方賬戶?
正常。分賬執行后狀態為 "PROCESSING",資金實際到賬是 T+1 結算周期。拉卡拉會在每個結算日自動將已分賬金額劃入子商戶賬戶。
Q2:用戶支付后發生了退款,分賬怎么處理?
分賬未執行時:直接全額退款,資金從凍結戶原路返回。
分賬已執行后:需要主動調用「退款分賬接口」收回已分資金,再進行退款。注意:已分賬的資金需要向子商戶追回。
Q3:可以支持部分退款 + 部分保留分賬嗎?
可以。拉卡拉分賬支持「退款重分」模式:退款時傳入新的分賬規則,系統會將剩余金額按新規則分配。
Q4:分賬的接收方(子商戶)怎么注冊?
子商戶也需要在拉卡拉完成入駐審核,獲得子商戶號。子商戶可以是企業、個體工商戶或個人經營者。平臺可以通過拉卡拉提供的「子商戶入駐 API」進行批量進件。
Q5:分賬比例有限制嗎?
每個接收方單筆上限為交易金額的 100%。平臺作為主商戶,暫未設置最低留存比例限制。但建議平臺至少留存 0.01 元以方便對賬。
Q6:分賬記錄如何對賬?
拉卡拉提供「日對賬單下載接口」和「分賬明細查詢接口」。建議每日定時拉取對賬單,與本地訂單做交叉校驗。對賬是保障資金安全最重要的一環,不要省!
七、適用場景分析
| 場景 | 分賬模式 |
|---|---|
| 電商平臺 | 貨款分給商家,傭金留平臺 |
| 外賣平臺 | 餐費→商家 配送費→騎手 傭金→平臺 |
| 連鎖門店 | 總店統一收款,按比例分給各分店 |
| 共享經濟/兼職平臺 | 用戶付款→平臺扣服務費→分給服務方 |
| SaaS平臺 | 代商戶收款→商戶結算→SaaS扣訂閱費 |
| 房產/大宗交易中介 | 下定金→分給各渠道方 |
| 供應鏈金融 | 核心企業收款→分給上下游供應商 |
八、SEO 優化小貼士
本文已優化的 SEO 要素:
中文標題包含核心搜索詞:"拉卡拉支付接口"、"分賬功能"、"對接教程"
H1-H2-H3 標題層次清晰
涵蓋長尾關鍵詞如"平臺型商戶資金分賬"、"子商戶入駐"、"T+1結算"、"退款重分模式"等
提供實際可運行的代碼示例,提高內容原創度和實用性
FAQ 結構覆蓋用戶真實搜索意圖
建議你發布時補充:
在文章頭部加 SEO meta description(不超過120字)
內鏈指向你的產品/服務頁面
文中適當插入配圖(分賬流程圖、API調用截圖等)
文末加一句引導 CTA,如"如需拉卡拉分賬接口技術支持,請聯系xxx"
九、附錄:重要鏈接與參考
拉卡拉開放平臺:https://o.lakala.com
拉卡拉官網:https://www.lakala.com
拉卡拉客服熱線:95016(8:00-20:00)
拉卡拉股票代碼:300773.SZ(深交所上市支付公司)
