向客户视图显示交易 ID

Posted

技术标签:

【中文标题】向客户视图显示交易 ID【英文标题】:Displaying Transaction Id to the customers view 【发布时间】:2021-11-29 17:54:48 【问题描述】:

我一直在制作电子商务 laravel 系统,在客户完成所有付款后,我一直在努力向他们展示他们的交易 ID。我正在使用 API 来执行交易。用户成功完成支付后,交易 ID 会被保存到数据库中。现在,我想获取交易 ID,并将其显示在客户视图上,以便他们可以打印发票。这是应该处理所有事务 ID 的控制器:

public function confirmPayment(Request $request)
    $request->validate(['transactionId'=>'required']);
    $transId = $request->transactionId;
    $exists = Payment::where('mpesa_trans_id',$transId)->latest()->first();
    if(!$exists)
        $error= ["success"=>false, "error"=>"Unable to confirm your transaction code. Please contact admin.. :)"];
        session($error);
        return back();
    
    $message = ["success"=>true, "message"=>"Payment successful!"];
    session($message);
    return back();

这是我尝试在客户视图上显示交易 ID 的方式

                        <div class="frm-grp">
                            <label>@lang('Transaction Id')</label>
                            <input type="text" name="transactionId" placeholder="@lang('Example: OIB9FQP9H7')">
                            <span class="text-box">Your Transaction Id Is</span>
                            <span>$transId->transactionId</span>
                        </div>

这也给了我一个错误“未定义的变量:transId”。我还没有放@foreach。

有人可以帮助我找出解决此问题的方法吗?这是客户付款后应该显示交易ID的地方。

【问题讨论】:

【参考方案1】:

控制器中声明的变量不会自动用于视图,尤其是在您进行重定向时。

要将变量传递给 laravel 中的视图,您需要将它们包含在 view 函数的第二个参数中:

return view('transaction.show', ['transId' => $transId]);

但是,您正在重定向到上一条路线,因此您不能这样做。 相反,您需要以其他方式使该变量可用。

之前的请求数据应该可以使用old method 获得,我认为这适用于您的情况:

<span> old('transId') </span>

【讨论】:

您的方法显示了一次最新的Id,但是一旦我再次测试它,就没有任何效果。谢谢

以上是关于向客户视图显示交易 ID的主要内容,如果未能解决你的问题,请参考以下文章

向 RCP 显示项目浏览器视图及其功能

如何创建轮换交易信息视图 [关闭]

DataTable - 在控制器中按客户 ID 限制视图

如何向推荐客户查询一位客户并显示其所有交易

在 Blade 视图中保留前导零

如何根据braintree中的客户ID在交易过程中显示特定客户已保存的信用卡?