Полоса: новый клиент создан, даже если customer_id не пуст? - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь получить существующие карты моего пользователя из Stripe с помощью приведенного ниже кода. Тем не менее, когда я использую нижеследующий бэкэнд, даже если я говорю Stripe ТОЛЬКО создать нового клиента, если $ customer_id НЕ присутствует, новый идентификатор клиента создается в любом случае, даже если customer_id НЕ равен NULL? Я чувствую, что упускаю что-то очевидное здесь ...

.php

$email = $_POST['email'];
$customer_id = $_POST['customer_id']; //get this id from somewhere a database table, post parameter, etc.
$customer = \Stripe\Customer::create(array(
  'email' => $email, 

));

$customer_id = $_POST['customer_id']; //get this id from somewhere a database table, post parameter, etc.

// if the customer id doesn't exist create the customer
if ($customer_id !== null) {

    $key = \Stripe\EphemeralKey::create(
      ["customer" => $customer->id],
      ["stripe_version" => $_POST['api_version']]
    );

      header('Content-Type: application/json');
    exit(json_encode($key));

} else {

//  \Stripe\Customer::retrieve($customer_id);

    $cards = \Stripe\Customer::retrieve($customer_id)->sources->all(); 
    // return the cards

      header('Content-Type: application/json');
    exit(json_encode($key));
}

1 Ответ

0 голосов
/ 22 января 2019

Ваше ЕСЛИ состояние, если мы перешли. В настоящее время вы создаете клиента, если присутствует customer_id. На основании описания вы хотели бы видеть противоположное, верно?

В этом случае все, что вам нужно сделать, это переключаться между телами if / else:

if ($customer_id !== null) {
  $cards = \Stripe\Customer::retrieve($customer_id)->sources->all(); 
  // return the cards
  header('Content-Type: application/json');
  exit(json_encode($cards)); // you might want to return the cards here?
} else {
  $key = \Stripe\EphemeralKey::create(
    ["customer" => $customer->id],
    ["stripe_version" => $_POST['api_version']]
  );

  header('Content-Type: application/json');
  exit(json_encode($key));
}

И удалите блок создания сверху. Это также создаст объект customer, который вам не нужен.

...