在 Laravel、Cashier 和 Stripe 中收到未知参数
Received unknown parameters in Laravel, Cashier and Stripe
在我们开始之前,我使用的是这些版本:
"laravel/framework": "5.4.*"
"laravel/cashier": "~7.0"
我在我的 Vue.js 前端获取 Stripe 测试令牌,然后将其发送回 Laravel API。它在 Stripe 中创建了一个客户,并在我的用户 table 上保存了 stripe_id
。但我收到以下错误:
message: "Received unknown parameters: object, card, client_ip, created, livemode, type, used"
我正在发回整个令牌:
card: {id: "card_1E6gkZ2eZvKYlo2CkU7Xebko", object: "card", address_city: null, address_country: null, address_line1: null, …}
client_ip: "5.64.000.00"
created: 1550852387
id: "tok_1E6gkZ2eZvKYlo2CyVJV9hXm"
livemode: false
object: "token"
type: "card"
used: false
这是我目前用来测试它是否正常工作的代码:
public function processSubscription(Request $request)
{
$sub = Auth::user()
->newSubscription('main', 'plan_E2xs2LcXXXXXX')
->create($request->token);
return $sub;
}
这是我的前端代码,我认为它在创建客户时没问题:
methods: {
getToken() {
this.processing = true
createToken().then(data => {
console.log(data.token)
this.processSubscription(data.token)
})
},
processSubscription(token) {
this.$axios.put('account/subscribe', {
token: token
}).then(response => {
console.log(response)
this.processing = false
}, error => {
console.log(error)
this.processing = false
}
)
}
}
在其他 Stripe API 方法中使用该标记时,您只想传递其 id
(在您的示例代码中,即 "tok_1E6gkZ2eZvKYlo2CyVJV9hXm"
)而不是整个对象。
您可以看到在 the API docs 中创建客户时将令牌作为 source
传递的示例。
在我们开始之前,我使用的是这些版本:
"laravel/framework": "5.4.*"
"laravel/cashier": "~7.0"
我在我的 Vue.js 前端获取 Stripe 测试令牌,然后将其发送回 Laravel API。它在 Stripe 中创建了一个客户,并在我的用户 table 上保存了 stripe_id
。但我收到以下错误:
message: "Received unknown parameters: object, card, client_ip, created, livemode, type, used"
我正在发回整个令牌:
card: {id: "card_1E6gkZ2eZvKYlo2CkU7Xebko", object: "card", address_city: null, address_country: null, address_line1: null, …}
client_ip: "5.64.000.00"
created: 1550852387
id: "tok_1E6gkZ2eZvKYlo2CyVJV9hXm"
livemode: false
object: "token"
type: "card"
used: false
这是我目前用来测试它是否正常工作的代码:
public function processSubscription(Request $request)
{
$sub = Auth::user()
->newSubscription('main', 'plan_E2xs2LcXXXXXX')
->create($request->token);
return $sub;
}
这是我的前端代码,我认为它在创建客户时没问题:
methods: {
getToken() {
this.processing = true
createToken().then(data => {
console.log(data.token)
this.processSubscription(data.token)
})
},
processSubscription(token) {
this.$axios.put('account/subscribe', {
token: token
}).then(response => {
console.log(response)
this.processing = false
}, error => {
console.log(error)
this.processing = false
}
)
}
}
在其他 Stripe API 方法中使用该标记时,您只想传递其 id
(在您的示例代码中,即 "tok_1E6gkZ2eZvKYlo2CyVJV9hXm"
)而不是整个对象。
您可以看到在 the API docs 中创建客户时将令牌作为 source
传递的示例。