| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 | 
							- <?php
 
- /* *
 
-  * 功能:支付宝手机网站alipay.trade.close (统一收单交易关闭接口)业务参数封装
 
-  * 版本:2.0
 
-  * 修改日期:2016-11-01
 
-  * 说明:
 
-  * 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
 
-  */
 
- require_once dirname ( __FILE__ ).DIRECTORY_SEPARATOR.'./../../AopSdk.php';
 
- require dirname ( __FILE__ ).DIRECTORY_SEPARATOR.'./../../config.php';
 
- class AlipayTradeService {
 
- 	//支付宝网关地址
 
- 	public $gateway_url = "https://openapi.alipay.com/gateway.do";
 
- 	//支付宝公钥
 
- 	public $alipay_public_key;
 
- 	//商户私钥
 
- 	public $private_key;
 
- 	//应用id
 
- 	public $appid;
 
- 	//编码格式
 
- 	public $charset = "UTF-8";
 
- 	public $token = NULL;
 
- 	
 
- 	//返回数据格式
 
- 	public $format = "json";
 
- 	//签名方式
 
- 	public $signtype = "RSA";
 
- 	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 AlipayWapPayService($alipay_config) {
 
- 		$this->__construct($alipay_config);
 
- 	}
 
- 	/**
 
- 	 * alipay.trade.wap.pay
 
- 	 * @param $builder 业务参数,使用buildmodel中的对象生成。
 
- 	 * @param $return_url 同步跳转地址,公网可访问
 
- 	 * @param $notify_url 异步通知地址,公网可以访问
 
- 	 * @return $response 支付宝返回的信息
 
-  	*/
 
- 	function wapPay($builder,$return_url,$notify_url) {
 
- 	
 
- 		$biz_content=$builder->getBizContent();
 
- 		//打印业务参数
 
- 		$this->writeLog($biz_content);
 
- 	
 
- 		$request = new AlipayTradeWapPayRequest();
 
- 	
 
- 		$request->setNotifyUrl($notify_url);
 
- 		$request->setReturnUrl($return_url);
 
- 		$request->setBizContent ( $biz_content );
 
- 	
 
- 		// 首先调用支付api
 
- 		$response = $this->aopclientRequestExecute ($request,true);
 
- 		// $response = $response->alipay_trade_wap_pay_response;
 
- 		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);
 
- 		}
 
-         
 
- 		//打开后,将报文写入log文件
 
- 		$this->writeLog("response: ".var_export($result,true));
 
- 		return $result;
 
- 	}
 
- 	/**
 
- 	 * alipay.trade.query (统一收单线下交易查询)
 
- 	 * @param $builder 业务参数,使用buildmodel中的对象生成。
 
- 	 * @return $response 支付宝返回的信息
 
-  	*/
 
- 	function Query($builder){
 
- 		$biz_content=$builder->getBizContent();
 
- 		//打印业务参数
 
- 		$this->writeLog($biz_content);
 
- 		$request = new AlipayTradeQueryRequest();
 
- 		$request->setBizContent ( $biz_content );
 
- 		// 首先调用支付api
 
- 		$response = $this->aopclientRequestExecute ($request);
 
- 		$response = $response->alipay_trade_query_response;
 
- 		var_dump($response);
 
- 		return $response;
 
- 	}
 
- 	
 
- 	/**
 
- 	 * alipay.trade.refund (统一收单交易退款接口)
 
- 	 * @param $builder 业务参数,使用buildmodel中的对象生成。
 
- 	 * @return $response 支付宝返回的信息
 
- 	 */
 
- 	function Refund($builder){
 
- 		$biz_content=$builder->getBizContent();
 
- 		//打印业务参数
 
- 		$this->writeLog($biz_content);
 
- 		$request = new AlipayTradeRefundRequest();
 
- 		$request->setBizContent ( $biz_content );
 
- 	
 
- 		// 首先调用支付api
 
- 		$response = $this->aopclientRequestExecute ($request);
 
- 		$response = $response->alipay_trade_refund_response;
 
- 		var_dump($response);
 
- 		return $response;
 
- 	}
 
- 	/**
 
- 	 * alipay.trade.close (统一收单交易关闭接口)
 
- 	 * @param $builder 业务参数,使用buildmodel中的对象生成。
 
- 	 * @return $response 支付宝返回的信息
 
- 	 */
 
- 	function Close($builder){
 
- 		$biz_content=$builder->getBizContent();
 
- 		//打印业务参数
 
- 		$this->writeLog($biz_content);
 
- 		$request = new AlipayTradeCloseRequest();
 
- 		$request->setBizContent ( $biz_content );
 
- 	
 
- 		// 首先调用支付api
 
- 		$response = $this->aopclientRequestExecute ($request);
 
- 		$response = $response->alipay_trade_close_response;
 
- 		var_dump($response);
 
- 		return $response;
 
- 	}
 
- 	
 
- 	/**
 
- 	 * 退款查询   alipay.trade.fastpay.refund.query (统一收单交易退款查询)
 
- 	 * @param $builder 业务参数,使用buildmodel中的对象生成。
 
- 	 * @return $response 支付宝返回的信息
 
- 	 */
 
- 	function refundQuery($builder){
 
- 		$biz_content=$builder->getBizContent();
 
- 		//打印业务参数
 
- 		$this->writeLog($biz_content);
 
- 		$request = new AlipayTradeFastpayRefundQueryRequest();
 
- 		$request->setBizContent ( $biz_content );
 
- 	
 
- 		// 首先调用支付api
 
- 		$response = $this->aopclientRequestExecute ($request);
 
- 		var_dump($response);
 
- 		return $response;
 
- 	}
 
- 	/**
 
- 	 * alipay.data.dataservice.bill.downloadurl.query (查询对账单下载地址)
 
- 	 * @param $builder 业务参数,使用buildmodel中的对象生成。
 
- 	 * @return $response 支付宝返回的信息
 
- 	 */
 
- 	function downloadurlQuery($builder){
 
- 		$biz_content=$builder->getBizContent();
 
- 		//打印业务参数
 
- 		$this->writeLog($biz_content);
 
- 		$request = new alipaydatadataservicebilldownloadurlqueryRequest();
 
- 		$request->setBizContent ( $biz_content );
 
- 	
 
- 		// 首先调用支付api
 
- 		$response = $this->aopclientRequestExecute ($request);
 
- 		$response = $response->alipay_data_dataservice_bill_downloadurl_query_response;
 
- 		var_dump($response);
 
- 		return $response;
 
- 	}
 
- 	/**
 
- 	 * 验签方法
 
- 	 * @param $arr 验签支付宝返回的信息,使用支付宝公钥。
 
- 	 * @return boolean
 
- 	 */
 
- 	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) {
 
- 		// $text=iconv("GBK", "UTF-8//IGNORE", $text);
 
- 		//$text = characet ( $text );
 
- 		file_put_contents ( dirname ( __FILE__ ).DIRECTORY_SEPARATOR."./../../log.txt", date ( "Y-m-d H:i:s" ) . "  " . $text . "\r\n", FILE_APPEND );
 
- 	}
 
- 	
 
- 	/** *利用google api生成二维码图片
 
- 	 * $content:二维码内容参数
 
- 	 * $size:生成二维码的尺寸,宽度和高度的值
 
- 	 * $lev:可选参数,纠错等级
 
- 	 * $margin:生成的二维码离边框的距离
 
- 	 */
 
- 	function create_erweima($content, $size = '200', $lev = 'L', $margin= '0') {
 
- 		$content = urlencode($content);
 
- 		$image = '<img src="http://chart.apis.google.com/chart?chs='.$size.'x'.$size.'&cht=qr&chld='.$lev.'|'.$margin.'&chl='.$content.'"  widht="'.$size.'" height="'.$size.'" />';
 
- 		return $image;
 
- 	}
 
- }
 
- ?>
 
 
  |