#laravel #vue.js #stripe-payments #laravel-cashier
#laravel #vue.js #stripe-платежи #laravel-касса
Вопрос:
Я использую vue-stripe и пытаюсь настроить способ совершения одноразовых покупок. Я выполняю запрос токена, и он генерирует токен ниже, когда я ввожу дату номера cc и cvc.
card:
address_city: null
address_country: null
address_line1: null
address_line1_check: null
address_line2: null
address_state: null
address_zip: "42424"
address_zip_check: "unchecked"
brand: "Visa"
country: "US"
cvc_check: "unchecked"
dynamic_last4: null
exp_month: 4
exp_year: 2024
funding: "credit"
id: "card_1IHHP9Jcu3r8UW8rqiLydyLZ"
last4: "4242"
name: null
object: "card"
tokenization_method: null
__proto__: Object
client_ip: "137.187.202.50"
created: 1612481911
id: "tok_1IHHP9Jcu3r8UW8r81KS1HBH"
livemode: false
object: "token"
type: "card"
used: false
Я надеялся, что смогу взять этот токен и передать его Laravel Cashier для завершения оплаты. В моем контроллере я попытался
$stripeCharge = auth()->user()->charge( 100, $request->card);
но это выдало мне ошибку
Invalid string: {:id=>"card_1IHHP9Jcu3r8UW8rqiLydyLZ", :object=>"card", :address_zip=>"42424", :address_zip_check=>"unchecked", :brand=>"Visa", :country=>"US", :cvc_check=>"unchecked", :exp_month=>"4", :exp_year=>"2024", :funding=>"credit", :last4=>"4242"}"
поэтому вместо этого я попытался использовать
$stripeCharge = auth()->user()->charge( 100, $request->id);
но он сказал
A token may not be passed in as a PaymentMethod. Instead, use payment_method_data with type=card and card[token]=tok_1IHHSfJcu3r8UW8rsTWenxiT.
Итак, я попытался
axios.post('/purchase', {
payment_method_data: {
card: {
token: token.id
},
}
})
но это выдает ошибку
message: "You cannot confirm this PaymentIntent because it's missing a payment method. You can either update the PaymentIntent with a payment method and then confirm it again, or confirm it again directly with a payment method."
Я чувствую, что я близок, но просто не понимаю, чего хочет Stripe и что отправляет Laravel, когда я делаю заряд. Я был бы рад любой помощи!
Ответ №1:
Вам нужно создать способ оплаты в Vue, а не токен: https://stripe.com/docs/js/payment_methods/create_payment_method
Комментарии:
1. Понятно, хорошо, я спросил vuestripe.com разработчики плагинов, если бы был способ сгенерировать платеж create вместо токена. В чем разница между токеном и способом оплаты?
2. В основном это: stripe.com/docs/payments/payment-intents/migration