位置: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);
}
```