登录商户中心后可查看 PID / API Key;公开页示例仅作格式演示。
application/x-www-form-urlencodedJSON(页面跳转支付除外)MD5UTF-8https://pay.rongtkj.cn/index.php/submithttps://pay.rongtkj.cn/index.php/mapihttps://pay.rongtkj.cn/index.php/api兼容易支付协议。支付成功后以异步通知为准;同步跳转仅作展示。
sign、sign_type 和空值不参与签名。a=b&c=d&e=f,参数值不要进行 urlencode。sign = md5(a=b&c=d&e=f + KEY)(注意:+ 为各语言的拼接符,不是字符),md5 结果为小写。sign 与 sign_type=MD5。function epay_sign(array $params, string $key): string
{
$data = [];
foreach ($params as $k => $v) {
if ($v === '' || $v === null || $k === 'sign' || $k === 'sign_type') {
continue;
}
if (is_array($v)) {
continue;
}
$data[$k] = (string) $v;
}
ksort($data);
$parts = [];
foreach ($data as $k => $v) {
$parts[] = $k . '=' . $v;
}
// sign = md5( a=b&c=d&e=f + KEY ),+ 为拼接,不是字符
return md5(implode('&', $parts) . $key);
}收到异步通知或同步跳转参数后,按同样规则计算本地签名,与传入的 sign 比较(建议 hash_equals)。验签通过且 trade_status=TRADE_SUCCESS 后再更新业务订单。
支付宝 alipay
微信支付 wxpay
QQ钱包 qqpay
云闪付/银联 bank
京东支付 jdpay
PayPal paypal
抖音支付 douyinpay
数字人民币 ecny
财付通 tenpay| 调用值 | 描述 |
|---|---|
alipay | 支付宝 |
wxpay | 微信支付 |
qqpay | QQ钱包 |
bank | 云闪付/银联 |
jdpay | 京东支付 |
paypal | PayPal |
douyinpay | 抖音支付 |
ecny | 数字人民币 |
tenpay | 财付通 |
实际可用方式以后台已启用通道为准,也可调用 api.php?act=types 查询。
此接口可用于用户前台直接发起支付,使用 form 表单跳转或拼接成 url 跳转。
https://pay.rongtkj.cn/index.php/submit
POST 或 GET(推荐 POST,不容易被劫持或屏蔽)
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户ID | pid | 是 | Int | 1001 | |
| 支付方式 | type | 否 | String | alipay | 不传则跳转收银台自选,见 支付方式列表 |
| 商户订单号 | out_trade_no | 是 | String | 20160806151343349 | 商户系统内部唯一 |
| 异步通知地址 | notify_url | 是 | String | https://www.pay.com/notify.php | 服务器异步通知地址(公网) |
| 跳转通知地址 | return_url | 否 | String | https://www.pay.com/return.php | 页面跳转通知地址 |
| 商品名称 | name | 是 | String | VIP会员 | 超过 127 字节会自动截取 |
| 商品金额 | money | 是 | String | 1.00 | 单位:元,最大 2 位小数 |
| 用户IP | clientip | 否 | String | 192.168.1.100 | 建议传入发起支付的用户 IP |
| 设备类型 | device | 否 | String | pc | 见 设备类型列表;公众号支付传 jsapi 并带 openid |
| 用户Openid | openid | 否 | String | 微信 JSAPI 时必传 | |
| 签名字符串 | sign | 是 | String | 见 签名规则 | |
| 签名类型 | sign_type | 是 | String | MD5 | 默认为 MD5 |
{
"pid": "1001",
"type": "alipay",
"out_trade_no": "T20260805190256",
"notify_url": "https:\/\/pay.rongtkj.cn\/index.php\/notify_demo",
"return_url": "https:\/\/pay.rongtkj.cn\/index.php\/merchant\/order",
"name": "VIP会员",
"money": "1.00",
"sign": "签名后填入",
"sign_type": "MD5"
}此接口可用于服务器后端发起支付请求,会返回支付二维码链接或支付跳转 url。
https://pay.rongtkj.cn/index.php/mapi
POST
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户ID | pid | 是 | Int | 1001 | |
| 支付方式 | type | 是 | String | alipay | 见 支付方式列表 |
| 商户订单号 | out_trade_no | 是 | String | 20160806151343349 | |
| 异步通知地址 | notify_url | 是 | String | https://www.pay.com/notify.php | |
| 跳转通知地址 | return_url | 否 | String | https://www.pay.com/return.php | |
| 商品名称 | name | 是 | String | VIP会员 | 超过 127 字节会自动截取 |
| 商品金额 | money | 是 | String | 1.00 | 单位:元,最大 2 位小数 |
| 用户IP地址 | clientip | 否 | String | 192.168.1.100 | 强烈建议传入 |
| 设备类型 | device | 否 | String | pc | 默认 qrcode;见 设备类型列表 |
| 用户Openid | openid | 否 | String | device=jsapi 时必传 | |
| 签名字符串 | sign | 是 | String | 见 签名规则 | |
| 签名类型 | sign_type | 是 | String | MD5 | 默认为 MD5 |
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 返回状态码 | code | Int | 1 | 1 为成功,其它值为失败 |
| 返回信息 | msg | String | 失败时返回原因 | |
| 订单号 | trade_no | String | 20160806151343349 | 平台支付订单号 |
| 支付跳转url | payurl | String | 若返回则直接跳转该 url 支付 | |
| 二维码链接 | qrcode | String | 若返回则根据该内容生成二维码 | |
| 小程序跳转url | urlscheme | String | 若返回可用 js 跳转发起小程序支付 | |
| JSAPI参数 | jsapi / payinfo | Object/String | 微信公众号/JSAPI 时返回调起参数 |
注:payurl、qrcode、urlscheme 通常只会有一个主要可用;JSAPI 场景请使用 jsapi/payinfo。
{
"pid": "1001",
"type": "alipay",
"out_trade_no": "T20260805190256",
"notify_url": "https:\/\/pay.rongtkj.cn\/index.php\/notify_demo",
"return_url": "https:\/\/pay.rongtkj.cn\/index.php\/merchant\/order",
"name": "VIP会员",
"money": "1.00",
"sign": "签名后填入",
"sign_type": "MD5",
"clientip": "192.168.1.100",
"device": "pc"
}{
"code": 1,
"msg": "success",
"trade_no": "平台订单号",
"payurl": "支付跳转链接",
"qrcode": "二维码内容",
"urlscheme": ""
}https://pay.rongtkj.cn/index.php/api?act=order
GET 或 POST
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 操作类型 | act | 是 | String | order | 此 API 固定值 |
| 商户ID | pid | 是 | Int | 1001 | |
| 系统订单号 | trade_no | 选择 | String | 与商户订单号二选一 | |
| 商户订单号 | out_trade_no | 选择 | String | 20160806151343349 | 与系统订单号二选一,都传以 trade_no 为准 |
| 签名字符串 | sign | 是 | String | 签名含 act | |
| 签名类型 | sign_type | 是 | String | MD5 |
{
"act": "order",
"pid": "1001",
"out_trade_no": "T20260805151343349"
}{
"code": 1,
"msg": "succ",
"trade_no": "平台订单号",
"out_trade_no": "商户订单号",
"api_trade_no": "上游订单号",
"type": "alipay",
"pid": 1001,
"addtime": "2026-08-05 12:00:00",
"endtime": "2026-08-05 12:01:00",
"name": "VIP会员",
"money": "1.00",
"status": 1,
"refund_money": "0.00"
}status:0 待支付,1 已支付,2 已退款,3 已关闭。
通知类型:服务器异步通知(notify_url)、页面跳转通知(return_url)
异步通知默认 POST;同步跳转为浏览器 GET 跳转(参数在 querystring)。
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户ID | pid | 是 | Int | 1001 | |
| 平台订单号 | trade_no | 是 | String | 聚合支付平台订单号 | |
| 商户订单号 | out_trade_no | 是 | String | 商户系统内部订单号 | |
| 支付方式 | type | 是 | String | alipay | 见支付方式列表 |
| 商品名称 | name | 是 | String | VIP会员 | |
| 商品金额 | money | 是 | String | 1.00 | |
| 支付状态 | trade_status | 是 | String | TRADE_SUCCESS | 只有 TRADE_SUCCESS 是成功 |
| 签名字符串 | sign | 是 | String | 见签名规则 | |
| 签名类型 | sign_type | 是 | String | MD5 |
收到异步通知后,需返回纯文本 success 表示已接收。必须验签;不能只靠 return_url 更新订单。
<?php
$key = '你的API_KEY';
$params = $_GET ?: $_POST;
$sign = $params['sign'] ?? '';
unset($params['sign'], $params['sign_type']);
ksort($params);
$parts = [];
foreach ($params as $k => $v) {
if ($v === '' || $v === null) continue;
$parts[] = $k . '=' . $v;
}
$mysign = md5(implode('&', $parts) . $key);
if (!hash_equals($mysign, strtolower((string) $sign))) {
exit('fail');
}
if (($params['trade_status'] ?? '') === 'TRADE_SUCCESS') {
// TODO: 幂等更新业务订单
}
echo 'success';调用该接口发起订单退款(需商户与通道支持上游退款)。
https://pay.rongtkj.cn/index.php/api?act=refund
POST(也支持 GET)
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 操作类型 | act | 是 | String | refund | |
| 商户ID | pid | 是 | Int | 1001 | |
| 平台订单号 | trade_no | 特殊可选 | String | 与商户订单号二选一 | |
| 商户订单号 | out_trade_no | 特殊可选 | String | 都传以 trade_no 为准 | |
| 退款金额 | money | 是 | String | 1.00 | 支持部分退;少数通道需与原单一致 |
| 退款原因 | reason | 否 | String | 用户申请 | |
| 签名 / 类型 | sign / sign_type | 是 | String | MD5 |
{
"code": 1,
"msg": "退款成功",
"out_refund_no": "退款单号",
"money": "1.00"
}全额退完后订单 status=2。查单返回 refund_money 字段。
https://pay.rongtkj.cn/index.php/api?act=query
| 字段名 | 变量名 | 必填 | 描述 |
|---|---|---|---|
| 操作类型 | act | 是 | 固定 query |
| 商户ID | pid | 是 | |
| 签名 | sign / sign_type | 是 | MD5 签名 |
code、pid、active(1正常/0封禁)、money(余额)、结算账号姓名等。
https://pay.rongtkj.cn/index.php/api?act=orders
| 字段名 | 变量名 | 必填 | 描述 |
|---|---|---|---|
| 操作类型 | act | 是 | 固定 orders |
| 商户ID | pid | 是 | |
| 数量 | limit | 否 | 默认 20,最大 50 |
| 页码 | page | 否 | 默认 1 |
| 签名 | sign / sign_type | 是 |
成功返回 data 为订单数组。
https://pay.rongtkj.cn/index.php/api?act=settle,参数:pid、money、sign。成功返回结算单 id。
https://pay.rongtkj.cn/index.php/api?act=settlelist(兼容 act=settlements),参数:pid、sign,可选 limit。成功返回 data 列表。
| 调用值 | 描述 |
|---|---|
pc | 电脑浏览器(submit 默认) |
mobile | 手机浏览器 / H5 |
qrcode | 扫码(mapi 默认) |
jsapi | 微信公众号 / JSAPI(需传 openid) |
wechat | 微信内浏览器 |
alipay | 支付宝客户端 |
qq | 手机 QQ 内浏览器 |
jump | 仅返回支付跳转 url |
$params = [
'pid' => '1001',
'type' => 'alipay',
'out_trade_no' => date('YmdHis') . mt_rand(1000,9999),
'notify_url' => 'https://你的网站/notify.php',
'return_url' => 'https://你的网站/return.php',
'name' => 'VIP会员',
'money' => '1.00',
];
$params['sign'] = epay_sign($params, '你的KEY');
$params['sign_type'] = 'MD5';
header('Location: https://pay.rongtkj.cn/index.php/submit?' . http_build_query($params));
exit;商户中心「测试支付」可直接发起测试订单。演示回调地址:/notify_demo(返回 success)。
| act | 说明 |
|---|---|
order | 查询单笔订单 |
orders | 订单列表 |
query | 商户信息/余额 |
settle | 申请提现 |
settlelist | 提现记录 |
types | 可用支付方式 |
refund | 订单退款 |