/**
* PC扫码支付
*/
public function page_pay()
{
header("Content-type: text/html; charset=utf-8");
//引入对应的sdk包
require_once EXTEND_PATH.'page/pagepay/service/AlipayTradeService.php';
require_once EXTEND_PATH.'page/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php';
//订单号
$out_trade_no = trim($_POST['order_no']);
//订单名称,必填(此处为订单类型名称)
$subject = trim($_POST['order_type']);
//付款金额,必填
$total_amount = 0.01;
//商品描述,可空
$body = '支付订单金额';
//构造参数
$payRequestBuilder = new \AlipayTradePagePayContentBuilder();
$payRequestBuilder->setBody($body);
$payRequestBuilder->setSubject($subject);
$payRequestBuilder->setTotalAmount($total_amount);
$payRequestBuilder->setOutTradeNo($out_trade_no);
$aop = new \AlipayTradeService(config('alipay'));
/**
* pagePay 电脑网站支付请求
* @param $builder 业务参数,使用buildmodel中的对象生成。
* @param $return_url 同步跳转地址,公网可以访问
* @param $notify_url 异步通知地址,公网可以访问
* @return $response 支付宝返回的信息
*/
$notify_url = "同步通知地址,自己根据需求设置";
$response = $aop->pagePay($payRequestBuilder,config('alipay.return_url'),$notify_url);
//输出表单
return $response;
}
//异步回调方法
public function page_notify_url()
{
require_once EXTEND_PATH.'page/pagepay/service/AlipayTradeService.php';
$arr=$_POST;
$alipaySevice = new \AlipayTradeService(config('alipay'));
$alipaySevice->writeLog(var_export($_POST,true));
$result = $alipaySevice->check($arr);
if($result) {//验证成功
//支付宝交易订单号
$out_trade_no = $_POST['out_trade_no'];
if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
//处理订单逻辑代码,也可在同步通知地址进行处理
}
return "success";
}else {
return "fail";
}
}
============================================================================
/**
* 支付宝手机网页支付
*/
public function wap_pay()
{
header("Content-type: text/html; charset=utf-8");
require_once EXTEND_PATH . 'wap/wappay/service/AlipayTradeService.php';
require_once EXTEND_PATH . 'wap/wappay/buildermodel/AlipayTradeWapPayContentBuilder.php';
//商户订单号,商户网站订单系统中唯一订单号,必填
//订单号
$out_trade_no = trim($_POST['order_no']);
//订单名称,必填(此处为订单类型名称)
$subject = trim($_POST['order_type']);
//付款金额,必填
$total_amount = $order_info['payment'];
// $total_amount = 0.01;
//商品描述,可空
$body = '支付订单金额';
//超时时间
$timeout_express = "20m";
$payRequestBuilder = new \AlipayTradeWapPayContentBuilder();
$payRequestBuilder->setBody($body);
$payRequestBuilder->setSubject($subject);
$payRequestBuilder->setOutTradeNo($pay_no);
$payRequestBuilder->setTotalAmount($total_amount);
$payRequestBuilder->setTimeExpress($timeout_express);
$payResponse = new \AlipayTradeService(config('alipay'));
$notify_url = "异步回调地址";
$return_url = "同步跳转地址";
$result = $payResponse->wapPay($payRequestBuilder,$return_url,$notify_url);
return $result;
}
}
/**
* 支付宝手机网页异步回调通知--处理订单状态以及用户状态
*/
public function wap_notify_url()
{
require_once EXTEND_PATH.'wap/wappay/service/AlipayTradeService.php';
$arr=$_POST;
$alipaySevice = new \AlipayTradeService(config('alipay'));
//日志打印
$alipaySevice->writeLog(var_export($_POST,true));
$result = $alipaySevice->check($arr);
if($result) {//验证成功
//支付宝交易订单号
$pay_no = $_POST['out_trade_no'];
if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
//处理支付成功后的逻辑
}
return "success";
}else {
return "fail";
}
}
注意:异步回调地址一定要外网可访问,没有权限,还有就是要关闭调试模式