发起支付请求网站名称参数可以为空,其他为必填项
签名算法与支付宝签名算法相同
💴 API接口支付
接口描述
POST数据:pid={商户ID}&type={支付方式}&out_trade_no={商户订单号}&notify_url={服务器异步通知地址}&return_url={页面跳转通知地址}&name={商品名称}&money={金额}&sitename={网站名称}&sign={签名字符串}&sign_type=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'; //创建订单所需的参数
\$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免签接口支付
接口描述
与易支付 API 接口并存,供习惯 V免签格式的商户对接,默认返回 JSON(isHtml=1 时跳转本站收银页)。通讯密钥与易支付共用。
参数:payId={商户订单号}¶m={透传参数}&type={支付方式}&price={金额}¬ifyUrl={异步通知地址}&returnUrl={跳转地址}&sign={签名}
请求参数
响应参数
签名算法
待签名参数按 固定顺序 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"] 渲染收款码
}
?>