如何解决了解 Vue 和 Laravel 项目需要哪些数据 Stripe
我正在使用 vue-stripe 并尝试设置一种一次性购买的方法。我正在执行令牌请求,当我输入抄送编号日期和 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 发送什么。我希望得到任何帮助!
解决方法
您需要在 Vue 中创建 Payment Method,而不是令牌:https://stripe.com/docs/js/payment_methods/create_payment_method
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。