tp5.1 集成支付宝支付方法(一)

引用了:https://www.kancloud.cn/hongweizhiyuan/thinkphp5-alipay/405840

原文是5.0以版本以前的用法,

5.1版本用法需要修改:

(一)复制文件改名称

我们的目录一开始是这样的
mark

将官方的源码解压到根目录下的extend

mark

更改名称,将 alipay.trade.page.pay-PHP-UTF-8 更改为 AlipayTradePagePay,如图:

mark

(二)修改文件

注:windows下需要修改一个文件,但Linux系统是不需要修改的!

在 window 系统下需要修改

C:\tp5_alipay2017\extend\AlipayTradePagePay\lotusphp_runtime\Lotus.php 第 61行注释掉;

//trigger_error("invalid [default store dir]: " . $this->defaultStoreDir);

否则会报错 《错误一:[1024]invalid [default store dir]: /tmp/》 !

注释完了再改回来就没事儿了!!

就这么简单?是的:就这么简单!!!!!

步骤二:加载配置

// 支付宝配置文件
return [

        //应用ID,您的APPID。
        'app_id' => "2017091408724714",

        //商户私钥
        'merchant_private_key' => "MIIEowIBAAKCAQEAzuqhx1DejGM6iPyDpAPS09f7E8SlQLMHpH0LxkMeiLfXf471M1N163tUjwAamimE+BDhGRic6T9J05ddY8liQstKEDkUP5ttFlW7yPZSW0PGeb+0fsoAVoUQKDySRM1jkrwPaf4h5AxfsxXCZ+AZ1J3IlLL2a9Z1REmCCfeh2kFCGiCbzowbFIP00XFXzm/hyVa5XFFdg2LHtkMiQhcQd41920LAg16CyainOTA3/DhQjeYTVjWm3mqJS+l7EpCuq+1kIb1AR4CyZHvgYL8OERG9P+s7D60abTHwoGKnsAlh6mOsQnVy5j1TfebsImI20lYElN3LmcRIQ9tV9qwUowIDAQABAoIBAH6bCkoOrV1xCcvv1gxxWnrM2JAL7qFb6f03lhDF2NUGyBEAw/+XvbtMRz0Ibz6M0ROIIHNeoAQH+YBCSZ5ZBoqgIL00b7NLwr+7zZ71OQcmvTaZmjNKHlLSMESua0E1+ws5jqToHoyPFa9aTQ2KDcQOl0CFEEqDelVCNRMsNhh4Y/X5bhR6hnQl75c0sbUlcLTqnHfVTjHc3h2CGXMfiBVE2chbjVDOWmcinO50UVDjScs00iKwPE7MaEieRsqnbrMWtBdR7M2/JGR8zKQaXUd6oitpMERuu44DwdqmkwnnEvoZIWvN6NVvsUPCfdv182yLoDoxUJO+axqGep1dnmECgYEA53HPBGekQZSy9BOP11y/g6wnlNYnFfxcrRnlt++9y3oQLyvGPAG6OIk/f69aDP87Oye2foOEc/wMXpYKtM24w8Bmn1YRQlMXnoo22LUHc8p5s7KbgNXi6UK5yaAAGbdDicrXBw3TJulSSy8Pff14AiKshahUJyapbZeBbdxHe2UCgYEA5N6gEE2ylobCgAGz/Y89XdFsN2Ez+F7jEYfBf4jPonkUGry7LDM46mEduF9pvivEWcTh/nGWrFCaVfzYKhV1q+F0y+hCbLuRO3YpCP4uB9BpwVklKST79kze9jZKAOgvticU9d5M7OU+IqovmKVwh6mqyw+qYzk4iNlwHadGQ2cCgYEAkICYNjHXdjK3QHjuOBJqaHWWCPFkWe/ElTc0HBGNOHuvmyQDkvepIx9eDASZfr/kZVy4LmlCy3+04WFgsd4329BGwnjkMbrbZlr5P3hXfM4QCkgbmubv05+bi+1f4q5vdpq0gmz5RrQqc1Kgo5Mb2Il5mcGtOPyEkC4l20fLQZkCgYAAmcT5xfpuArSH+XkrdTDICkCqdIraYAVgimarmwRQfNjcqRokp43Cr7aQQU/Zu+usAKRHMq0ejqeZCizXD29boB/aWSWze1qKOWkqKOCeDKH6a+15CivPHayIIORY1EMryzZ23rp89K0REjlFwUlmUb+tAMGFuSS41zlAGqxIiQKBgEXu4NyecfEQ2LVZTCeTU2uGHVdLRnXms5hfQh8FFLl2hjJMlsP2Db3P+oRmh49SfUWSoKRI0s0fu1qwJ8JOolvaAP0JTGl8o63vyGzNI/i0qZflwO8BJNLBgsYMHtoKf5xkAazhfytwDSSTp3qWtXcp6Kw9XiEYjOi8jJAXX07L",

        //异步通知地址
        'notify_url' => "http://www.sxqibo.com/demo/alipay.trade.page.pay-PHP-UTF-8/notify_url.php",

        //同步跳转
        'return_url' => "http://www.sxqibo.com/demo/alipay.trade.page.pay-PHP-UTF-8/return_url.php",

        //编码格式
        'charset' => "UTF-8",

        //签名方式
        'sign_type'=>"RSA2",

        //支付宝网关
        'gatewayUrl' => "https://openapi.alipay.com/gateway.do",

        //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
        'alipay_public_key' => "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhLaUQEpBDnaDfwxpVT3PyM+nkNVozOZvIrK+tGyH0y27EBFsDi/Lqb/Dp7iYJkywFRvITVl/CTF+G8Twz9MjGh/I4LjhaexZMHKXcRr3TfJJNE+ND2uWYN0zRwcUdMeVKd59aBDNBX3ubyDgXxTZeCIAGbfDzpqTwBfYnhmI10NJYgQKay1dCgheBZM9xY5CBaYeDhPAlnWk77DGLRlTXjlaYDKVNqwx8gnMK1Xezfl2g6wAF2cNIotq+kPnwJkEflMCGMvJAe8+Fgi2hNC0tzALgBpB3j6WGVh9H2lfHlI2AxKA8lIAh+bNJWsdOcPvEsC/+xoCn3jMyGi3BuSMgwIDAQAB",

];

方法一:固定值法  并将上边代码复制进去,放到 /config/app.php文件中

    // +----------------------------------------------------------------------
    // | 支付宝支付参数
    // +----------------------------------------------------------------------
//	'alipay'=>[
//		//应用ID,您的APPID。
//		'app_id' => "2016090000241",
//
//		//商户私钥
//		'merchant_private_key' => "MIIEowIBAAKCAQEAsBUqNm8NAKnukhMSFNBUlogaiZxwbM3usQQQrnpcCPhmuwqdekjkSS7eBnql5K21N641uR05G+7M1teqz1nn39lPO1pmOQj21jxwEyIZvAFn+RJGQCO+C/853nOEQ7/WACg4FUplTHZukMZA9z438yomc2C+DqcUD/j9XgIC5W2ZdQfXy0elL4Ciq7IT0HYJojS0/Vk1Qf2kPDFCNcNOB1irNL99eZ1ENsuf82CCmw9tVrcWhZ5Jt6n7vyVOp8P5IIsamTk/KvG6Px/8iqccY83Fg0wvn2sWw49vB3YHD7lTQfwBnZHwQ4WmKh6j+na/MdmEat96StMjaylf4hF/TQIDAQABAoIBAGtWG4tfGqAC9qkY8va5IDc69GJaeLX6urwxbDHP6PaW5ZizGdgHQxHRfgqZDTNfKI6upZUYWU3LvhZhFYCcn5p3D7Nwocu2yTFDWlZvfRx8BvNvzl8e6qTJim8uH7xk3oDuA3IHDcUUlMWv9L5CsTyLvzCqEnFALByofVqnAzjzGHFO/PRWpGyPw6gvQyR1yrL8BMQOn+RIUGeJl25TuJzS+X6uOVbdO3I3WKyyyJ6tZbKAxlUY0H2XruPwH/cJZ0h8sLRihRn1ZDnzhJiKPvirwAoLvVU7KwmA5wikFbU7voTqCtxzrrR+zKLzjpu/qQbOQKBgG4iZDMngawdxr/FfNA2uPJKTOniF3TD6roGDjcCmR/Y/47r1CUpEaIOLwuG4GXyRnWT3Lo7a1ve4oTudUhGKtrjPlxPGFqC7MMabknREEDnfjAqLM0tPkhnb1qvRMltepe5fS0kEDEg5Qo9aktJd1wLJ09dWnv7ijh+Bc6l+gin",
//		
//		//异步通知地址
//		'notify_url' => "http://www.81.com/00/notify_url.php",
//		
//		//同步跳转
//		'return_url' => "http://www.81.com/00/return_url.php",
//
//		//编码格式
//		'charset' => "UTF-8",
//
//		//签名方式
//		'sign_type'=>"RSA2",
//
//		//支付宝网关
//		'gatewayUrl' => "https://openapi.alipaydev.com/gateway.do",
//
//		//支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
//		'alipay_public_key' => "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3QV6KrPDrmAPdFc1EqTsPO7kdlHhvs09noSEV4NUxO4XPyz5E62eJRxPlcBuSD1yzM84xBTNXo6WgTM6XuxvM74Bs6hXVm/WcZxSLIGAZ5N9tymx9+09fOMejOObydP/HIi6sfcyQeHBR7owHe9GP4fsSzMQIDAQAB",
//    ]

方法二:动态值法  就是把这些参数保存到数据库中,然后再读出来

在公共文件中读出(路径:/application/common.php),组成数组$config

//支付宝支付参数
function alipay_confing(){
	$config['app_id']='20100919000241';
	$config['merchant_private_key']='MIIEowIBAAKCAQEAsBUqNm8NAKnukhMSFNBUlogaiZxwbM3usQQQrnpcCPhmuwqdekjkSS7eBnql5K21N641uR05G+7M1teqz1ng5Qo9aktJd1wLJ09dWnv7ijh+Bc6l+gin';
	$config['notify_url']='';
	$config['return_url']='';
	$config['charset']='UTF-8';
	$config['sign_type']='RSA2';
	$config['gatewayUrl']='https://openapi.alipaydev.com/gateway.do';
	$config['alipay_public_key']='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3QV6KrPDrmAPdFc1EqTsPO7kdlHhvs09noSEV4NUxO4XPyz5E62eJRxPlcBuSD1yzM84xBTNXo6WgTM6XuxvM74Bs6hXVm/WcZxSLIGAZ5N9tymx9+09fOMejOObydP/GOrEAV4KF5tB65+/aq4+rvp0w/QlhfmMHwjaazLXmdBjSzXj5x1v0Ep2uzPG4SgH+XCvM6SCN0mvSIKdZDPtIowPlpLXOqzMQIDAQAB';
	
	return $config;
	
}

调用:/application/common.php文件中

$config=alipay_confing();

浏览器输入
http://tp5_alipay2017/index/play/index

控制器代码

<?php
namespace app\index\Controller;
use think\Controller;


class Play extends Controller{
	
	


    public function index()
    {

         // dump(config('alipay'));exit;
          alipayPagepay(build_order_no(),'商品标题','111.11','商品描述');
        //return $this->fetch();
    }

	

}

步骤三:关键函数文件

位置:application/common.php

5.0版本   关键性函数文件:

<?php
// +----------------------------------------------------------------------
// | NewThink [ Think More,Think Better! ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2018 http://www.newthink.cc All rights reserved.
// +----------------------------------------------------------------------
// | 版权所有:山西创泰网络科技有限公司
// +----------------------------------------------------------------------
// | Author: 子弹兄  Date:2017-09-18 Time:12:35
// +----------------------------------------------------------------------

//生成唯一订单号
function build_order_no(){
    return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
}
/**
 * 支付宝 电脑网站支付
 * @auhor hongweizhiyuan
 * @param $out_trade_no     商户订单号
 * @param $subject          订单名称
 * @param $total_amount     订单金额
 * @param $body             商品描述
 * @example alipayPagepay('201791711599526','商品标题','0.01','商品描述');
 */
function alipayPagepay($out_trade_no,$subject,$total_amount,$body)
{

    //step1:获取配置
    import('AlipayTradePagePay.pagepay.service.AlipayTradeService',EXTEND_PATH,'.php');// 加载交易服务类
    $config=config('alipay');
    $aop=new AlipayTradeService($config);

    //step2:加载表单,构造参数
    import('AlipayTradePagePay.pagepay.buildermodel.AlipayTradePagePayContentBuilder',EXTEND_PATH,'.php');  // 支付宝电脑网站支付
    $payRequestBuilder = new AlipayTradePagePayContentBuilder();
    $payRequestBuilder->setBody($body);
    $payRequestBuilder->setSubject($subject);
    $payRequestBuilder->setTotalAmount($total_amount);
    $payRequestBuilder->setOutTradeNo($out_trade_no);

    //step3:创建支付
    $response = $aop->pagePay($payRequestBuilder,$config['return_url'],$config['notify_url']);

    //输出表单
    var_dump($response);

}




/**
 * 支付宝 电脑网站 交易查询
 * @param $WIDTQout_trade_no     商户订单号,商户网站订单系统中唯一订单号(请二选一设置)
 * @param $WIDTQtrade_no         支付宝交易号(请二选一设置)
 */
function alipayQuery($WIDTQout_trade_no,$WIDTQtrade_no)
{
    //step1:获取配置
    import('AlipayTradePagePay.pagepay.service.AlipayTradeService',EXTEND_PATH,'.php');// 加载交易服务类
    $config=config('alipay');
    $aop = new AlipayTradeService($config);

    //step2:加载表单,构造参数
    import('AlipayTradePagePay.pagepay.buildermodel.AlipayTradeQueryContentBuilder',EXTEND_PATH,'.php');  // 支付宝电脑网站支付查询接口
    $RequestBuilder = new AlipayTradeQueryContentBuilder();
    $RequestBuilder->setOutTradeNo($WIDTQout_trade_no);
    $RequestBuilder->setTradeNo($WIDTQtrade_no);

    /**
     * alipay.trade.query (统一收单线下交易查询)
     * @param $builder 业务参数,使用buildmodel中的对象生成。
     * @return $response 支付宝返回的信息
     */
    $response = $aop->Query($RequestBuilder);
    var_dump($response);
}

/**
 * 支付宝 电脑网站 退款
 * @param $out_trade_no     商户订单号,商户网站订单系统中唯一订单号(请二选一设置)
 * @param $trade_no         支付宝交易号(请二选一设置)
 * @param $refund_amount    需要退款的金额,该金额不能大于订单金额,必填
 * @param $refund_reason    退款的原因说明
 * @param $out_request_no   标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传
 */
function alipayRefund($out_trade_no,$trade_no,$refund_amount,$refund_reason,$out_request_no)
{
    //step1:获取配置
    import('AlipayTradePagePay.pagepay.service.AlipayTradeService',EXTEND_PATH,'.php');// 加载交易服务类
    $config=config('alipay');
    $aop = new AlipayTradeService($config);

    //step2:加载表单,构造参数
    import('AlipayTradePagePay.pagepay.buildermodel.AlipayTradeRefundContentBuilder',EXTEND_PATH,'.php');  // 支付宝电脑网站支付退款接口
    $RequestBuilder=new AlipayTradeRefundContentBuilder();
    $RequestBuilder->setOutTradeNo($out_trade_no);
    $RequestBuilder->setTradeNo($trade_no);
    $RequestBuilder->setRefundAmount($refund_amount);
    $RequestBuilder->setOutRequestNo($out_request_no);
    $RequestBuilder->setRefundReason($refund_reason);

    /**
     * alipay.trade.refund (统一收单交易退款接口)
     * @param $builder 业务参数,使用buildmodel中的对象生成。
     * @return $response 支付宝返回的信息
     */
    $response = $aop->Refund($RequestBuilder);
    var_dump($response);;
}

/**
 * 支付宝 电脑网站 退款查询
 * @param $out_trade_no         商户订单号,商户网站订单系统中唯一订单号(请二选一设置)
 * @param $trade_no             支付宝交易号(请二选一设置)
 * @param $out_request_no       请求退款接口时,传入的退款请求号,如果在退款请求时未传入,则该值为创建交易时的外部交易号,必填
 */
function alipayRefundQuery($out_trade_no,$trade_no,$out_request_no)
{
    //step1:获取配置
    import('AlipayTradePagePay.pagepay.service.AlipayTradeService',EXTEND_PATH,'.php');// 加载交易服务类
    $config=config('alipay');
    $aop = new AlipayTradeService($config);

    //step2:加载表单,构造参数
    import('AlipayTradePagePay.pagepay.buildermodel.AlipayTradeFastpayRefundQueryContentBuilder',EXTEND_PATH,'.php');  // 支付宝电脑网站 统一收单交易退款查询
    $RequestBuilder=new AlipayTradeFastpayRefundQueryContentBuilder();
    $RequestBuilder->setOutTradeNo($out_trade_no);
    $RequestBuilder->setTradeNo($trade_no);
    $RequestBuilder->setOutRequestNo($out_request_no);

    /**
     * 退款查询   alipay.trade.fastpay.refund.query (统一收单交易退款查询)
     * @param $builder 业务参数,使用buildmodel中的对象生成。
     * @return $response 支付宝返回的信息
     */
    $response = $aop->refundQuery($RequestBuilder);
    var_dump($response);
}

/**
 * 支付宝 电脑网站 交易关闭
 * @param $out_trade_no     商户订单号,商户网站订单系统中唯一订单号(请二选一设置)
 * @param $trade_no         支付宝交易号(请二选一设置)
 */
function alipayClose($out_trade_no,$trade_no)
{
    //step1:获取配置
    import('AlipayTradePagePay.pagepay.service.AlipayTradeService',EXTEND_PATH,'.php');// 加载交易服务类
    $config=C('ALIPAY_CONFIG');
    $aop = new AlipayTradeService($config);

    //step2:加载表单,构造参数
    import('AlipayTradePagePay.pagepay.buildermodel.AlipayTradeCloseContentBuilder',EXTEND_PATH,'.php');  // 支付宝电脑网站 统一收单交易关闭接口
    $RequestBuilder=new AlipayTradeCloseContentBuilder();
    $RequestBuilder->setOutTradeNo($out_trade_no);
    $RequestBuilder->setTradeNo($trade_no);

    /**
     * alipay.trade.close (统一收单交易关闭接口)
     * @param $builder 业务参数,使用buildmodel中的对象生成。
     * @return $response 支付宝返回的信息
     */
    $response = $aop->Close($RequestBuilder);
    var_dump($response);
}

5.1版本   关键性函数文件:

//生成唯一订单号
function build_order_no(){
    return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
}
/**
 * 支付宝 电脑网站支付
 * @auhor hongweizhiyuan
 * @param $out_trade_no     商户订单号
 * @param $subject          订单名称
 * @param $total_amount     订单金额
 * @param $body             商品描述
 * @example alipayPagepay('201791711599526','商品标题','0.01','商品描述');
 */
function alipayPagepay($out_trade_no,$subject,$total_amount,$body)
{

    //step1:获取配置
    //import('AlipayTradePagePay.pagepay.service.AlipayTradeService',EXTEND_PATH,'.php');// 加载交易服务类
    require '../extend/AlipayTradePagePay/pagepay/service/AlipayTradeService.php';
    $config=config('alipay');
	  //dump($config);
	  //$config2['appId']=$config['appId'];
    $aop=new AlipayTradeService($config);

    //step2:加载表单,构造参数
    //import('AlipayTradePagePay.pagepay.buildermodel.AlipayTradePagePayContentBuilder',EXTEND_PATH,'.php');  // 支付宝电脑网站支付
    require '../extend/AlipayTradePagePay/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php';
    $payRequestBuilder = new AlipayTradePagePayContentBuilder();
    $payRequestBuilder->setBody($body);
    $payRequestBuilder->setSubject($subject);
    $payRequestBuilder->setTotalAmount($total_amount);
    $payRequestBuilder->setOutTradeNo($out_trade_no);

    //step3:创建支付
    $response = $aop->pagePay($payRequestBuilder,$config['return_url'],$config['notify_url']);

    //输出表单
    var_dump($response);

}




/**
 * 支付宝 电脑网站 交易查询
 * @param $WIDTQout_trade_no     商户订单号,商户网站订单系统中唯一订单号(请二选一设置)
 * @param $WIDTQtrade_no         支付宝交易号(请二选一设置)
 */
function alipayQuery($WIDTQout_trade_no,$WIDTQtrade_no)
{
    //step1:获取配置
    //import('AlipayTradePagePay.pagepay.service.AlipayTradeService',EXTEND_PATH,'.php');// 加载交易服务类
    require '../extend/AlipayTradePagePay/pagepay/service/AlipayTradeService.php';
    $config=config('alipay');
    $aop = new AlipayTradeService($config);

    //step2:加载表单,构造参数
    //import('AlipayTradePagePay.pagepay.buildermodel.AlipayTradeQueryContentBuilder',EXTEND_PATH,'.php');  // 支付宝电脑网站支付查询接口
    require '../extend/AlipayTradePagePay/pagepay/buildermodel/AlipayTradeQueryContentBuilder.php';
    $RequestBuilder = new AlipayTradeQueryContentBuilder();
    $RequestBuilder->setOutTradeNo($WIDTQout_trade_no);
    $RequestBuilder->setTradeNo($WIDTQtrade_no);

    /**
     * alipay.trade.query (统一收单线下交易查询)
     * @param $builder 业务参数,使用buildmodel中的对象生成。
     * @return $response 支付宝返回的信息
     */
    $response = $aop->Query($RequestBuilder);
    var_dump($response);
}

/**
 * 支付宝 电脑网站 退款
 * @param $out_trade_no     商户订单号,商户网站订单系统中唯一订单号(请二选一设置)
 * @param $trade_no         支付宝交易号(请二选一设置)
 * @param $refund_amount    需要退款的金额,该金额不能大于订单金额,必填
 * @param $refund_reason    退款的原因说明
 * @param $out_request_no   标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传
 */
function alipayRefund($out_trade_no,$trade_no,$refund_amount,$refund_reason,$out_request_no)
{
    //step1:获取配置
    //import('AlipayTradePagePay.pagepay.service.AlipayTradeService',EXTEND_PATH,'.php');// 加载交易服务类
    require '../extend/AlipayTradePagePay/pagepay/service/AlipayTradeService.php';
    $config=config('alipay');
    $aop = new AlipayTradeService($config);

    //step2:加载表单,构造参数
    //import('AlipayTradePagePay.pagepay.buildermodel.AlipayTradeRefundContentBuilder',EXTEND_PATH,'.php');  // 支付宝电脑网站支付退款接口
    require '../extend/AlipayTradePagePay/pagepay/buildermodel/AlipayTradeRefundContentBuilder.php';
    $RequestBuilder=new AlipayTradeRefundContentBuilder();
    $RequestBuilder->setOutTradeNo($out_trade_no);
    $RequestBuilder->setTradeNo($trade_no);
    $RequestBuilder->setRefundAmount($refund_amount);
    $RequestBuilder->setOutRequestNo($out_request_no);
    $RequestBuilder->setRefundReason($refund_reason);

    /**
     * alipay.trade.refund (统一收单交易退款接口)
     * @param $builder 业务参数,使用buildmodel中的对象生成。
     * @return $response 支付宝返回的信息
     */
    $response = $aop->Refund($RequestBuilder);
    var_dump($response);;
}

/**
 * 支付宝 电脑网站 退款查询
 * @param $out_trade_no         商户订单号,商户网站订单系统中唯一订单号(请二选一设置)
 * @param $trade_no             支付宝交易号(请二选一设置)
 * @param $out_request_no       请求退款接口时,传入的退款请求号,如果在退款请求时未传入,则该值为创建交易时的外部交易号,必填
 */
function alipayRefundQuery($out_trade_no,$trade_no,$out_request_no)
{
    //step1:获取配置
    //import('AlipayTradePagePay.pagepay.service.AlipayTradeService',EXTEND_PATH,'.php');// 加载交易服务类
    require '../extend/AlipayTradePagePay/pagepay/service/AlipayTradeService.php';
    $config=config('alipay');
    $aop = new AlipayTradeService($config);

    //step2:加载表单,构造参数
    //import('AlipayTradePagePay.pagepay.buildermodel.AlipayTradeFastpayRefundQueryContentBuilder',EXTEND_PATH,'.php');  // 支付宝电脑网站 统一收单交易退款查询
    require '../extend/AlipayTradePagePay/pagepay/buildermodel/AlipayTradeFastpayRefundQueryContentBuilder.php';
    $RequestBuilder=new AlipayTradeFastpayRefundQueryContentBuilder();
    $RequestBuilder->setOutTradeNo($out_trade_no);
    $RequestBuilder->setTradeNo($trade_no);
    $RequestBuilder->setOutRequestNo($out_request_no);

    /**
     * 退款查询   alipay.trade.fastpay.refund.query (统一收单交易退款查询)
     * @param $builder 业务参数,使用buildmodel中的对象生成。
     * @return $response 支付宝返回的信息
     */
    $response = $aop->refundQuery($RequestBuilder);
    var_dump($response);
}

/**
 * 支付宝 电脑网站 交易关闭
 * @param $out_trade_no     商户订单号,商户网站订单系统中唯一订单号(请二选一设置)
 * @param $trade_no         支付宝交易号(请二选一设置)
 */
function alipayClose($out_trade_no,$trade_no)
{
    //step1:获取配置
    //import('AlipayTradePagePay.pagepay.service.AlipayTradeService',EXTEND_PATH,'.php');// 加载交易服务类
    require '../extend/AlipayTradePagePay/pagepay/service/AlipayTradeService.php';
    $config=C('ALIPAY_CONFIG');
    $aop = new AlipayTradeService($config);

    //step2:加载表单,构造参数
    //import('AlipayTradePagePay.pagepay.buildermodel.AlipayTradeCloseContentBuilder',EXTEND_PATH,'.php');  // 支付宝电脑网站 统一收单交易关闭接口
    require '../extend/AlipayTradePagePay/pagepay/buildermodel/AlipayTradeCloseContentBuilder.php';
    $RequestBuilder=new AlipayTradeCloseContentBuilder();
    $RequestBuilder->setOutTradeNo($out_trade_no);
    $RequestBuilder->setTradeNo($trade_no);

    /**
     * alipay.trade.close (统一收单交易关闭接口)
     * @param $builder 业务参数,使用buildmodel中的对象生成。
     * @return $response 支付宝返回的信息
     */
    $response = $aop->Close($RequestBuilder);
    var_dump($response);
}

5.1版以之前的不同就是5.1版取消了import()这种引入类方法

    //import('AlipayTradePagePay.pagepay.service.AlipayTradeService',EXTEND_PATH,'.php');// 加载交易服务类
    require '../extend/AlipayTradePagePay/pagepay/service/AlipayTradeService.php';

猜你喜欢

转载自blog.csdn.net/haibo0668/article/details/81098467
今日推荐