<?php
!function_exists('html') && exit('ERR');

$webdb[pay99_id] && $webdb[pay99_id]="{$webdb[pay99_id]}01";

if(!$webdb[pay99_id]){
	showerr('系統沒有設置快錢收款商戶編號,所以不能使用快錢在線支付');
}elseif(!$webdb[pay99_key]){
	showerr('系統沒有設置快錢密鑰,所以不能使用快錢在線支付');
}

if($signMsg){

	$key=$webdb[pay99_key];
	//生成加密串。必須保持如下順序。
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"merchantAcctId",$merchantAcctId);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"version",$version);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"language",$language);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"signType",$signType);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"payType",$payType);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"bankId",$bankId);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"orderId",$orderId);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"orderTime",$orderTime);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"orderAmount",$orderAmount);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"dealId",$dealId);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"bankDealId",$bankDealId);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"dealTime",$dealTime);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"payAmount",$payAmount);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"fee",$fee);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"ext1",$ext1);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"ext2",$ext2);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"payResult",$payResult);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"errCode",$errCode);
	$merchantSignMsgVal=appendParam($merchantSignMsgVal,"key",$key);
	$merchantSignMsg= md5($merchantSignMsgVal);

	if( strtoupper($signMsg)!=strtoupper($merchantSignMsg) ){
		showerr( "驗證MD5簽名失敗"); 
	}

	if( $webdb[pay99_id] != $merchantAcctId ){
		showerr( "錯誤的商戶編號"); 
	}

	if($payResult != "10" ){
		showerr( "支付失敗"); 
	}
	
	olpay_end($orderId);
}
else
{
	$array=olpay_send();
	
	//人民幣網關賬戶號
	///請與快錢聯系索取
	////賬戶號merchantAcctId的構成︰
	////登錄快錢帳戶，在“我的快錢”-“帳戶首頁”的中上位置顯示“用戶編號”。
	////商戶如果接入的是快錢人民幣支付網關，那麼商戶的帳戶號merchantAcctId就為
	////用戶編號後面附加數字01，即{用戶編號}01
	$merchantAcctId=$webdb[pay99_id];

	//人民幣網關密鑰
	///區分大小寫.請與快錢聯系索取
	////商戶密鑰（登錄快錢網站，在“快錢工具”-“設置產品參數”中獲取和設置。
	////注意︰商戶密鑰的長度只能是16位！商戶密鑰不應包含特殊字符，建議只使用數字和字母組合）。
	////如果在申請快錢帳戶時沒有收到快錢發送的通知郵件（含有為你們隨機生成的密鑰），
	////或者是忘記了密鑰，請登錄你們在快錢注冊時使用的郵箱（即你們的快錢帳戶），
	////發送郵件到“fsc@99bill.com”，申請重置你們的商戶密鑰（可以在郵件中說明所需要設置成的密鑰）。
	$key=$webdb[pay99_key];

	//字符集.固定選擇值。可為空。
	///只能選擇1、2、3.
	///1代表UTF-8; 2代表GBK; 3代表gb2312
	///默認值為1
	$inputCharset="3";

	//接受支付結果的頁面地址.與[bgUrl]不能同時為空。必須是絕對地址。
	///如果[bgUrl]為空，快錢將支付結果Post到[pageUrl]對應的地址。
	///如果[bgUrl]不為空，並且[bgUrl]頁面指定的<redirecturl>地址不為空，則轉向到<redirecturl>對應的地址
	$pageUrl=$array[return_url];
	$pageUrl=urlencode($pageUrl);

	//服務器接受支付結果的後台地址.與[pageUrl]不能同時為空。必須是絕對地址。
	///快錢通過服務器連接的方式將交易結果發送到[bgUrl]對應的頁面地址，在商戶處理完成後輸出的<result>如果為1，頁面會轉向到<redirecturl>對應的地址。
	///如果快錢未接收到<redirecturl>對應的地址，快錢將把支付結果post到[pageUrl]對應的頁面。
	$bgUrl="";
	
	//網關版本.固定值
	///快錢會根據版本號來調用對應的接口處理程序。
	///本代碼版本號固定為v2.0
	$version="v2.0";

	//語言種類.固定選擇值。
	///只能選擇1、2、3
	///1代表中文；2代表英文
	///默認值為1
	$language="1";

	//簽名類型.固定值
	///1代表MD5簽名
	///當前版本固定為1
	$signType="1";	
   
	//支付人姓名
	///可為中文或英文字符
	$payerName="$lfjid";

	//支付人聯系方式類型.固定選擇值
	///只能選擇1、2
	///1代表Email；2代表手機號
	$payerContactType="1";	

	//支付人聯系方式
	///只能選擇Email或手機號
	$payerContact="lfjdb[email]";

	//商戶訂單號
	///由字母、數字、或[-][_]組成
	$orderId=$array[numcode];		

	//訂單金額
	///以分為單位，必須是整型數字
	///比方2，代表0.02元
	$orderAmount=$array[money]*100;
	
	//訂單提交時間
	///14位數字。年[4位]月[2位]日[2位]時[2位]分[2位]秒[2位]
	///如；20080101010101
	$orderTime=date('YmdHis');

	//商品名稱
	///可為中文或英文字符
	$productName=$array[title];

	//商品數量
	///可為空，非空時必須為數字
	$productNum="1";

	//商品代碼
	///可為字符或者數字
	$productId="3";

	//商品描述
	$productDesc=$array[content];
	
	//擴展字段1
	///在支付結束後原樣返回給商戶
	$ext1="";

	//擴展字段2
	///在支付結束後原樣返回給商戶
	$ext2="";
	
	//支付方式.固定選擇值
	///只能選擇00、10、11、12、13、14
	///00︰組合支付（網關支付頁面顯示快錢支持的各種支付方式，推薦使用）10︰銀行卡支付（網關支付頁面只顯示銀行卡支付）.11︰電話銀行支付（網關支付頁面只顯示電話支付）.12︰快錢賬戶支付（網關支付頁面只顯示快錢賬戶支付）.13︰線下支付（網關支付頁面只顯示線下支付方式）.14︰B2B支付（網關支付頁面只顯示B2B支付，但需要向快錢申請開通才能使用）
	$payType="00";

	//銀行代碼
	///實現直接跳轉到銀行頁面去支付,只在payType=10時才需設置參數
	///具體代碼參見 接口文檔銀行代碼列表
	$bankId="";

	//快錢的合作伙伴的賬戶號
	///如未和快錢簽訂代理合作協議，不需要填寫本參數
	$pid=""; ///合作伙伴在快錢的用戶編號


   
	//生成加密簽名串
	///請務必按照如下順序和規則組成加密串！
	$signMsgVal=appendParam($signMsgVal,"inputCharset",$inputCharset);
	$signMsgVal=appendParam($signMsgVal,"pageUrl",$pageUrl);
	$signMsgVal=appendParam($signMsgVal,"bgUrl",$bgUrl);
	$signMsgVal=appendParam($signMsgVal,"version",$version);
	$signMsgVal=appendParam($signMsgVal,"language",$language);
	$signMsgVal=appendParam($signMsgVal,"signType",$signType);
	$signMsgVal=appendParam($signMsgVal,"merchantAcctId",$merchantAcctId);
	$signMsgVal=appendParam($signMsgVal,"payerName",$payerName);
	$signMsgVal=appendParam($signMsgVal,"payerContactType",$payerContactType);
	$signMsgVal=appendParam($signMsgVal,"payerContact",$payerContact);
	$signMsgVal=appendParam($signMsgVal,"orderId",$orderId);
	$signMsgVal=appendParam($signMsgVal,"orderAmount",$orderAmount);
	$signMsgVal=appendParam($signMsgVal,"orderTime",$orderTime);
	$signMsgVal=appendParam($signMsgVal,"productName",$productName);
	$signMsgVal=appendParam($signMsgVal,"productNum",$productNum);
	$signMsgVal=appendParam($signMsgVal,"productId",$productId);
	$signMsgVal=appendParam($signMsgVal,"productDesc",$productDesc);
	$signMsgVal=appendParam($signMsgVal,"ext1",$ext1);
	$signMsgVal=appendParam($signMsgVal,"ext2",$ext2);
	$signMsgVal=appendParam($signMsgVal,"payType",$payType);	
	$signMsgVal=appendParam($signMsgVal,"bankId",$bankId);
	$signMsgVal=appendParam($signMsgVal,"pid",$pid);
	$geturl=$signMsgVal;
	$signMsgVal=appendParam($signMsgVal,"key",$key);	
	$signMsg= strtoupper(md5($signMsgVal));
	
	header("location:https://www.99bill.com/gateway/recvMerchantInfoAction.htm?$geturl&signMsg=$signMsg");
	exit;
}

//*-*能函數。將變量值不為空的參數組成字符串
Function appendParam($returnStr,$paramId,$paramValue){

	if($returnStr!=""){
			
		if($paramValue!=""){
					
			$returnStr.="&".$paramId."=".$paramValue;
		}
			
	}else{
		
		If($paramValue!=""){
			$returnStr=$paramId."=".$paramValue;
		}
	}
		
	return $returnStr;
}

?>