API文档

本文档介绍如何调用 洛辰聚合支付系统 接口,请仔细阅读后进行开发对接。

接口说明

接口采用 HTTP 协议,支持 GET 和 POST 请求方式,参数编码格式为 UTF-8。

接口地址

BASE https://mzf.f878.cn

支付方式

支付宝
alipay
微信支付
wxpay
QQ钱包
qqpay
USDT
usdt

Submit 支付请求

页面跳转方式,调用后直接跳转到支付页面,适合网页端对接。

GET POST https://mzf.f878.cn/pay.php/submit

请求参数

参数必填类型说明
pid必填int商户ID
type必填string支付方式
out_trade_no必填string商户订单号,须保证唯一
notify_url必填string异步通知地址
return_url必填string支付后跳转地址
name必填string商品名称
money必填string金额,单位元(如 10.00)
sign必填string签名字符串
sign_type必填string固定值 MD5
sitename选填string网站名称

MAPI 支付请求

返回 JSON 数据,包含支付链接和二维码信息,适合 API 对接或自定义支付页面。

GET POST https://mzf.f878.cn/mapi.php

请求参数

与 Submit 接口参数相同,详见上方表格。

返回示例

{
    "code": 1,
    "msg": "获取成功",
    "trade_no": "YRPay1234520231229120000",
    "price": "10.00",
    "payurl": "https://xxx.com/pay.php/pay?trade_no=xxx",
    "qrcode": "二维码内容或链接",
    "urlscheme": ""
}

返回参数

参数说明
code1 表示成功,-1 表示失败
msg返回信息
trade_no平台订单号
price实际支付金额
payurl支付页面链接
qrcode二维码内容,可用于生成二维码

异步通知

用户支付成功后,系统会向商户设置的 notify_url 发送 GET 请求。

参数说明
pid商户ID
trade_no平台订单号
out_trade_no商户订单号
type支付方式
name商品名称
money订单金额
trade_status交易状态,成功为 TRADE_SUCCESS
sign签名
sign_type签名类型
注意:收到通知后请先验证签名,确认无误后返回 success(小写),否则系统会重复发送通知。

同步跳转

支付完成后,用户浏览器会跳转到 return_url,参数与异步通知相同。

提示:同步跳转仅作为用户体验使用,订单状态请以异步通知为准。

查询商户信息

查询当前商户的账户信息,包括余额、状态等。

GET POST https://mzf.f878.cn/api.php/getuser

请求参数

参数必填说明
pid必填商户ID
key必填商户密钥

返回示例

{
    "code": 1,
    "msg": "获取成功",
    "pid": 1001,
    "username": "testuser",
    "money": "100.00",
    "status": 1,
    "vip_time": "2025-12-31 23:59:59",
    "create_time": "2024-01-01 00:00:00"
}

查询单个订单

根据订单号查询单个订单的详细信息。

GET POST https://mzf.f878.cn/api.php/getorder

请求参数

参数必填说明
pid必填商户ID
key必填商户密钥
out_trade_no二选一商户订单号
trade_no二选一平台订单号

返回示例

{
    "code": 1,
    "msg": "获取成功",
    "trade_no": "YRPay1234520231229120000",
    "out_trade_no": "202312290001",
    "type": "alipay",
    "name": "测试商品",
    "money": "10.00",
    "price": "10.00",
    "status": 1,
    "addtime": "2023-12-29 12:00:00",
    "endtime": "2023-12-29 12:05:00"
}
status 状态说明:0 = 未支付,1 = 已支付

批量查询订单

分页查询商户的订单列表,支持按状态、类型、时间筛选。

GET POST https://mzf.f878.cn/api.php/getorders

请求参数

参数必填说明
pid必填商户ID
key必填商户密钥
page选填页码,默认 1
limit选填每页数量,默认 20,最大 100
status选填订单状态:0=未支付 1=已支付
type选填支付类型:alipay/wxpay/qqpay/usdt
start_time选填开始时间,如 2023-12-01 00:00:00
end_time选填结束时间,如 2023-12-31 23:59:59

返回示例

{
    "code": 1,
    "msg": "获取成功",
    "total": 100,
    "page": 1,
    "limit": 20,
    "list": [
        {
            "trade_no": "YRPay1234520231229120000",
            "out_trade_no": "202312290001",
            "type": "alipay",
            "name": "商品名称",
            "money": "10.00",
            "price": "10.00",
            "status": 1,
            "addtime": "2023-12-29 12:00:00",
            "endtime": "2023-12-29 12:05:00"
        }
    ]
}

PC 监控心跳

用于 PC 客户端维持在线状态,确保监控软件正常运行。

GET POST https://mzf.f878.cn/api.php/pc_monitor

请求参数

参数必填说明
act必填固定值 YRPay_Cron
account必填用户账号
password必填用户密码
wxpay_channel_id必填通道ID
wxpay_login_status必填状态:1=在线,0=离线

返回示例

{
    "code": 1,
    "msg": "Success"
}

PC 监控回调

PC 客户端监控到收款后,调用此接口进行回调通知。

GET POST https://mzf.f878.cn/api.php/pc_monitor

请求参数

参数必填说明
act必填固定值 YRPay_Notify
account必填用户账号
password必填用户密码
money必填实收金额
type选填支付类型

返回示例

{
    "code": 1,
    "msg": "Success"
}

签名算法

签名用于验证请求的合法性,生成步骤如下:

  1. 将所有参数按参数名 ASCII 码从小到大排序(字典序)
  2. 将参数按 key=value 格式用 & 连接成字符串
  3. 在字符串末尾直接拼接商户密钥
  4. 对拼接后的字符串进行 MD5 加密,得到32位小写签名
signsign_type 不参与签名,空值参数也不参与。

代码示例

PHP - 发起支付

<?php
$pid = '1001';            // 商户ID
$key = 'YourSecretKey';   // 商户密钥
$apiUrl = 'https://mzf.f878.cn';

$params = [
    'pid'          => $pid,
    'type'         => 'alipay',
    'out_trade_no' => date('YmdHis') . mt_rand(1000,9999),
    'notify_url'   => 'https://你的域名/notify.php',
    'return_url'   => 'https://你的域名/return.php',
    'name'         => '商品名称',
    'money'        => '10.00',
];

// 生成签名
ksort($params);
$signStr = '';
foreach ($params as $k => $v) {
    if ($v !== '') $signStr .= "{$k}={$v}&";
}
$signStr = rtrim($signStr, '&') . $key;
$params['sign'] = md5($signStr);
$params['sign_type'] = 'MD5';

// 跳转支付
header('Location: ' . $apiUrl . '/pay.php/submit?' . http_build_query($params));
?>

PHP - 异步通知处理

<?php
$key = 'YourSecretKey';

$params = $_GET;
$sign = $params['sign'];
unset($params['sign'], $params['sign_type']);

ksort($params);
$signStr = '';
foreach ($params as $k => $v) {
    if ($v !== '') $signStr .= "{$k}={$v}&";
}
$signStr = rtrim($signStr, '&') . $key;

if (md5($signStr) !== $sign) {
    exit('签名错误');
}

if ($params['trade_status'] !== 'TRADE_SUCCESS') {
    exit('交易未成功');
}

// TODO: 处理订单逻辑
echo 'success';
?>