支付接口

# API请求方式 #

  • Method: GET/POST

# 请求地址 #

http://pay.4dn.net/code.php

# 请求参数 #

请求名称是否必填请求说明
uid       商户ID
pay_id  需要充值的ID 或订单号 或用户名
title      订单标题
price     金额
type      支付类型 1支付宝、 2QQ、 3微信 
param    自定义参数
tag        关键词
return    支付完成返回连接
notify_url异步回调
return_url同步回调
sign       拼接url参数加上商户Key然后md5加密

PHP 实例代码:

<?php
function buiForm($para_temp, $method = 'GET', $button_name = '正在跳转'){  //$method = 'GET'  GET 跟 POST 两种模式随便你选
    $sHtml = "<form id='alipaysubmit' name='alipaysubmit' action='http://pay.4dn.net/code.php' method='" . $method . "'>";
    while (list($key, $val) = each($para_temp)) {
        $sHtml .= "<input type='hidden' name='" . $key . "' value='" . $val . "'/>";
    }
    $sHtml = $sHtml . "<input type='submit' value='" . $button_name . "'></form>";
    $sHtml = $sHtml . "<script>document.forms['alipaysubmit'].submit();</script>";
    return $sHtml;
}
$data = array(
      "uid"    => "1001",       //商 户 I D(必填) 登录 http://pay.4dn.net/ 点击左侧 开发配置 获取
      "pay_id" => uniqid(),     //订单号   (必填)
      "title"  => "快捷支付",   //商品名称 (必填)
      "price"  => '1',          //支付金额 (必填)
      "type"   => '3',          //支付类型 1支付宝、2QQ支付、3微信支付 (必填)
      "param"  => '自定义参数', //自定义参数 
      "tag"    => '关键词',     //关键词
      "return" => 'http://4dn.net/',      //支付完成返回连接
      "notify_url" => 'http://pay.4dn.net/notify_url.php',      //异步回调
      "return_url" => 'http://pay.4dn.net/return_url.php'       //同步回调
);
$mch_key = 'TV3ELN3t12u7M625AQIsET9'; //这是您的通讯密钥(必填) 登录 http://pay.4dn.net/ 点击左侧 开发配置 获取
$result = md5_sign($data, $mch_key); //生成加密
$parameter = $data; 
$parameter['sign'] = $result;
//创建订单所需的参数
$html_text = buiForm($parameter);
echo $html_text;
function md5_sign($arr,$skey) {
		$arr_filter = array();
		foreach($arr as $key=>$val){
			if($key == "sign" || $val == "") continue;
			$arr_filter[$key] = $arr[$key];
		}
		//对数组排序
		ksort($arr_filter);
		reset($arr_filter);
		$arg  = "";
		foreach($arr_filter as $key=>$val){
			$arg.=$key."=".urlencode($val)."&";
		}
		$arg = substr($arg,0,count($arg)-2);
		//如果存在转义字符,那么去掉转义
		if(get_magic_quotes_gpc()){$arg = stripslashes($arg);}
		//MD5加密
		$sign =  strtoupper(md5($arg.$skey));
		return $sign;
    }
?>

GET生成案例:

http://pay.4dn.net/code.php?uid=101&pay_id=60f15676a946f&title=快捷支付&price=1&type=2&param=自定义参数&tag=关键词&return=http://4dn.net/&notify_url=http://pay.4dn.net/notify_url.php&return_url=http://pay.4dn.net/return_url.php&sign=40A57C6543C10F7E18989A1D1BACA92A

 # 异步通知 #

返回名称返回说明
uid商户号
title商品名称 
pay_id订单号
money实际付款金额
price订单的原价
type支付类型 1支付宝、 2QQ、 3微信
pay_no流水单号
param自定义参数
pay_time付款时间
pay_tag支付备注
status业务处理状态 这里2为处理完成
creat_time创建数据的时间
up_time最后更新时间
sign签名验证 

支付验签 PHP 实例代码

<?php
$str = file_get_contents('php://input');
parse_str($str, $result);   //第一个参数为字符串,第二个参数为结果
$re = reate($result,'TV3ELN3t12u7M625AQIsET9');   //通信密钥 登录 http://pay.4dn.net/ 点击左侧 开发配置 获取
//商户号                           $result["uid"] 
//商品名称                         $result["title"] 
//订单号                           $result["pay_id"] 
//实际付款金额                     $result["money"] 
//订单的原价                       $result["price"]  
//支付方式                         $result["type"]   
//流水单号                         $result["pay_no"] 
//自定义参数                       $result["param"]  
//付款时间                         $result["pay_time"] 
//支付备注                         $result["pay_tag"] 
//业务处理状态 这里2为处理完成     $result["status"]  
//创建数据的时间                   $result["creat_time"] 
//最后更新时间                     $result["up_time"]     
//签名验证                         $result["sign"]   
if($result["sign"] == $re || $result["status"] == '2'){
    ////////////////这里写业务逻辑/////////////////


	exit('success'); //返回成功 不要删除哦		
} else {
	exit('fail');  //返回失败 继续补单
}
function reate($params, $codepay_key, $host = "") {
    ksort($params); //重新排序$data数组
    reset($params); //内部指针指向数组中的第一个元素
    $sign = '';
    foreach ($params AS $key => $val) {
        if ($val == '') continue;
        if ($key != 'sign') {
            if ($sign != '') {
                $sign.= "&";
            }
            $sign.= "$key=$val"; //拼接为url参数形式 
        }
    }
    $key = md5($sign . $codepay_key); //开始加密
    return $key;
}
?>