💴 API接口支付

POST http://登录后接口配置里的域名/pay/apisubmit

接口描述

POST数据:pid={商户ID}&type={支付方式}&out_trade_no={商户订单号}&notify_url={服务器异步通知地址}&return_url={页面跳转通知地址}&name={商品名称}&money={金额}&sitename={网站名称}&sign={签名字符串}&sign_type=MD5

请求参数

字段名
参数名
必填
类型
示例值
描述
商户ID
pid
必填
Int
1000
商户ID
支付方式
type
必填
String
alipay
支付方式:alipay:支付宝,qqpay:QQ钱包,wxpay:微信支付,rmbpay:数字人民币
商户订单号
out_trade_no
必填
String
20160806151343349
商户订单号
异步通知地址
notify_url
必填
String
http://站点域名/notify_url.php
服务器异步通知地址
跳转通知地址
return_url
必填
String
http://站点域名/return_url.php
页面跳转通知地址
商品名称
name
必填
String
一个奥利奥
商品名称
商品金额
money
必填
String
1.00
商品金额
签名字符串
sign
必填
String
202cb962ac59075b964b07152d234b70
签名字符串,签名算法与支付宝签名算法相同
签名类型
sign_type
必填
String
MD5
默认为MD5

响应参数

字段名
参数名
类型
示例值
描述
返回状态码
code
Int
1
1为成功,其它值为失败
返回信息
msg
String
获取成功!
成功/失败时返回对应信息
金额
money
String
1.00
支付金额
类型
type
String
alipay
支付方式:alipay:支付宝,qqpay:QQ钱包,wxpay:微信支付,rmbpay:数字人民币
二维码链接
qrcode
String
wxp://f2f15IaTGck0xvm7vug4lqx-sMpJ0xiUB8fWTDwCQk-jYBxS6Yl1A_fOdPGNNGKwPnOt
如果返回该字段,则根据该url生成二维码
订单号
trade_no
String
20160806151343349
支付订单号
商户订单号
out_trade_no
String
20160806151343349
商户订单号
过期时间
end_time
Int
1701765395
过期时间(时间戳)

说明

发起支付请求网站名称参数可以为空,其他为必填项
签名算法与支付宝签名算法相同

示例

<?php
\$zzcode_id="1000";//这里改成您的商户id
\$zzcode_key="AMEQ6D96SADsE545413419MuS"; //这是您的KEY
//构造要请求的参数数组,无需改动
\$parameter = array(
    "pid" => \$zzcode_id,//你的商户ID
    "type" => 'alipay',//alipay支付宝支付、wxpay微信支付
    "notify_url" => '',//异步通知地址
    "return_url" => '',//页面返回地址
    "out_trade_no" => '20200530203427207',//订单号
    "name" => 'VIP会员',//商品名称
    "money" => 1.00,//支付金额
    "sitename" => '$title',//网站名称
);
ksort(\$parameter); //重新排序\$parameter数组
reset(\$parameter); //内部指针指向数组中的第一个元素
\$sign = ''; //初始化需要签名的字符为空
\$urls = ''; //初始化URL参数为空
foreach (\$parameter AS \$key => \$val) { //遍历需要传递的参数
    if (\$val == '' || \$key == 'sign' || \$key == "sign_type" ) continue; //跳过这些不参数签名
    if (\$sign != '') { //后面追加&拼接URL
        \$sign .= "&";
        \$urls .= "&";
    }
    \$sign .= "\$key=\$val"; //拼接为url参数形式
    \$urls .= "\$key=" . urlencode(\$val); //拼接为url参数形式并URL编码参数值
}
\$query = \$urls . '&sign=' . md5(\$sign .\$zzcode_key) . '&sign_type=MD5'; //创建订单所需的参数
\$http_type = ((isset(\$_SERVER['HTTPS']) && \$_SERVER['HTTPS'] == 'on') || (isset(\$_SERVER['HTTP_X_FORWARDED_PROTO']) && \$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
\$url = \$http_type . "域名/pay/apisubmit?{\$query}"; //请求地址
echo file_get_contents(\$url); //获取返回json
?>

🛡️ V免签接口支付

POST/GET http://登录后接口配置里的域名/createOrder

接口描述

与易支付 API 接口并存,供习惯 V免签格式的商户对接,默认返回 JSON(isHtml=1 时跳转本站收银页)。通讯密钥与易支付共用。
参数:payId={商户订单号}&param={透传参数}&type={支付方式}&price={金额}&notifyUrl={异步通知地址}&returnUrl={跳转地址}&sign={签名}

请求参数

字段名
参数名
必填
类型
示例值
描述
商户订单号
payId
必填
String
20260619001
商户订单号(唯一)
透传参数
param
选填
String
vip123
自定义透传,回调原样回传
支付方式
type
必填
Int
1
1微信 2支付宝 3QQ 4数字人民币
订单金额
price
必填
String
1.00
订单金额(元)
异步通知地址
notifyUrl
必填
String
http://站点域名/notify.php
服务器异步通知地址
页面跳转地址
returnUrl
选填
String
http://站点域名/return.php
支付完成同步跳转地址
签名字符串
sign
必填
String
202cb962ac59075b964b07152d234b70
MD5签名,见签名算法
跳转收银页
isHtml
选填
Int
0
1=跳转本站收银页,0=返回JSON

响应参数

字段名
参数名
类型
示例值
描述
返回状态码
code
Int
1
1成功,-1失败
返回信息
msg
String
成功
成功/失败提示
商户订单号
data.payId
String
20260619001
商户订单号
云端订单号
data.orderId
String
2026061912000001
系统订单号(trade_no)
支付方式
data.payType
Int
1
1微信 2支付宝 3QQ 4数字人民币
实付金额
data.reallyPrice
String
1.00
实际收款金额(监控端通道可能微调)
收款码
data.payUrl
String
wxp://f2f15...
收款二维码/跳转地址,据此生成二维码
是否自动
data.isAuto
Int
0
0=有固定金额码,1=需用户输入金额
过期时间
data.timeOut
Int
5
订单超时分钟数

签名算法

待签名参数按 固定顺序 payId → param → type → price 拼接,末尾追加通讯密钥,取 MD5 小写:

sign = md5(payId . param . type . price . 密钥)

注意:与易支付的「字典序排序」不同,V免签为固定顺序拼接,param 为空时按空串参与。

异步通知与同步跳转

收款后系统以 GET 请求 notifyUrl,参数:payId / param / type / price / reallyPrice / sign,验签:

sign = md5(payId . param . type . price . reallyPrice . 密钥)

商户处理成功须输出纯字符串 success。同步跳转 returnUrl 参数与异步通知一致。成功判定与易支付相同:响应包含 success 即视为成功。

示例

<?php
\$key = '您的通讯密钥'; // 同易支付密钥
\$param = array(
    "payId"     => 'ORDER'.time(),     //商户订单号
    "param"     => 'vip123',           //透传参数
    "type"      => 1,                  //1微信 2支付宝 3QQ 4数字人民币
    "price"     => '1.00',             //金额
    "notifyUrl" => 'http://商户/notify.php',
    "returnUrl" => 'http://商户/return.php',
);
//固定顺序签名(注意与易支付字典序不同)
\$param["sign"] = md5(\$param["payId"].\$param["param"].\$param["type"].\$param["price"].\$key);
\$query = http_build_query(\$param);
\$resp = file_get_contents("http://域名/createOrder?{\$query}");
\$data = json_decode(\$resp, true);
if (\$data["code"] === 1) {
    //用 \$data["data"]["payUrl"] 渲染收款码
}
?>