Stripe делает несколько клиентов с одним адресом электронной почты

У меня есть проверка полосы с php. Это создает клиентов и заряжает их. Я хочу создать форму для пожертвований, в которой если один и тот же клиент возвращается и дает тот же адрес электронной почты, что Stripe не создает другого клиента, а взимает с существующего клиента дополнительные платежи. Это возможно? Или касса всегда создает нового клиента с новым идентификатором клиента?

Вот мой обвинение

<?php
require_once('config.php');

$token  = $_POST['stripeToken'];

if($_POST) {
$error = NULL;

try{
if(!isset($_POST['stripeToken']))
throw new Exception("The Stripe Token was not generated correctly");
$customer = Stripe_Customer::create(array(
'card'  => $token,
'email' =>  $_POST['stripeEmail'],
'description' => 'Thrive General Donor'
));

$charge = Stripe_Charge::create(array(
'customer' => $customer->id,
'amount'   => $_POST['donationAmount'] * 100,
'currency' => 'usd'
));
}
catch(Exception $e) {
$eror = $e->getMessage();
}}

?>

11

Решение

Вам нужно будет сохранить связь между адресом электронной почты и идентификатором клиента Stripe в базе данных. Я определил это, посмотрев на Stripe API для клиентов.

Во-первых, при создании нового клиента каждое поле является необязательным. Это заставляет меня верить, что каждый раз, когда вы POST в /v1/customers, он будет «[создавать] новый объект клиента».

Кроме того, при поиске клиента доступно только одно поле: id, Это заставляет меня поверить, что вы не можете найти клиента на основе адреса электронной почты или другого поля.


если ты не может хранить эту информацию в базе данных, вы всегда можете перечислить всех клиентов с GET /v1/customers, Это потребует от вас разбивки на страницы и проверки всех объектов клиента, пока вы не найдете объект с соответствующим адресом электронной почты. Вы можете видеть, как это было бы совершенно неэффективно, если бы это делалось каждый раз, когда вы пытались создать клиента.

8

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]