返回的html页面
"<form id='alipayment' action='/plugins/alipay/pagepay/pagepay.php' method='post' style='display:none'>
<input id='WIDout_trade_no' name='WIDout_trade_no' value='订单ID'/>
<input id='WIDsubject' name='WIDsubject' value='什么订单' />
<input id='WIDtotal_amount' name='WIDtotal_amount' value='订单金额'/>
<input id='WIDbody' name='WIDbody' value='。。。。' />
</form><script>document.getElementById('alipayment').submit();</script>"
同步回调方法
public function callback()
{
//参考/plugins/alipay/return_url.php
//接收参数
$params = input();
//参数检测(签名验证) 接收到的参数 和 支付宝传递的参数 是否发生改变
require_once("./plugins/alipay/config.php");
require_once './plugins/alipay/pagepay/service/AlipayTradeService.php';
$alipaySevice = new \AlipayTradeService($config);
$result = $alipaySevice->check($params);
if($result){
//验签成功
//展示结果
。。。。。。。。
}else{
//验签失败
//展示结果
。。。。。。。
}
}
public function pay() { //接收参数 $params = input(); //检测参数 $validate = $this->validate($params, [ 'order_sn' => 'require', 'pay_code|支付方式' => 'require' ]); if($validate !== true){ $this->error($validate); } //查询订单 $user_id = session('user_info.id'); $order = \app\common\model\Order::where('order_sn', $params['order_sn'])->where('user_id', $user_id)->find(); if(!$order){ $this->error('订单不存在'); } //将选择的支付方式,修改到订单表 $pay_type = config('pay_type'); $order->pay_code = $params['pay_code']; //$order->pay_name = config('pay_type.' . $params['pay_code'])['pay_name']; $order->pay_name = $pay_type[$params['pay_code']]['pay_name']; $order->save(); //支付(根据支付方式进行处理) } /** * 页面跳转 同步通知地址 get请求 */ public function callback() { //参考/plugins/alipay/return_url.php //接收参数 $params = input(); //参数检测(签名验证) 接收到的参数 和 支付宝传递的参数 是否发生改变 require_once("./plugins/alipay/config.php"); require_once './plugins/alipay/pagepay/service/AlipayTradeService.php'; $alipaySevice = new \AlipayTradeService($config); $result = $alipaySevice->check($params); if($result){ //验签成功 $order_sn = $params['out_trade_no']; $order = \app\common\model\Order::where('order_sn', $order_sn)->find(); //展示结果 return view('paysuccess', ['pay_name' => '支付宝', 'order_amount'=>$params['total_amount'], 'order' => $order]); }else{ //验签失败 //展示结果 return view('payfail', ['msg' => '支付失败']); } }
//支付方式 'pay_type' => [ 'alipay' => ['pay_code'=>'alipay', 'pay_name'=>'支付宝', 'logo'=>'/static/home/img/_/pay2.jpg'], 'wechat' => ['pay_code'=>'wechat', 'pay_name'=>'微信支付', 'logo'=>'/static/home/img/_/pay3.jpg'], 'union' => ['pay_code'=>'union', 'pay_name'=>'银联', 'logo'=>'/static/home/img/_/pay4.jpg'], ],