商户接入指南 · v3.2 · 54款权益产品 · 零开发即可上线
本页保留旧版说明供历史商户兼容。新商户请统一使用 /sdk/commercial-v2/commercial-v2-sdk.js,完整文档见 统一开发文档。
<div id="merchant-benefit-sdk"></div>
<link rel="stylesheet" href="/sdk/commercial-v2/commercial-v2.css">
<script src="/sdk/commercial-v2/commercial-v2-sdk.js"></script>
<script>
ChinaDaoCommercialV2.init({
merchantId: '11',
container: '#merchant-benefit-sdk',
apiBase: '/prod-api/openapi/v1',
liveMode: true,
merchantMemberId: '商户侧会员ID',
memberOpenId: '微信openId/unionId,可选',
memberMobile: '会员手机号,可选',
memberSource: 'h5'
});
</script>
我的订单正式归属优先级:merchantId + merchantMemberId → merchantId + memberOpenId → merchantId + memberMobile。售后/退款入口已在SDK v2订单详情和售后列表中提供。
在商户网页的 <body> 底部插入一行代码:
<script src="https://你的域名/sdk/sdk.js?merchant_id=你的商户ID"></script>
<script src="https://你的域名/sdk/sdk-polling.js"></script>
<div id="jintu-sdk-root"></div>
刷新页面即可看到产品卡片。无需额外开发。
包含 sdk.js + sdk-polling.js + demo.html + 本指南
⬇ 下载 sdk.js ⬇ 下载 sdk-polling.js ⬇ 下载 demo.html部署到商户服务器任意目录,配置好 Nginx 代理即可
商户将 SDK JS 部署到自己的服务器,一行 <script> 即可渲染完整产品页面。SDK 自动处理:
商户只需做一件事:收款后调支付确认接口。
商户自己开发前端 UI,仅调用后端 API:
| 接口 | 方法 | 说明 |
|---|---|---|
/sdk/public-products | GET | 获取产品列表(含规格/价格/模板) |
/sdk/order-create | POST | 创建订单 → 返回 orderNo |
/sdk/order-detail | GET | 查询订单状态 |
/sdk/order-pay | POST | 支付确认(扣商户余额) |
/sdk/order-list | GET | 订单列表(分页) |
重要 支付不在中国道完成。商户用自己的支付系统(微信/支付宝)向用户收款。
商户在自己支付回调中调用:
// PHP 示例 — 支付成功后回调
$orderNo = $_POST['orderNo']; // SDK创建时返回
$merchantId = '1'; // 商户ID
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
"https://你的域名/prod-api/openapi/v1/sdk/order-pay?merchantId=$merchantId");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'orderNo' => $orderNo,
'merchantId' => intval($merchantId)
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$resp = curl_exec($ch);
curl_close($ch);
// 返回 {"code":200, "data":{"orderStatus":"SUCCESS","deductAmount":"110.00"}}
商户可以监听 SDK 派发的事件来实现自定义逻辑:
| 事件名 | 触发时机 | detail 字段 |
|---|---|---|
jintu-sdk-order-created |
下单成功 | orderNo, productName, amount, merchantId, payUrl |
jintu-sdk-order-status |
状态变更 | orderNo, status, payAmount, message |
// 监听下单 → 弹出支付引导
document.addEventListener('jintu-sdk-order-created', function(e) {
var order = e.detail;
// 跳转到商户自己的支付页面
window.location.href = '/pay?orderNo=' + order.orderNo;
});
// 监听支付成功 → 提示用户
document.addEventListener('jintu-sdk-order-status', function(e) {
if (e.detail.status === 'success') {
alert('支付成功!¥' + e.detail.payAmount);
}
});
通过 URL 参数配置:
| 参数 | 默认值 | 说明 |
|---|---|---|
merchant_id | 1 | 商户ID(必填) |
preview_tpl | card-grid | 模板:card-grid / horizontal-list / carousel / popup |
debug | 0 | 调试模式:1=开启控制台日志 |
示例:sdk.js?merchant_id=1&preview_tpl=carousel&debug=1