在Laravel 5.4中,我正在尝试使用Stripe进行付款。我正在关注laracast的视频,如果你有一个帐户,你可以在这里观看视频: https://laracasts.com/series/how-to-accept-payments-with-stripe/episodes/3
我将其更改为符合我的需要,并且他做的一些事情与vue版本0.3无关,除了这个问题我能解决这个问题。
我有这段代码:
data: function data() {
return {
stripeEmail: '',
stripeToken: ''
};
},
created: function created() {
this.stripe = StripeCheckout.configure({
key: "my_key",
image: "https://stripe.com/img/documentation/checkout/marketplace.png",
locale: "auto",
token: (token) => {
this.stripeToken = token.id;
this.stripeEmail = token.email;
this.$http.post('/payment', this.$data).then(response => alert('Message'));
}
});
},
methods: {
buy: function buy() {
this.stripe.open({
name: "One Month Subscription",
description: "Having your business displayed for one month.",
zipcode: true,
amount: 1000
});
}
}
我能够将信息输入但是一旦我点击提交它就会返回错误:
Uncaught TypeError: Cannot read property 'post' of undefined
我在bootstrap.js中安装了vue-resource:
window.Vue = require('vue');
require('vue-resource');
这解决了$ http问题,但现在我遇到了帖子问题。
如果您需要任何其他信息,请告知我们。
答案 0 :(得分:1)
我认为this
可能存在问题。具体而言,this
中的created
可能与this
中的token
不同。试试......这个:
created: function created() {
var self = this;
self.stripe = StripeCheckout.configure({
key: "my_key",
image: "https://stripe.com/img/documentation/checkout/marketplace.png",
locale: "auto",
token: (token) => {
self.stripeToken = token.id;
self.stripeEmail = token.email;
self.$http.post('/payment', self.$data).then(response => alert('Message'));
}
});
},
我知道你正在使用箭头功能,所以不应该这样,但我还是试一试,看看它是怎么回事。