你当前的浏览器版本过低,请您升级至IE9以上版本,以达到最佳效果,谢谢!X
TOP

一、协议规范

请求数据格式application/x-www-form-urlencoded(POST)
响应数据格式JSON
签名算法MD5(默认)/ RSA
字符编码UTF-8
时间戳要求10 位 Unix 时间戳,误差不超过 300 秒

二、页面跳转支付

把用户浏览器重定向到支付页面,用户在支付页扫码付款,完成后跳回商户网站。

URL 地址:https://www.zhongnianfu.com/submit.php

请求方式:POST 或 GET

请求参数说明:

字段名变量名必填类型示例值描述
商户IDpidInt1000
支付方式typeStringalipay支付方式列表
商户订单号out_trade_noStringORDER20260629001字母数字下划线横线竖线
异步通知地址notify_urlStringhttps://your-site.com/notify.php服务器异步通知
跳转通知地址return_urlStringhttps://your-site.com/return.php支付完成跳转地址
商品名称nameString测试商品超过127字节自动截断
商品金额moneyString0.01单位:元,最多2位小数
业务扩展参数paramString支付后原样返回
时间戳timestampString172120607210位整数,单位秒
签名字符串signString签名规则
签名类型sign_typeStringMD5默认MD5

用户浏览器会被重定向到支付页面,支付完成后跳回 return_url。

PHP 示例:

<?php
$params = [
    'pid' => '1000',
    'type' => 'alipay',
    'out_trade_no' => 'ORDER' . date('YmdHis'),
    'notify_url' => 'https://your-site.com/notify.php',
    'return_url' => 'https://your-site.com/return.php',
    'name' => '测试商品',
    'money' => '0.01',
    'timestamp' => (string)time(),
];
$key = 'YOUR_MERCHANT_KEY';
ksort($params);
$sign_str = '';
foreach ($params as $k => $v) { $sign_str .= $k . '=' . $v . '&'; }
$sign_str = rtrim($sign_str, '&') . $key;
$params['sign'] = md5($sign_str);
$params['sign_type'] = 'MD5';
header('Location: https://www.zhongnianfu.com/submit.php?' . http_build_query($params));

三、API 统一下单

服务器端发起支付请求,返回支付二维码链接或跳转 URL,适合程序化对接。

URL 地址:https://www.zhongnianfu.com/mapi.phphttps://www.zhongnianfu.com/api/pay/create

请求方式:POST

请求参数说明:

字段名变量名必填类型示例值描述
商户IDpidInt1000
接口类型methodStringwebweb/jump/jsapi/app/scan/applet
支付方式typeStringalipay支付方式列表
商户订单号out_trade_noStringORDER20260629001
异步通知地址notify_urlStringhttps://your-site.com/notify.php
跳转通知地址return_urlStringhttps://your-site.com/return.phpAPI模式下不强制要求
商品名称nameString测试商品
商品金额moneyString0.01单位:元
用户IP地址clientipString192.168.1.100用户发起支付的IP
设备类型deviceStringpcpc/mobile/wechat/alipay/qq
业务扩展参数paramString支付后原样返回
被扫授权码auth_codeString仅 method=scan 时需要
用户Openidsub_openidString仅 method=jsapi 时需要
应用AppIdsub_appidString仅JSAPI微信支付时需要
时间戳timestampString172120607210位整数,单位秒
签名字符串signString签名规则
签名类型sign_typeStringMD5默认MD5

返回参数(JSON):

字段名变量名类型示例值描述
返回状态码codeInt00=成功,其他=失败
错误信息msgString失败时返回原因
平台订单号trade_noString2026062520334130268
发起支付类型pay_typeStringqrcodejump/qrcode/jsapi/app/scan/html
发起支付参数pay_infoStringweixin://wxpay/bizpayurl?pr=xxx根据pay_type不同内容也不同
时间戳timestampString响应时间戳
签名字符串signStringRSA签名,用平台公钥验签
签名类型sign_typeStringRSA固定RSA

响应中的 sign 使用平台 RSA 私钥签名,商户需用平台公钥验签。pay_type=qrcode 时 pay_info 为二维码内容,pay_type=jump 时直接跳转。

PHP 示例:

<?php
$params = [
    'pid' => '1000',
    'method' => 'web',
    'type' => 'alipay',
    'out_trade_no' => 'ORDER' . date('YmdHis'),
    'notify_url' => 'https://your-site.com/notify.php',
    'name' => '测试商品',
    'money' => '0.01',
    'clientip' => $_SERVER['REMOTE_ADDR'],
    'device' => 'pc',
    'timestamp' => (string)time(),
];
$key = 'YOUR_MERCHANT_KEY';
ksort($params);
$sign_str = '';
foreach ($params as $k => $v) { $sign_str .= $k . '=' . $v . '&'; }
$sign_str = rtrim($sign_str, '&') . $key;
$params['sign'] = md5($sign_str);
$params['sign_type'] = 'MD5';
$ch = curl_init('https://www.zhongnianfu.com/mapi.php');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
// $response['pay_type'] 决定前端展示方式
// $response['pay_info'] 为二维码内容或跳转URL

四、支付结果通知

平台向商户 notify_url 发送 GET 请求,通知支付结果。

字段名变量名类型描述
商户IDpidInt
平台订单号trade_noString
商户订单号out_trade_noString
接口订单号api_trade_noString微信/支付宝返回的单号
支付方式typeStringalipay/wxpay/qqpay
交易状态trade_statusString固定 TRADE_SUCCESS
商品名称nameString
商品金额moneyString
业务扩展参数paramString
支付用户标识buyerString一般为openid
时间戳timestampString
签名字符串signStringRSA签名
签名类型sign_typeString固定RSA

商户收到通知后必须返回纯文本 success,否则平台会重试(2分钟-3分钟-20分钟-1小时-2小时衰减)。务必对 sign 验签,并判断 trade_status 是否等于 TRADE_SUCCESS。

五、订单查询

URL 地址:https://www.zhongnianfu.com/api/pay/query

请求方式:POST

字段名变量名必填类型描述
商户IDpidInt
平台订单号trade_no二选一String与 out_trade_no 必传其一
商户订单号out_trade_no二选一String与 trade_no 必传其一
时间戳timestampString10位整数
签名字符串signString
签名类型sign_typeStringMD5

返回字段:code, trade_no, out_trade_no, api_trade_no, type, status(0=未支付/1=已支付/2=已退款), money, name, buyer, addtime, endtime, param

六、商户信息查询

URL 地址:https://www.zhongnianfu.com/api/merchant/info

请求方式:POST

字段名变量名必填类型描述
商户IDpidInt
时间戳timestampString10位整数
签名字符串signString
签名类型sign_typeStringMD5

返回字段:code, pid, status, pay_status, settle_status, money, order_num, order_num_today

七、订单退款

URL 地址:https://www.zhongnianfu.com/api/pay/refund

请求方式:POST

字段名变量名必填类型描述
商户IDpidInt
平台订单号trade_no二选一String
商户订单号out_trade_no二选一String
退款金额moneyString单位:元
时间戳timestampString
签名字符串signString
签名类型sign_typeStringMD5

相关接口:https://www.zhongnianfu.com/api/pay/refundquery(退款查询)、https://www.zhongnianfu.com/api/pay/close(关闭订单)

八、签名规则

MD5 签名(默认)

1. 收集所有非空请求参数,排除 sign、sign_type 字段

2. 按参数名 ASCII 码升序排序

3. 拼接成 "参数=参数值" 格式,用 & 连接

4. 末尾拼接商户密钥 key

5. 对整个字符串取 MD5(32位小写)

// 示例
$params = ['pid'=>'1000', 'type'=>'alipay', 'out_trade_no'=>'ORDER001', 'money'=>'0.01', 'timestamp'=>'1721206072'];
ksort($params);
$sign_str = 'money=0.01&out_trade_no=ORDER001&pid=1000×tamp=1721206072&type=alipay' . $key;
$sign = md5($sign_str);

RSA 签名(可选,需商户后台配置公钥)

1. 同上步骤 1-2 获取待签名字符串

2. 使用商户 RSA 私钥对待签名字符串计算 SHA256WithRSA 签名

3. 请求时 sign_type 填 RSA

4. 响应验签时使用平台 RSA 公钥

当前默认使用 MD5 签名。如需 RSA 签名,请联系管理员为商户配置密钥对。

九、支付方式列表

调用值描述
alipay支付宝
wxpay微信支付
qqpayQQ钱包
bank网银支付
jdpay京东支付

十、旧版 API(简易模式)

以下接口使用 GET 方式,直接用 pid + key 鉴权,不需要 timestamp 和 sign。适合快速调试和简单场景。

功能URL参数
查询商户信息 https://www.zhongnianfu.com/api.php?act=query pid, key
查询订单 https://www.zhongnianfu.com/api.php?act=order pid, key, trade_no 或 out_trade_no
查询订单列表 https://www.zhongnianfu.com/api.php?act=orders pid, key, limit(默认10), offset(默认0), status(可选)
查询结算记录 https://www.zhongnianfu.com/api.php?act=settle pid, key, limit(默认10), offset(默认0)

示例:https://www.zhongnianfu.com/api.php?act=query&pid=1000&key=YOUR_KEY

旧版 API 无时间戳校验,安全性较低,生产环境建议使用新版 API。

十一、SDK 下载

PHP SDK V2.0 下载

联系客服获取更多语言 SDK:QQ 17733345558