支付宝支付


1、前端css form表单提交

 
"{{url('payaction')}}" method="post" id="form1" style="display: none">
  type="hidden" value="202021256412325" name="order_sn">
  type="hidden" value="1890" name="total_money">
  type="hidden" value="这是订单名称" name="WIDsubject">
  type="hidden" value="" name="paytype" id="paytype">
  @csrf
 

2、js

 

3、后端PHP代码

  // 支付处理
  public function payAction(Request $request){
  // 1.接收数据
  $data["WIDout_trade_no"] = $request->input("order_sn");// 订单号
  $data['WIDtotal_amount'] = $request->input("total_money");// 总金额
  $data['WIDsubject'] = $request->input("WIDsubject");//订单名称
  $paytype = $request->input("paytype");//类型
   
  switch ($paytype){
  case "weixin":
  break;
  case "union":
  break;
  case "alipay":
  default:
  // 2.向支付宝接口发送请求
  $url = "http://www.lv.com/alipay/pagepay/pagepay.php";
  $headers = array('Content-Type: application/x-www-form-urlencoded');
  echo curl($url,$data,$headers);
  }
  }

4、callback返回

  public function callback(){
  require_once("./alipay/config.php");
  require_once './alipay/pagepay/service/AlipayTradeService.php';
  $all = request()->all();
  $alipaySevice = new \AlipayTradeService($config);
  $result = $alipaySevice->check($all);
  if($result){
  $total_amount = $all["total_amount"];
  return view("payok",["total_amount"=>$total_amount]);
  }else{
  return view("payfail");
  }
  // 等着支付宝给我跳回来 get
  // dd(request()->all());
  // $all = request()->all();
  }

4.1、callback添加一下代码:校验、防止get返回值被修改

4.2、notify

查看代码

  public function notify(){
  require_once("./alipay/config.php");
  require_once './alipay/pagepay/service/AlipayTradeService.php';
  $all = request()->all();
  $alipaySevice = new \AlipayTradeService($config);
  $result = $alipaySevice->check($all);
  if($result){
   
  }
  }

4.3、修改方法名

5、公共函数curl

查看代码

6、插入Alipay文件

7、配置文件