Неопределенные параметры при добавлении карты с laravel-cartalyst - PullRequest
0 голосов
/ 30 октября 2019

Я использую Laravel 5.8 и laravel-cartalyst, чтобы создать ссылку с полосой.

Делая этот код, он работает:

$customer = $stripe->customers()->create([
                'name' => $caserne->billing_name,
                'email' => $caserne->billing_email,
            ]);

$caserne->billing_id = $customer['id'];

Но добавляю карточку полосы этому пользователюУ меня есть ошибка: Received unknown parameters: number, exp_month, cvc, exp_year

$card = $stripe->cards()->create($caserne->billing_id, [
                'number'    => str_replace(' ', '', $request->billing_card),
                'exp_month' => (int)explode('/', $request->billing_exp)[0],
                'cvc'       => (int)$request->billing_cvc,
                'exp_year'  => (int)explode('/', $request->billing_exp)[1],
            ]);

Я проверил все параметры в журнале, и они все установлены. Первый параметр number является строкой, а все остальные являются числами.

1 Ответ

1 голос
/ 30 октября 2019

Stripe настоятельно не рекомендует напрямую обрабатывать данные карты, как это.

Чтобы напрямую обрабатывать данные карты, вам необходимо:

  1. Включить это в настройках наhttps://dashboard.stripe.com/account/integration/settings. Вы заметите, что в нем говорится: «Мы настоятельно не рекомендуем передавать информацию о карте непосредственно в API Stripe, поскольку это означает, что ваша интеграция напрямую обрабатывает конфиденциальную информацию о карте». когда вы это сделаете.
  2. Завершите процесс SAQ D, чтобы стать PCI-совместимым. Подробности на https://stripe.com/docs/security#pci-dss-guidelines.

    Если вы продолжите отправлять данные карты напрямую в наш API, вам необходимо будет ежегодно загружать SAQ D, чтобы доказать, что ваш бизнес совместим с PCI. SAQ D является наиболее обременительным из всех SAQ, с более чем 40 страницами требований, которые необходимо выполнить, чтобы оставаться PCI-совместимым.

  3. Создать Источник с данными картыПользователь отправил.

Или, вы можете сделать более безопасный, простой, рекомендуемый способ и использовать Stripe's Stripe.js для обработки данных карты на клиенте -безопасно (с помощью процесса, называемого tokenization ), без того, чтобы эти данные никогда не попадали на ваш сервер, сохраняя вам всю работу по соответствию PCI.

...