2015-10-12 3 views
0

Я использую stripe для управления своими транзакциями.Полоса возвращает тот же токен снова

У меня есть необходимость добавить клиента (если он еще не присутствует), а затем добавить карту к этому клиенту.

Теперь я должен получить маркер для обоих процессов, которые я сделал на

stripe.tokens.create({ 
    card: { 
     "number": "4242424242424242", 
     "exp_month": "1", 
     "exp_year": "2019", 
     "cvc": "123" 
    } 
}, function (err, token) { 
    // asynchronously called 
    if (token != null) { 
     //Do something 
    } 
    else { 
     //Do something 
    } 
}); 

Теперь я звоню этот метод дважды, чтобы получить новый маркер каждый раз, чтобы добавить клиента, если нет и добавить карту этого клиента , Но каждый раз, когда я получаю такой же ответ, как я отправляю ту же информацию о карте.

1St 

{ 
    "id": "tok_16v4mvBR7e7FUB557PD3hOZc", 
    "object": "token", 
    "card": { 
    "id": "card_16v4mvBR7e7FUB55KD06kqJo", 
    "object": "card", 
    "address_city": null, 
    "address_country": null, 
    "address_line1": null, 
    "address_line1_check": null, 
    "address_line2": null, 
    "address_state": null, 
    "address_zip": null, 
    "address_zip_check": null, 
    "brand": "Diners Club", 
    "country": null, 
    "cvc_check": "unchecked", 
    "dynamic_last4": null, 
    "exp_month": 10, 
    "exp_year": 2021, 
    "fingerprint": "iE2uiiDxUFHRgpt1", 
    "funding": "credit", 
    "last4": "5904", 
    "metadata": {}, 
    "name": null, 
    "tokenization_method": null 
    }, 
    "client_ip": "51.25.52.52", 
    "created": 1444650501, 
    "livemode": false, 
    "type": "card", 
    "used": false 
} 

2nd 
{ 
    "id": "tok_16v4mvBR7e7FUB557PD3hOZc", 
    "object": "token", 
    "card": { 
    "id": "card_16v4mvBR7e7FUB55KD06kqJo", 
    "object": "card", 
    "address_city": null, 
    "address_country": null, 
    "address_line1": null, 
    "address_line1_check": null, 
    "address_line2": null, 
    "address_state": null, 
    "address_zip": null, 
    "address_zip_check": null, 
    "brand": "Diners Club", 
    "country": null, 
    "cvc_check": "unchecked", 
    "dynamic_last4": null, 
    "exp_month": 10, 
    "exp_year": 2021, 
    "fingerprint": "iE2uiiDxUFHRgpt1", 
    "funding": "credit", 
    "last4": "5904", 
    "metadata": {}, 
    "name": null, 
    "tokenization_method": null 
    }, 
    "client_ip": "55.55.55.55", 
    "created": 1444650501, 
    "livemode": false, 
    "type": "card", 
    "used": false 
} 

Проверьте, что каждое поле совпадает с первым.

Но если я хочу использовать тот же маркер, который я получаю в первый раз я получаю ошибку

Stripe Error 400 - Cannot use stripe token more than once 

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

Это может увеличить скорость моего сайта, если мне не нужно снова получать токен.

+0

Отправка одной и той же информации о карте не будет генерировать один и тот же токен. Что вы делаете с токеном после его получения? Какая строка действительно выдает ошибку? –

+0

Он генерирует тот же токен снова, я поставил ответ выше. Токен, я получаю его для двух целей. Сначала для сохранения клиента, а затем для сохранения карты для этого клиента. Ошибка при попытке отправить запрос на Stripe, используя тот же токен снова для создания кредитной карты. – lokopi

+0

, когда вы сохраняете клиента, он автоматически создает карту, сохранение карты снова приведет к тому, что у клиента будут две одинаковые карты –

ответ

0

Из комментариев @Matthew Аркин

I have a need to add the customer (if not already present) and then add the card to that customer.

Бизнес логика ножке такова, что когда вы просите пользователя для деталей кредитной карты только тогда она будет добавить клиента, чтобы они не отличаются, но такие же процедуры.

Полоска Токен способ кодирования следующие вещи:

1) Банк подробно счет

2) кредитной карты

Чтобы получить маркер, вы должны передать информацию карты для кредита карта как here.

Теперь вы можете получить тот же токен, используя stripe.js. хорошая вещь для использования stripejs - это токен, который будет отправлен вместо информации о карте.

Чтобы добавить клиента, вы должны указать либо токен из stripe.js (или из api), либо информацию о карте. использование токена - это то, что я считаю лучшим методом.

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

Если вы хотите добавить карту к существующему клиенту, то сделайте следующее:

** 1) Получение клиента мимолетной идентификатор клиента **

2) Проверьте клиент на нуль, а затем добавить карту для этого клиент получает токен из полосы.js