Я знаю, что это распространенная ошибка, но я не смог найти решение ни в одном из найденных сообщений.
Вот метод контроллера, в который предполагается передавать данные метода оплаты:
public function subscribe(Request $request)
{
$user = Auth::user();
$paymentMethod = $request->paymentMethod;
$plan = $request->planId;
// 'create' method will automatically store customers payment method
$user->newSubscription('subscription', $request->plan)->create($paymentMethod, [
'email' => $user->email
]);
redirect()
->route('confirmation')
->with('subscriptionSuccessMessage', 'You have successfully subscribed. See you around!');
}
Когда я d ie и дампа метода оплаты: dd($paymentMethod)
, ноль значение возвращается. То же самое относится и к плану: dd($plan)
.
Итак, похоже, данные не передаются на сервер правильно с Ax ios.
<select class="form-control" name="plan" id="plans">
<option selected value="">Choose a plan</option>
@foreach($plans as $planId => $planName)
<option value="{{ $planId }}">{{ $planName }}</option>
@endforeach
</select>
<script>
window.addEventListener('load', function()
{
const stripe = Stripe("{{ config('services.stripe.public') }}");
const elements = stripe.elements();
const cardElement = elements.create('card');
cardElement.mount('#card-element');
const cardHolderName = document.getElementById('card-holder-name');
const cardButton = document.getElementById('card-button');
const clientSecret = cardButton.dataset.secret;
const planId = document.getElementById('plans').value;
cardButton.addEventListener('click', async (e) => {
const { setupIntent, error } = await stripe.confirmCardSetup(
clientSecret, {
payment_method: {
card: cardElement,
billing_details: { name: cardHolderName.value }
}
}
);
if (error) {
console.log('error', error.message);
} else {
console.log('success', setupIntent.payment_method);
axios.post('/subscribe', {
paymentMethod: setupIntent.payment_method,
planId: planId
})
}
});
});
</script>
Я незнаком с Топором ios, но разве это не должно работать?
PS Ax ios указан в моем пакете. json файл.
Прилагается объект запроса, который я получаю при запуске dd($request)