<?php
require_once(SYS_ROOT."/tool/api_pay/alipay/alipay_service.php");
class cls_tool_api_pay
{
	function on_pay($arr_fields=array())
	{
		$arr_return=array("url"=>"","err"=>"");
		if(!isset($arr_fields["partner"])){
			$arr_return["err"]="合作伙伴ID不能为空！";
			return $arr_return;
		}
		if(!isset($arr_fields["key"])){
			$arr_return["err"]="安全检验码不能为空！";
			return $arr_return;
		}
		if(!isset($arr_fields["email"])){
			$arr_return["err"]="支付宝帐户不能为空！";
			return $arr_return;
		}
		if(!isset($arr_fields["subject"])){
			$arr_return["err"]="支付标题不能为空！";
			return $arr_return;
		}
		if(!isset($arr_fields["return_url"])){
			$arr_return["err"]="支付返回地址不能为空！";
			return $arr_return;
		}
		if(!isset($arr_fields["orderid"])){
			$arr_return["err"]="定单id不能为空！";
			return $arr_return;
		}
		if(!isset($arr_fields["detail"])) $arr_fields["detail"]="";
		if(!isset($arr_fields["body"])) $arr_fields["body"]="";
		$arr_fields["goods_count"]=1;
		if(!isset($arr_fields["price"])){
			$arr_return["err"]="商品金额不能为空！";
			return $arr_return;
		}
		$arr_fields["input_charset"] = "GBK"; //字符编码格式  目前支持 GBK 或 utf-8
		$arr_fields["sign_type"] = "MD5"; //加密方式  系统默认(不要修改)
		$arr_fields["transport"]= "https";//访问模式,你可以根据自己的服务器是否支持ssl访问而选择http以及https访问模式(系统默认,不要修改)
		$arr_fields["notify_url"] = $arr_fields["notify_url"];// 异步返回地址 需要填写完整的路径
		$arr_fields["return_url"] = $arr_fields["return_url"]; //同步返回地址  需要填写完整大额路径
		$arr_fields["show_url"] =$arr_fields["show_url"];  //你网站商品的展示地址,可以为空
		//构造要请求的参数数组
		$parameter = array(
				"service"			=> "create_direct_pay_by_user",	//接口名称，不需要修改
				"payment_type"		=> "1",               				//交易类型，不需要修改

				//获取配置文件(alipay_config.php)中的值
				"partner"			=> $arr_fields["partner"],
				"seller_email"		=> $arr_fields["email"],
				"return_url"		=> $arr_fields["return_url"],
				"notify_url"		=> $arr_fields["notify_url"],
				"_input_charset"	=> $arr_fields["input_charset"],
				"show_url"			=> $arr_fields["show_url"],

				//从订单数据中动态获取到的必填参数
				"out_trade_no"		=> $arr_fields["orderid"],
				"subject"			=> $arr_fields["subject"],
				"body"				=> $arr_fields["body"],
				"total_fee"				=> $arr_fields["price"],
				//扩展功能参数——网银提前
				"paymethod"	      => "directPay",
				"defaultbank"	  => "",

				//扩展功能参数——防钓鱼
				"anti_phishing_key"=> "",
				"exter_invoke_ip"  => "",
				//扩展功能参数——自定义参数
				"buyer_email"	   => "",
				"extra_common_param" => ""
			
		);
		/*
		echo $arr_fields["key"]."<br>";
		echo $arr_fields["sign_type"]."<br>";
		print_r($parameter);exit;
		*/
		$alipay = new alipay_service($parameter,$arr_fields["key"],$arr_fields["sign_type"]);
		//若改成GET方式传递
		$link = $alipay->create_url();
		if(stristr($link,"http")){
			$arr_return["url"]="<script>window.open('".$link."','_blank');</script>";
		}else{
			$arr_return["err"]=$link;
		}
		return $arr_return;
	}
	//支付宝字段
	function get_fields_html($arr_fields=array())
	{
		(!isset($arr_fields["email"]))? $email="":$email=$arr_fields["email"];
		(!isset($arr_fields["partner"]))?$partner="":$partner=$arr_fields["partner"];
		(!isset($arr_fields["key"]))?$key="":$key=$arr_fields["key"];
		$str_info="";
$str_info=<<<HTML
<tr><td class="pTabColName">货币类型：</td><td class="pTabColVal">人民币(￥)<input type="hidden" name="pay_fields_currency" value="人民币(￥)"></td></tr>
<tr><td class="pTabColName">支付宝帐户：</td><td class="pTabColVal"><input type="text" name="pay_fields_email" value="$email" size=50></td></tr>
<tr><td class="pTabColName">合作者身份(parterID)：</td><td class="pTabColVal"><input type="text" name="pay_fields_partner" value="$partner" size=50></td></tr>
<tr><td class="pTabColName">交易安全校验码(key)：</td><td class="pTabColVal"><input type="text" name="pay_fields_key" value="$key" size=50></td></tr>
HTML;
		return $str_info;
	}
	function set_fields_value()
	{
		$arr_fields["currency"]=$_POST["pay_fields_currency"];
		$arr_fields["email"]=$_POST["pay_fields_email"];
		$arr_fields["partner"]=$_POST["pay_fields_partner"];
		$arr_fields["key"]=$_POST["pay_fields_key"];
		$str_info="";
		$str_x="";
		foreach($arr_fields as $item=>$key)
		{
			$str_x=$item."=".$key;
			if($str_info==""){
				$str_info=$str_x;
			}else{
				$str_info.="|".$str_x;
			}
		}
		return $str_info;
	}
}
?>