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']; $this->log_path = $alipay_config['log_path']; 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!"); } } /** * alipay.trade.page.pay * @param $builder 业务参数,使用buildmodel中的对象生成。 * @param $return_url 同步跳转地址,公网可以访问 * @param $notify_url 异步通知地址,公网可以访问 * @return $response 支付宝返回的信息 */ function pagePay($builder,$return_url,$notify_url) { $biz_content=$builder->getBizContent(); //打印业务参数 $this->writeLog($biz_content); $request = new AlipayTradePagePayRequest(); $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; } /** * sdkClient * @param $request 接口请求参数对象。 * @param $ispage 是否是页面接口,电脑网站支付是页面表单接口。 * @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 ); $response = $this->aopclientRequestExecute ($request); $response = $response->alipay_trade_query_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 ); $response = $this->aopclientRequestExecute ($request); $response = $response->alipay_trade_refund_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 ); $response = $this->aopclientRequestExecute ($request); $response = $response->alipay_trade_close_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 ); $response = $this->aopclientRequestExecute ($request); 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 ); $response = $this->aopclientRequestExecute ($request); $response = $response->alipay_data_dataservice_bill_downloadurl_query_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 ); if(!empty($this->log_path) && trim($this->log_path)!=""){ file_put_contents ( $this->log_path, date ( "Y-m-d H:i:s" ) . " " . $text . "\r\n", FILE_APPEND ); } } } ?>