请求地址:http://服务器域名/submit.php
请求方式:POST/GET
参数示例(示例):pid={商户ID}&type={支付方式}&out_trade_no={商户订单号}&notify_url={服务器异步通知地址}&return_url={页面跳转通知地址}&name={商品名称}&money={金额}&sitename={网站名称}&sign={签名字符串}&sign_type=MD5
参数说明:
字段名 变量名 必填 类型 示例值 描述 商户ID pid 是 Int 1001 支付方式 type 是 String alipay alipay:支付宝,wxpay:微信支付,qqpay:QQ钱包 商户订单号 out_trade_no 是 String 20160806151343349 异步通知地址 notify_url 是 String https://服务器域名/notify_url.php 服务器异步通知地址 跳转通知地址 return_url 是 String https://服务器域名/return_url.php 页面跳转通知地址 商品名称 name 是 String VIP会员 商品金额 money 是 String 1.00 网站名称 sitename 是 String 云 创建类型 isHtml 否 Int 1|0 传入0则返回创建结果的json数据,否则自动跳转到支付页面 签名字符串 sign 是 String 202cb962ac59075b964b07152d234b70 签名算法与支付宝签名算法相同 签名类型 sign_type 是 String MD5 默认为MD5
PHP发起支付请求示例code
- $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" => '码支付',//网站名称
- );
- 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); //创建订单所需的参数
- $url = "https://pay.vmianqian.com/submit.php?{$query}"; //支付页面
- header("Location:{$url}"); //跳转到支付页面
通知类型:服务器异步通知(notify_url)、页面跳转通知(return_url)
请求方式:GET
回调说明:支付成功服务器异步通知页面就会收到码支付发来的处理结果通知,程序执行完后必须打印输出success,如果商户反馈的字符不是success这7个字符,码支付服务器会不断重发通知,直到超过通知次数10次(通知的间隔:5分钟左右)注意做好通知去重逻辑,你也可以在后台手动补单。
参数说明:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户ID | pid | 是 | Int | 1001 | |
| 订单号 | trade_no | 是 | String | 20160806151343349021 | 系统内部订单号 |
| 商户订单号 | out_trade_no | 是 | String | 20160806151343349 | 商户系统内部的订单号 |
| 支付方式 | type | 是 | String | alipay | alipay:支付宝,wxpay:微信支付 |
| 商品名称 | name | 是 | String | VIP会员 | |
| 商品金额 | money | 是 | String | 1.00 | |
| 支付状态 | trade_status | 是 | String | TRADE_SUCCESS | |
| 签名字符串 | sign | 是 | String | 202cb962ac59075b964b07152d234b70 | 签名算法与支付宝签名算法相同 |
| 签名类型 | sign_type | 是 | String | MD5 | 默认为MD5 |
PHP支付结果验证示例code
- if($_POST){
- $data=$_POST;
- }else{
- $data=$_GET;
- }
- ksort($data); //排序post参数
- reset($data); //内部指针指向数组中的第一个元素
- $zzcode_key = "这里改成您的KEY"; //这是您的密钥
- $sign = '';//初始化
- foreach ($data AS $key => $val) { //遍历POST参数
- if ($val == '' || $key == 'sign' || $key == "sign_type" ) continue; //跳过这些不参数签名
- if ($sign) $sign .= '&'; //第一个字符串签名不加& 其他加&连接起来参数
- $sign .= "$key=$val"; //拼接为url参数形式
- }
- if (md5($sign.$zzcode_key) != $data['sign']) { //不合法的数据
- exit('fail'); //验证失败
- } else { //合法的数据
- //业务处理
- $money = (float)$data['money']; //付款金额
- $trade_no = $data['trade_no']; //订单号
- $out_trade_no = $data['out_trade_no']; //商户订单号
- exit('success'); //返回成功
- }