Неправильный запрос: Stripe 7.0 + Laravel 5.7 - PullRequest
0 голосов
/ 13 октября 2018

Описание

Я получаю сообщение об ошибке при попытке создать полосовую подписку с помощью Laravel + API.

Перед созданием подписки необходимо получитьзапросив токен, я успешно создал этот токен и теперь я использую метод «createSubscription ()» из API (на который ссылается мой код), но именно здесь происходит ошибка.

Код

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!',
    ];
}

Ошибка

Полная ошибка:

Неверный запрос.Подсказка: проверьте кодировку параметров вашего запроса и URL-адрес (http://en.wikipedia.org/wiki/percent-encoding).. Для получения справки пишите по адресу support@stripe.com.

  • Я говорил с службой поддержки, и они 'Сказав, что они думают, что ошибка на моем конце, все кажется хорошим на конце полосы.
  • Я проверил подробную карту и данные клиента верны (вот почему создается токен).
  • Я искал эту ошибку, но, похоже, ничего не найдено, есть другие вопросы, похожие, но ответов нет.
  • Я удалил / переустановил пакет laravel-cashier безуспешно.

1 Ответ

0 голосов
/ 15 октября 2018

Странно, как мне удалось решить эту проблему.Казалось бы, передача всего токена полосы не работает, и вместо этого мне нужно было только передать идентификатор токена.

Просто изменив

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

на этот

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

Устранена эта ошибка

Неверный запрос.Подсказка: проверьте кодировку для параметров запроса и URL-адреса (http://en.wikipedia.org/wiki/percent-encoding).. Для получения помощи, напишите support@stripe.com.

Я уверен, что ни в одной из документов не говорится, что этотакое решение? Или, может быть, я где-то упустил это из виду ... но это решило его для меня.

...