在 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 传递的示例。