#laravel #eloquent #laravel-7 #braintree
Вопрос:
Сумма, которую я передаю, кажется правильной, но я всегда получаю ошибку.
При оформлении заказа сумма недействительна, даже если я передаю значение с плавающей точкой, и эта ошибка отображается на странице после отправки:
Платежная функция выглядит следующим образом:
public function payment(Request $request) {
$data = $request->all();
// dd($data['price']);
$gateway = new BraintreeGateway([
'environment' => config('services.braintree.environment'),
'merchantId' => config('services.braintree.merchantId'),
'publicKey' => config('services.braintree.publicKey'),
'privateKey' => config('services.braintree.privateKey')
]);
$amount = Sponsorship::where('price', $data['price'])->first();
// dd($amount);c
$nonce = $request->payment_method_nonce;
$result = $gateway->transaction()->sale([
'amount' => $amount,
'paymentMethodNonce' => $nonce,
'customer' => [
'firstName' => 'Tony',
'lastName' => 'Stark',
'email' => 'tony@avengers.com',
],
'options' => [
'submitForSettlement' => true
]
]);
if ($result->success) {
$transaction = $result->transaction;
// header("Location: transaction.php?id=" . $transaction->id);
return back()->with('success_message', 'Transaction successful. The ID is:'. $transaction->id);
} else {
$errorString = "";
foreach ($result->errors->deepAll() as $error) {
$errorString .= 'Error: ' . $error->code . ": " . $error->message . "n";
}
// $_SESSION["errors"] = $errorString;
// header("Location: index.php");
return back()->withErrors('An error occurred with the message: '.$result->message);
}
}
Комментарии:
1. Вы передаете всю модель спонсорства, а не столбец суммы в ней.
2. Да, я попытался передать $data[‘цена’] и получить обратно это сообщение об ошибке: Произошла ошибка с сообщением: Не удается определить способ оплаты.