Stripe: проверка публикуемых и секретных ключей API

Я создаю веб-приложение, которое позволяет нашим пользователям продавать билеты на музыкальные шоу. Чтобы обрабатывать платежи между покупателями билетов и подстрекателями шоу, я использую Stripe. В принципе, инициатор шоу создает страницу своего шоу в моем приложении, и пользователи могут покупать билеты на это шоу.

чтобы создать шоу, инициатор заполняет форму (имя шоу, дата шоу, где будет проходить шоу, какие группы будут играть и т. д.) Эта форма также требует, чтобы шоу-подстрекатель предоставил как свои публикуемые, так и секретные ключи. Мое приложение использует оба этих токена для получения информации о кредитной корзине (на стороне клиента) и обработки платежей (на стороне сервера).

проблема в том, что я хочу убедиться, что шоу-подстрекатели обеспечивают действительные и существующие клавиши Stripe. Я бы не хотел, чтобы мои пользователи натыкались на ошибки платежей, потому что Show instigators не предоставляли допустимые ключи полосы.

Итак, мой вопрос есть: как я могу проверить, что публикуемые и секретные ключи действительны и существуют? Какова наилучшая стратегия для достижения этой цели? Спасибо!

2 ответов


Я не знаю о каком-либо документированном вызове api, который может быть сделан специально для проверки ключей. Вот предложение, которое вы можете попробовать:

требовать от ваших партнеров предоставить действительную кредитную карту и сообщить им, что для проверки их ключей Stripe, вы будете делать заряд $0.50 на свою карту, которая будет немедленно возвращена.

в рамках проверки формы, когда оба ключа даны, отправить скрытую форму, который содержит все данные необходимо создать токен карты. Вы должны иметь возможность изучить ответ в вашем создать обработчик ответа маркера карты и определите, допустим ли публикуемый ключ.

Если вы получите успешный ответ от сервера stripe, содержащего токен карты, повернитесь направо и отправить пробный заряд за 0.50 $(минимальная сумма оплаты).

убедитесь, что вы правильно ловите все исключения полосы. Я верю в недействительную тайну. ключ, вы должны поймать Stripe_InvalidRequestError. Если возникает исключение, вы можете сообщить об этом пользователю.

Если никакие ошибки не брошены, то обязанность будет сделана. Поскольку вы не хотите заряжать своих партнеров, вы захотите захватить идентификатор заряда из ответа stripe и немедленно уплаченную сумму.


получил его!

чтобы проверить ваши публикуемые ключи, вам просто нужно попросить stripe для нового токена с помощью cURL. Если данный ключ недействителен, ответ будет содержать сообщение об ошибке, начинающееся с "недопустимый ключ API".

вот пример, написанный на PHP:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.stripe.com/v1/tokens");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "card[number]=4242424242424242&card[exp_month]=12&card[exp_year]=2017&card[cvc]=123");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, $publishableKey . ":");

$response = json_decode(curl_exec($ch),true);

if( curl_errno($ch) ){
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);

if(substr($response["error"]["message"],0, 24 ) == "Invalid API Key provided"){
    echo "Invalid API Key provided";
}

та же идея для проверки ваших секретных ключей.