如何解决如何将参数正确传递给贝宝按钮laravel
我正在创建一个小购物车,它将您购买的商品的价值传递到贝宝购物车,以便您可以快速结帐。我的问题是它目前为每个添加到购物车的项目创建一个贝宝按钮。让我给你看看。
由于购物车中有 3 件商品,因此有 3 个按钮。查看源代码后,很明显:代码位于@foreach 列中。我的问题是,如何初始化值 $id => $details 以便我可以传递正在处理的产品的实际值,这样用户就不需要手动输入他或她想要的产品?我还没有找到不使用“@foreach”的方法来做到这一点。让我向您展示我的代码:
这是 layout.blade.PHP:
<!DOCTYPE html>
<html>
<head>
<Meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>@yield('Carrito')</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="{{ asset('css/style2.css') }}">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-lg-12 col-sm-12 col-12 main-section">
<div class="dropdown">
<button type="button" class="btn btn-info" data-toggle="dropdown">
<i class="fa fa-shopping-cart" aria-hidden="true"></i> Carrito <span class="badge badge-pill badge-danger">{{ count((array) session('cart')) }}</span>
</button>
<div class="dropdown-menu">
<div class="row total-header-section">
<div class="col-lg-6 col-sm-6 col-6">
<i class="fa fa-shopping-cart" aria-hidden="true"></i> <span class="badge badge-pill badge-danger">{{ count((array) session('cart')) }}</span>
</div>
<?PHP $total = 0 ?>
@foreach((array) session('cart') as $id => $details)
<?PHP $total += $details['price'] * $details['quantity'] ?>
@endforeach
<div class="col-lg-6 col-sm-6 col-6 total-section text-right">
<p>Total: <span class="text-info">$ {{ $total }}</span></p>
</div>
</div>
@if(session('cart'))
@foreach(session('cart') as $id => $details)
<div class="row cart-detail">
<div class="col-lg-4 col-sm-4 col-4 cart-detail-img">
<img src="{{ $details['photo'] }}" />
</div>
<div class="col-lg-8 col-sm-8 col-8 cart-detail-product">
<p>{{ $details['name'] }}</p>
<span class="price text-info"> ${{ $details['price'] }}</span> <span class="count"> Quantity:{{ $details['quantity'] }}</span>
</div>
</div>
@endforeach
@endif
<div class="row">
<div class="col-lg-12 col-sm-12 col-12 text-center checkout">
<a href="{{ url('cart') }}" class="btn btn-primary btn-block">Ver todo</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="container page">
@yield('content')
</div>
@yield('scripts')
</body>
</html>
这是cart.blade.PHP
@extends('layout')
@section('title','Cart')
@section('content')
<table id="cart" class="table table-hover table-condensed">
<thead>
<tr>
<th style="width:50%">Producto</th>
<th style="width:10%">Precio</th>
<th style="width:8%">Cantidad</th>
<th style="width:22%" class="text-center">Subtotal</th>
<th style="width:10%"></th>
</tr>
</thead>
<tbody>
<?PHP $total = 0 ?>
@if(session('cart'))
@foreach(session('cart') as $id => $details)
<?PHP $total += $details['price'] * $details['quantity'] ?>
<tr>
<td data-th="Product">
<div class="row">
<div class="col-sm-3 hidden-xs"><img src="{{ $details['photo'] }}" width="100" height="100" class="img-responsive"/></div>
<div class="col-sm-9">
<h4 class="nomargin">{{ $details['name'] }}</h4>
</div>
</div>
</td>
<td data-th="Price">${{ $details['price'] }}</td>
<td data-th="Quantity">
<input type="number" value="{{ $details['quantity'] }}" class="form-control quantity" />
</td>
<td data-th="Subtotal" class="text-center">${{ $details['price'] * $details['quantity'] }}</td>
<td class="actions" data-th="">
<button class="btn btn-info btn-sm update-cart" data-id="{{ $id }}"><i class="fa fa-refresh"></i></button>
<button class="btn btn-danger btn-sm remove-from-cart" data-id="{{ $id }}"><i class="fa fa-trash-o"></i></button>
</td>
</tr>
@endforeach
@endif
</tbody>
<tfoot>
<tr class="visible-xs">
<td class="text-center"><strong>Total {{ $total }}</strong></td>
</tr>
<tr>
<td><a href="{{ url('/products') }}" class="btn btn-warning"><i class="fa fa-angle-left"></i> Seguir comprando</a></td>
<td colspan="2" class="hidden-xs"></td>
<td class="hidden-xs text-center"><strong>Total ${{ $total }}</strong></td>
<!-- the paypal button part -->
@if(session('cart'))
@foreach(session('cart') as $id => $details)
<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post" >
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="business" value="notanothergenericaddress@gmail.com">
<input type="hidden" name="lc" value="US">
<input type="hidden" name="item_name" value="{{ $details['name'] }}">
<input type="hidden" name="amount" value="{{ $details['price'] }}">
<input type="hidden" name="currency_code" value="MXN">
<input type="hidden" name="button_subtype" value="products">
<input type="hidden" name="no_note" value="0">
<input type="hidden" name="tax_rate" value="15.000">
<input type="hidden" name="shipping" value="500.00">
<input type="hidden" name="add" value="{{ $details['quantity'] }}">
<input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHostedGuest">
<input type="image" src="https://www.paypalobjects.com/es_XC/i/btn/btn_cart_LG.gif" border="0" name="submit" alt="PayPal,la forma más segura y rápida de pagar en línea.">
<img alt="" src="https://www.paypalobjects.com/es_XC/i/scr/pixel.gif" width="1" height="1">
</form>
@endforeach
@endif
</tr>
</tfoot>
</table>
解决方法
不是添加到购物车按钮,而是使用 cart upload 渲染单个按钮。然而,这一切都非常古老。您应该集成当前版本的 PayPal Checkout,而不是这些 HTML 按钮。
因为你有一台服务器,所以做两条路线:一条用于“创建订单”,另一条用于“捕获订单”,documented here。这些路由应该只返回 JSON 数据(没有 HTML 或文本)。后者应该(成功时)在返回之前将付款详细信息存储在您的数据库中(特别是 purchase_units[0].payments.captures[0].id
,PayPal 交易 ID)
将这两条路线与以下审批流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。