💵 页面跳转支付

POST http://登录后接口配置里的域名/submit.php

接口描述

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

说明

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

示例

<?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'; //创建订单所需的参数
\$url = "http://域名/submit.php?{\$query}"; //支付页面
header("location:{\$url}"); //跳转到支付页面
?>

🛡️ V免签接口支付

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

接口描述

与「页面跳转支付」(易支付协议) 并存,供习惯 V免签接口格式的商户对接,通讯密钥与易支付共用。
参数: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

签名算法

待签名参数按 固定顺序 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"] 渲染收款码
}
?>