
战略品牌合作方
VMRACK.NET | 让Dujiao-Next部署更简单
⚡️官方合作闪购款,仅需76刀/年,三网优化线路,助力您业务起飞,支持:支付宝/paypal/USDT。点我享低价独家闪购!🎉







更新时间:2026-06-14
目标只有两个:
先确认你的支付回调入口可以被公网访问。
系统只需要一个域名,例如 shop.example.com。
前台、后台与 API 都由同一个服务在同一域名下提供:前台在 /,后台在 web.admin_path, API 在 /api。回调地址填这个域名即可,不需要额外域名。
常用地址示例:
https://shop.example.com/api/v1/payments/callbackhttps://shop.example.com/pay进入:
后台 → 支付管理 → 支付渠道 → 新建渠道每加一个渠道,记得做三件事:
常用必填:
建议:
notify_url 填:https://shop.example.com/api/v1/payments/callbackreturn_url 填:https://shop.example.com/pay常用必填:
client_idclient_secretbase_url(沙箱或正式环境)return_urlcancel_url建议:
return_url 和 cancel_url 都填:https://shop.example.com/paywebhook_id 建议填写(用于校验)常用必填:
secret_keywebhook_secretsuccess_urlcancel_urlapi_base_url建议:
success_url 与 cancel_url 都填:https://shop.example.com/pay常用必填:
app_id建议:
notify_url 填:https://shop.example.com/api/v1/payments/callbackreturn_url:https://shop.example.com/pay常用必填:
appidmchidapi_v3_key建议:
notify_url 填:https://shop.example.com/api/v1/payments/callbackh5_redirect_url:https://shop.example.com/pay常用必填:
常用选填:
建议:
notify_url 填:https://shop.example.com/api/v1/payments/callbackredirect_url 填:https://shop.example.com/pay常用必填:
常用选填:
建议:
notify_url 填:https://shop.example.com/api/v1/payments/callbackreturn_url 填:https://shop.example.com/pay注意:epusdt 与 BEpusdt 是两个独立项目,配置字段与签名密钥互不通用,请勿混用。
常用必填:
https://epusdt.example.com)usdt)tron)常用选填:
cny)建议:
notify_url 填:https://shop.example.com/api/v1/payments/callbackreturn_url 填:https://shop.example.com/payGET <gateway_url>/payments/gmpay/v1/supported-assets常用必填:
https://api.okaypay.me/shop)常用选填:
USDT 或 TRX,默认 USDT)1)建议:
callback_url 填:https://shop.example.com/api/v1/payments/callbackreturn_url 填:https://shop.example.com/payDujiaoPay 是生态官方支付方式,后台新增渠道时建议优先选择
DujiaoPay渠道类型。
常用必填:
https://www.dujiaopay.com)token_id,如 tron-usdt、base-usdc)常用选填:
建议:
success_url 和 cancel_url 都填:https://shop.example.com/payhttps://shop.example.com/api/v1/payments/webhook/dujiaopay?channel_id=你的渠道IDhttps://shop.example.com/api/v1/payments/webhook/dujiaopay,系统会按启用的 DujiaoPay 渠道逐个用 webhook_secret 验签匹配qr 时,前台会展示钱包二维码、钱包地址、链上应付数量、链和支付币种;交互模式选择 redirect 时,用户会跳转到 DujiaoPay 收银台每个支付渠道可独立配置手续费,用于核算实际到账金额:
| 字段 | 说明 |
|---|---|
| 手续费率(fee_rate) | 百分比手续费,如填 2.00 表示 2% |
| 固定手续费(fixed_fee) | 每笔固定扣除的金额 |
手续费仅用于后台统计和利润计算,不会增加用户的支付金额。
创建支付渠道时需选择交互模式,不同模式决定用户的支付体验:
| 模式 | 标识 | 说明 |
|---|---|---|
| 二维码 | qr | 生成支付二维码,用户扫码支付(适合微信/支付宝等) |
| 跳转 | redirect | 跳转到支付平台页面完成支付(适合 PayPal/Stripe 等) |
同一支付类型可创建多个渠道使用不同交互模式。例如支付宝可同时配置二维码和跳转模式。
适用:
填写地址:
POST https://shop.example.com/api/v1/payments/callback填写地址:
POST https://shop.example.com/api/v1/payments/webhook/paypal?channel_id=你的渠道ID说明:
channel_id 在当前实现中必须带上。填写地址:
POST https://shop.example.com/api/v1/payments/webhook/stripe?channel_id=你的渠道ID说明:
channel_id 建议带上,多个 Stripe 渠道时更稳妥。填写地址:
POST https://shop.example.com/api/v1/payments/webhook/dujiaopay?channel_id=你的渠道ID说明:
channel_id 建议带上,多个 DujiaoPay 渠道时更稳妥。channel_id,系统会按启用的 DujiaoPay 渠道逐个用 webhook_secret 验签匹配。由于本项目是开源的,默认的回调路径(如 /api/v1/payments/callback)是公开可知的,存在被恶意撞库或模拟回调的风险。你可以在后台自定义回调路由路径,隐藏默认路径来增强安全性。
进入:
后台 → 系统设置 → 回调路由可自定义以下 5 条回调路径:
| 回调类型 | 默认路径 | 说明 |
|---|---|---|
| 支付回调 | /api/v1/payments/callback | 支付宝/微信/易支付/TokenPay/BEpusdt/epusdt/OKPay 通用 |
| DujiaoPay Webhook | /api/v1/payments/webhook/dujiaopay | DujiaoPay 专用 |
| PayPal Webhook | /api/v1/payments/webhook/paypal | PayPal 专用 |
| Stripe Webhook | /api/v1/payments/webhook/stripe | Stripe 专用 |
| 上游回调 | /api/v1/upstream/callback | 上游供货商回调 |
留空表示继续使用默认路径。
/api/ 开头,例如:/api/my-secret-path/pay-notify/api/v1/admin/...、/api/v1/public/...)重要
自定义回调路由后,你必须同步更新各支付渠道配置中的异步通知地址(notify_url / callback_url / Webhook URL),将其中的路径部分替换为你设置的自定义路径。
例如,你将支付回调路由改为 /api/my-secret/pay-notify,则:
https://shop.example.com/api/v1/payments/callbackhttps://shop.example.com/api/my-secret/pay-notifyDujiaoPay 使用单独的 Webhook 路由。如果你将 DujiaoPay Webhook 路由改为 /api/my-secret/dujiaopay-webhook,则 DujiaoPay 控制台里也要同步改成:
https://shop.example.com/api/my-secret/dujiaopay-webhook?channel_id=你的渠道ID否则支付平台的回调通知将无法到达你的服务器。
按这个顺序测一次:
https://shop.example.com/pay优先检查:
notify_url / callback_url / Webhook URL 已同步更新)优先检查:
return_url / success_url / cancel_url / redirect_url 是否统一填成 /pay优先处理:
channel_id