<?php
include('AlipayTradePagePayRequest.php');
include('AlipayTradeRefundRequest.php');include('AopClient.php');
class AlipayTradeService {
public $gateway_url = "https://openapi.alipay.com/gateway.do";
public $alipay_public_key;
public $private_key;
public $appid;
public $charset = "UTF-8";
public $token = NULL;
public $format = "json";
public $signtype = "RSA2";
function __construct($alipay_config){
$this->gateway_url = $alipay_config['gatewayUrl'];
$this->appid = $alipay_config['app_id'];
$this->private_key = $alipay_config['merchant_private_key'];
$this->alipay_public_key = $alipay_config['alipay_public_key'];
$this->charset = $alipay_config['charset'];
$this->signtype=$alipay_config['sign_type'];
if(empty($this->appid)||trim($this->appid)==""){
throw new Exception("appid should not be NULL!");
}
if(empty($this->private_key)||trim($this->private_key)==""){
throw new Exception("private_key should not be NULL!");
}
if(empty($this->alipay_public_key)||trim($this->alipay_public_key)==""){
throw new Exception("alipay_public_key should not be NULL!");
}
if(empty($this->charset)||trim($this->charset)==""){
throw new Exception("charset should not be NULL!");
}
if(empty($this->gateway_url)||trim($this->gateway_url)==""){
throw new Exception("gateway_url should not be NULL!");
}
}
function pagePay($builder,$return_url,$notify_url) {
$biz_content=$builder->getBizContent();
$this->writeLog('pagepay:'.$biz_content);
$request = new AlipayTradePagePayRequest();
$request->setNotifyUrl($notify_url);
$request->setReturnUrl($return_url);
$request->setBizContent ( $biz_content );
$response = $this->aopclientRequestExecute ($request,true);
return $response;
}
function aopclientRequestExecute($request,$ispage=false) {
$aop = new AopClient ();
$aop->gatewayUrl = $this->gateway_url;
$aop->appId = $this->appid;
$aop->rsaPrivateKey = $this->private_key;
$aop->alipayrsaPublicKey = $this->alipay_public_key;
$aop->apiVersion ="1.0";
$aop->postCharset = $this->charset;
$aop->format= $this->format;
$aop->signType=$this->signtype;
$aop->debugInfo=true;
if($ispage)
{
$result = $aop->pageExecute($request,"post");
echo $result;
}
else
{
$result = $aop->Execute($request);
}
$this->writeLog("response: ".var_export($result,true));
return $result;
}
function Query($builder){
$biz_content=$builder->getBizContent();
$this->writeLog($biz_content);
$request = new AlipayTradeQueryRequest();
$request->setBizContent ( $biz_content );
$response = $this->aopclientRequestExecute ($request);
$response = $response->alipay_trade_query_response;
return $response;
}
function Refund($builder){
$biz_content=$builder->getBizContent();
$this->writeLog($biz_content);
$request = new AlipayTradeRefundRequest();
$request->setBizContent ( $biz_content );
$response = $this->aopclientRequestExecute ($request);
$response = $response->alipay_trade_refund_response;
return $response;
}
function Close($builder){
$biz_content=$builder->getBizContent();
$this->writeLog($biz_content);
$request = new AlipayTradeCloseRequest();
$request->setBizContent ( $biz_content );
$response = $this->aopclientRequestExecute ($request);
$response = $response->alipay_trade_close_response;
return $response;
}
function refundQuery($builder){
$biz_content=$builder->getBizContent();
$this->writeLog($biz_content);
$request = new AlipayTradeFastpayRefundQueryRequest();
$request->setBizContent ( $biz_content );
$response = $this->aopclientRequestExecute ($request);
return $response;
}
function downloadurlQuery($builder){
$biz_content=$builder->getBizContent();
$this->writeLog($biz_content);
$request = new alipaydatadataservicebilldownloadurlqueryRequest();
$request->setBizContent ( $biz_content );
$response = $this->aopclientRequestExecute ($request);
$response = $response->alipay_data_dataservice_bill_downloadurl_query_response;
return $response;
}
function check($arr){
$aop = new AopClient();
$aop->alipayrsaPublicKey = $this->alipay_public_key;
$result = $aop->rsaCheckV1($arr, $this->alipay_public_key, $this->signtype);
return $result;
}
function writeLog($text) {
}
}
?>