🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
位置:application/index/common.php 关键性函数文件: ``` <?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); } ```