表单字段:姓名和电话未与Paystack中的请求一起传递

时间:2019-02-02 18:33:35

标签: laravel

我正在尝试在Laravel中实现Paystack;我使用他们的建议Laravel文档。问题在于金额和电子邮件会传递到Paystack数据库中,而客户的姓名和电话详细信息却没有。如何将其传递到Paystack?

我已经根据https://github.com/unicodeveloper/laravel-paystack配置了文档中提到的结帐过程。我正在使用Windows 10并运行Laravel 5.6和PHP 7.3。

<form class="needs-validation" action="{{ route('pay') }}" method="POST">
    <div class="row">
        <div class="col-md-6 mb-3">
            <label for="first_name">First name</label>
            <input type="text" class="form-control" id="first_name"
                   placeholder="first name" value="" name="first_name" required="">
        </div>
        <div class="col-md-6 mb-3">
            <label for="last_name">Last name</label>
            <input type="text" class="form-control" id="last_name"
                   placeholder="last Name" name="last_name" value="" required="">
        </div>
    </div>
    <div class="mb-3">
        <label for="email">Email <span class=" text-danger"> * </span>
        </label>
        <input type="email" class="form-control" id="email" name="email"
               placeholder="you@example.com" required>
    </div>
    {{ csrf_field() }}
    <hr class="mb-4">
    <button class="btn btn-success btn-lg btn-block" type="submit"
            value="Pay Now!">
        <i class="fa fa-plus-circle fa-lg"></i> Complete Payment!
    </button>
</form>

我希望付款完成后,客户数据中应包含客户电子邮件和姓名。但是它只返回客户数组中的电子邮件。

2 个答案:

答案 0 :(得分:0)

您必须自己实现它,之前的支付按钮尝试有这样

形式
<form action="/myform" method="post">
<input type="text" name="fullname">
<input type="number" name="phone_number">
<button>submit</button>
</form>

Route::post('/myform','controllerhere@form1')->name('name');
Route::get('/pay','controller@function')->name('pay');
Route::post('/pay','controller@function')->name('pay');

然后您的控制器看起来像这样

public function form1(Request $request){
$request->validate([....]);
save the form and return redirect to your payment form like this
..
return redirect('/pay');
}

然后可以付款了,请上面的代码仅是示例帮助

答案 1 :(得分:0)

或者,如果您检查https://github.com/unicodeveloper/laravel-paystack软件包,则 paystack.php 中会有一个注释部分;其中包含有关如何将custom_fields添加到元数据的示例。

`<input type="hidden" name="metadata" value="{{ json_encode($array) }}" >`

$array = [ 'custom_fields' => [ ['display_name' => "Cart Id", "variable_name" => "cart_id", "value" => "2"], ['display_name' => "Sex", "variable_name" => "sex", "value" => "female"], ] ]

编辑此代码以添加客户名称和金额,然后如果您dd($ paymentdatails)会在元数据中看到详细信息。