1、前端css form表单提交
<form action="{{url('payaction')}}" method="post" id="form1" style="display: none">
<input type="hidden" value="12345556" name="order_sn">
<input type="hidden" value="123" name="total_money">
<input type="hidden" value="这是订单名称" name="WIDsubject">
<input type="hidden" value="" name="paytype" id="paytype">
@csrf
</form>
2、js
<script>
$(".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);
$("#form1").submit(); // 提交表单
// console.log(paytype);
// if(paytype ==""){
// alert("请选择支付方式");
// return false;
// }
// 1.支付方式(有) 2. 订单编号(有) 3.订单金额(有) 4.订单描述(商品名称) 不要在用了
{{--$.post("{{url('payaction')}}",{paytype:paytype,order_sn:'2045545454',total_money:0.01,desc:"好东西",_token:'{{csrf_token()}}'});--}}
});
</script>
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);
}
}
public function callback(){
// 等着支付宝给我跳回来 get
// dd(request()->all());
$all = request()->all();
$total_amount = $all["total_amount"];
return view("payok",["total_amount"=>$total_amount]);
}
4、公共函数curl
function curl($url,$data,$headers){
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); // Post提交的数据包
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($curl); // 执行操作
if (curl_errno($curl)) {
echo 'Errno'.curl_error($curl);//捕抓异常
}
curl_close($curl); // 关闭CURL会话
echo($result);
5、插入Alipay文件
![]()
6、配置文件
![]()