支付宝支付
1、前端css form表单提交
| 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
| $(".submit").click(function () { | |
| var paytype = ""; | |
| $(".payType li").each(function () { | |
| console.log( $(this).css("border")) | |
| // 如果当期对象的css 中的属性和"2px solid rgb(228, 57, 60)" 相等的话,就获取这个对象中paytype的值 | |
| if($(this).css("border") == "2px solid rgb(228, 57, 60)"){ | |
| paytype = $(this).attr("paytype"); | |
| } | |
| }); | |
| $("#paytype").val(paytype); | |
| $("#order_sn").val(Math.floor(Math.random()*1000)); | |
| $("#total_money").val(Math.floor(Math.random()*100)); | |
| $("#form1").submit(); // 提交表单 | |
| // console.log(paytype); | |
| // if(paytype ==""){ | |
| // alert("请选择支付方式"); | |
| // return false; | |
| // } | |
| // 1.支付方式(有) 2. 订单编号(有) 3.订单金额(有) 4.订单描述(商品名称) 不要在用了 | |
| {{--$.post("{{url('payaction')}}",{paytype:paytype,order_sn:'2045545114212212211254',total_money:0.01,WIDsubject:"好东西",_token:'{{csrf_token()}}'});--}} | |
| }); | |
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
查看代码