Laravel,在将表单值发送到Paypal之前,请检查客户端是否更改了表单值



我有一个带有输入值的表单要发送到https://www.sandbox.paypal.com/cgi-bin/webscr.问题是,它们可以在客户端由检查器进行编辑。那么,如果在我向Paypal发出请求之前,输入值已经更改,如何在Laravel 8.x中进行检查呢?

<form id="fFlightPrice" method="post" action="{{ env('PAYPAL_FORM_URL') }}">
<div class="my-3">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="no_note" value="0">
<input type="hidden" name="bn" value="RB_BuyNow_WPS_IT">
<input type="hidden" name="tax_cart" value="0.00">
<input type="hidden" name="rm" value="2">
<input type="hidden" name="business" value="{{ env('PAYPAL_BUSINNESS_EMAIL') }}">
<input type="hidden" name="handling_cart" value="0">
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="lc" value="IT">
<input type="hidden" name="return" value="{{ route(P::ROUTE_PAYPAL_RETURN) }}">
<input type="hidden" name="cbt" value="Torna al sito">
<input type="hidden" name="cancel_return" value="{{ route(P::ROUTE_PAYPAL_CANCEL) }}">
</div>
<div class="my-3">
@forelse($flights as $flight)
<input type="hidden" name="item_name_{{ $loop->iteration }}" value="{{ $flight['name'] }}">
<input type="hidden" name="item_number_{{ $loop->iteration }}" value="{{ $flight['id'] }}">
<input type="hidden" name="amount_{{ $loop->iteration}}" value="{{ $flight['flight_price'] }}">
@empty
@endforelse
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary btn-lg">PAGA</button>
</div>
</form>

放弃旧的纯HTML集成,使用服务器上的v2/Checkout/orders REST API更改为当前版本的PayPal Checkout。

首先在您的服务器上创建两个路由(url路径(,一个用于"创建订单",一个为"捕获订单"。您可以将Checkout-PHP-SDK(最近不推荐使用(用于路由对PayPal的API调用,或者您自己的HTTPS实现,即首先获取访问令牌,然后进行调用。这两个路由都应该只返回/输出JSON数据(没有HTML或文本(。在第二条路线中,当捕获API成功时,您应该验证金额是否正确,并将其结果付款详细信息存储在数据库中(特别是purchase_units[0].payments.captures[0].id,它是PayPal交易ID(,并在将返回JSON转发给前端呼叫者之前立即执行任何必要的业务逻辑(如预订产品或发送电子邮件(。在发生错误的情况下,也会转发它的JSON详细信息,因为前端必须处理这种情况。

将这两条路线与此前端审批流配对:https://developer.paypal.com/demo/checkout/#/pattern/server。(如果您需要将任何其他数据从客户端发送到服务器,例如项数组或所选选项,请在fetch中添加一个body参数,该参数的值为JSON字符串或对象(

相关内容

  • 没有找到相关文章

最新更新