无效请求:Stripe 7.0 + Laravel 5.7

Invalid request: Stripe 7.0 + Laravel 5.7

描述

尝试使用 Laravel + API 创建条带订阅时出现错误。

在创建订阅之前,您必须通过请求获得令牌,我已经成功创建了这个令牌,我现在正在使用 API 中的 "createSubscription()" 方法(在我的代码中引用), 但这是发生错误的地方。

代码

public function create()
    {
        $user = Auth::user();
        $plan = 'prod_**********';

    // Do some checks
    if ($user->subscribed('main')){
        return [
            'status' => 'failed',
            'message' => 'You are already subscribed!',
        ];
    }

    // Set the stripe Key
    Stripe::setApiKey(env('STRIPE_SECRET'));

    // Create the stripe token
    try {
        $stripeToken = Token::create([
            'card' => [
                'number' => str_replace(' ', '', Input::get('number')),
                'exp_month' => Input::get('exp_month'),
                'exp_year' => Input::get('exp_year'),
                'cvc' => Input::get('cvc')
            ]
        ]);
    }
    catch (\Stripe\Error\InvalidRequest $e)
    {
        return [
            'status' => 'failed',
            'message' => $e->getMessage(),
        ];
    }

    try{
        // This is the line thats failing
        $user->newSubscription('main', $plan)->create($stripeToken);
    } catch (\Stripe\Error\InvalidRequest $e) {
        dd($e->getMessage());
    }

    return [
        'status' => 'success',
        'message' => 'Subscription was successful!',
    ];
}

错误

完整的错误是:

Invalid request. Hint: check the encoding for your request parameters and URL (http://en.wikipedia.org/wiki/percent-encoding). For assistance, email support@stripe.com.

奇怪的是我是如何设法解决这个问题的。传递整个条带令牌似乎不起作用,而我只需要传递令牌 ID。

简单地改变

$user->newSubscription('main', $plan)->create($stripeToken);

至此

$user->newSubscription('main', $plan)->create($stripeToken->id);

解决了这个错误

Invalid request. Hint: check the encoding for your request parameters and URL (http://en.wikipedia.org/wiki/percent-encoding). For assistance, email support@stripe.com.

我确定这两个文档中都没有说明这是解决方案?或者也许我在某个地方忽略了这个......但这已经为我解决了。