简介与协议规则
感谢使用 柯达集团。本页是开发者对接文档(V1 / MD5),覆盖:
- 页面跳转支付
submit.php - 服务端接口支付
mapi.php(含 USDT 返回 payurl 选链页) - 异步/同步通知
- 商户与订单查询
api.php?act=...
协议规范(务必遵守)
请求格式:application/x-www-form-urlencoded
返回格式:JSON(页面跳转支付除外,会直接 302/跳转)
签名算法:MD5(结果小写)
字符编码:UTF-8
金额单位:元,最多 2 位小数,如 10.00
常用网关:
- 页面跳转:
https://web-manage-pay-cert.keda918.top/submit.php - API 下单:
https://web-manage-pay-cert.keda918.top/mapi.php - 查询/退款:
https://web-manage-pay-cert.keda918.top/api.php?act=...
商户后台可获取:pid(商户ID)、key(MD5 密钥)。
5 分钟对接流程
- 在商户后台拿到 pid 和 key。
- 选择接入方式:网站用
submit.php;App/后端用mapi.php。 - 按规则生成
sign,提交下单参数(金额、订单号、回调地址等)。 - 用户完成支付后,平台请求你的
notify_url;你验签并返回纯文本success。 - 可选:用
api.php?act=order主动查单兜底,避免漏通知。
USDT 支付说明
支付方式调用值:type=usdt(需后台已开通)。
- money 仍填人民币金额(元),系统按汇率换算 USDT。
- mapi 返回
payurl:用户打开后选择 BSC 或 TRON,再显示收款地址与应付 USDT。 - BSC(建议):不额外加收链上 USDT 手续费。
- TRON(不建议):客户额外承担 1.5 USDT 链上手续费,已计入应付总额。
- 到账后仍走普通异步通知;链上交易哈希可能出现在订单的上游单号字段。
USDT mapi 返回示例:
{
"code": 1,
"trade_no": "2026071315300012345",
"payurl": "https://web-manage-pay-cert.keda918.top/pay/usdt/2026071315300012345/"
}
MD5 签名算法
签名 = 用密钥给参数“盖章”,防止伪造。步骤如下:
- 取出所有非空参数;不要
sign、sign_type。 - 按参数名 ASCII 从小到大排序(a-z)。
- 拼成
a=1&b=2&c=3(值不要 URL 编码)。 sign = md5(拼接字符串 + 商户密钥key),结果小写。
示例(密钥为 KEY):
money=1.00&name=test&out_trade_no=1&pid=1001&type=alipay + KEY → md5 得到 sign
异步通知收到后,用同样规则重算 sign,与通知中的 sign 比对。
支付方式与设备类型
支付方式列表 (type)
下单时的 type 填「调用值」。是否可用以商户后台开通为准。
| 调用值 | 中文描述 | 备注 |
|---|---|---|
alipay |
支付宝 | |
wxpay |
微信支付 | |
usdt |
USDT | 返回 payurl 选链;TRON+1.5U 链费,BSC 无额外链费 |
设备类型列表 (device)
| 调用值 | 中文描述 |
|---|---|
pc | 电脑浏览器 (默认) |
mobile | 手机浏览器 |
qq | 手机 QQ 内置浏览器 |
wechat | 微信内置浏览器 |
alipay | 支付宝客户端 |
jump | 仅返回支付跳转 URL |
1. 页面跳转支付
适用场景:网站收银台。用户点“去支付”后,浏览器跳转到本平台完成付款。
网关地址: https://web-manage-pay-cert.keda918.top/submit.php
请求方式: POST(推荐)或 GET
USDT:type 传 usdt 时,用户进入链选择页(BSC/TRON),再显示收款信息。
| 字段名 / 变量名 | 类型 | 必填 | 描述与示例 |
|---|---|---|---|
商户ID pid |
Int | Yes | 您在该平台的唯一商户标识。示例:1001 |
支付方式 type |
String | No | 未传则自动打开聚合收银台页面。示例:alipay |
商户订单号 out_trade_no |
String | Yes | 需保证您系统内唯一。示例:202x0806151343349 |
异步通知地址 notify_url |
String | Yes | 服务器底层异步回调接收地址。示例:https://xx/notify_url.php |
跳转通知地址 return_url |
String | Yes | 用户支付完毕后前端被动跳回的地址。 |
商品名称 name |
String | Yes | 超 127 字节将自动截断。示例:VIP高级会员 |
商品金额 money |
String | Yes | 单位:元,支持2位小数。示例:100.00 |
扩展参数 param |
String | No | 供商户自定义,回调时将原样返回。 |
签名 sign |
String | Yes | 参考 MD5 签名机制生成的32位验证串。 |
签名类型 sign_type |
String | Yes | 默认必须且仅为 MD5。 |
2. API 接口支付(mapi.php)
适用场景:App / 服务端对接。你的后端用 cURL 请求,拿到 payurl 或二维码内容,再展示给用户。
网关地址: https://web-manage-pay-cert.keda918.top/mapi.php
请求方式: POST
参数与页面跳转支付基本一致,但:
1)type 必填(如 alipay / wxpay / usdt)
2)必须传 clientip = 用户真实 IP(不是你服务器 IP)
3)USDT 会返回 payurl 指向选链页,请引导用户打开该链接
额外必填/常用参数:
| 变量 | 必填 | 说明 |
|---|---|---|
type | 是 | 支付方式,如 usdt |
clientip | 是 | 终端用户 IP |
device | 否 | 默认 pc,见设备类型 |
param | 否 | 透传;可带业务字段 |
JSON 返回字段:
| 返回值变量 | 类型 | 描述 |
|---|---|---|
code | Int | 1 成功,其它失败 |
msg | String | 失败原因 |
trade_no | String | 平台订单号 |
payurl | String | 三选一:让用户打开此链接支付(USDT 为选链页) |
qrcode | String | 三选一:二维码内容,可自行生成二维码 |
urlscheme | String | 三选一:App scheme(如 weixin://) |
payurl / qrcode / urlscheme 只会返回其中一个。
3. 支付结果通知(异步 / 同步)
付款成功后,平台会用 GET 请求你配置的地址:
notify_url:服务器异步通知(必须处理,用于入账)return_url:用户浏览器跳转(仅展示,不能只靠它改订单)
可靠性提示
只信赖 notify_url 改订单状态;务必验签;处理成功后返回纯文本 success(不要 HTML),否则会重试。
| 回调变量 | 说明 |
|---|---|
pid | 商户 ID |
trade_no | 平台订单号 |
out_trade_no | 你的商户订单号 |
type | 支付方式,如 usdt |
name | 商品名称 |
money | 订单金额(元,人民币) |
trade_status | 仅 TRADE_SUCCESS 表示成功 |
param | 下单透传参数 |
sign / sign_type | 验签字段 |
建议处理顺序:验签 → 校验订单号与金额 → 幂等更新本地订单为已支付 → 输出 success。
4. [api.php] 查询商户信息
用途:查余额、商户状态、今日/昨日成功订单数等。
网关: https://web-manage-pay-cert.keda918.top/api.php?act=query&pid={商户ID}&key={商户密钥}
方式:GET
| 参数 | 必填 | 说明 |
|---|---|---|
act=query | 是 | 固定值 |
pid / key | 是 | 商户鉴权 |
返回重点:code=1 成功;含 money 余额、active 状态、orders 总订单、orders_today / orders_lastday 等。
5. [api.php] 结算记录查询
网关: https://web-manage-pay-cert.keda918.top/api.php?act=settle&pid={商户ID}&key={商户密钥}&limit=10&offset=0
方式:GET
limit:条数,默认 10,最大 50offset:偏移,默认 0
成功时 data 为结算记录数组。
6. [api.php] 单个订单查询
用途:主动查单,确认是否已支付(可与异步通知互补,防漏单)。
网关: https://web-manage-pay-cert.keda918.top/api.php?act=order&pid={商户ID}&key={商户密钥}&out_trade_no={商户单号}
方式:GET
trade_no与out_trade_no二选一;都传时以trade_no为准
返回重点:status(1 已支付 / 0 未支付)、money、type、api_trade_no(上游或链上交易号)、buyer 等。
7. [api.php] 批量订单查询
网关: https://web-manage-pay-cert.keda918.top/api.php?act=orders&pid={商户ID}&key={商户密钥}&limit=20&offset=0
方式:GET
limit:默认 10,最大 50offset:偏移量(从第几条开始)status:可选,按状态过滤,如1=已支付
成功返回 count 与 data 订单列表。
8. [api.php] 提交订单退款
前提:管理员开启商户自助退款,且商户打开「订单退款 API」。部分通道(含 USDT)可能不支持原路退款。
网关: https://web-manage-pay-cert.keda918.top/api.php?act=refund
方式:POST
| 参数 | 必填 | 说明 |
|---|---|---|
pid / key | 是 | 商户鉴权 |
trade_no | 二选一 | 平台订单号 |
out_trade_no | 二选一 | 商户订单号 |
money | 是 | 退款金额(元) |
成功/失败以返回 JSON 的 code 与 msg 为准。