2015-01-26 2 views
1

Я следую этому руководству (https://mikesabat.wordpress.com/2013/12/15/making-users-pay-building-a-site-with-strip-and-devise/) без каких-либо изменений, кроме изменения библиотеки Stripe на v2 вместо v1.Проблема с токеном пользователя Stripe

В принципе, мой вопрос заключается в том, что поле stripe_card_token сохраняет значение, начинающееся с tok_BLAHBLAHBLAH, в то время как в полоске приборной панели, каждый клиент имеет маркер, как cus_BLAHBLAHBLAH.

Мой Javascript, который возвращает маркер полосы и заполняет в скрытое поле:

handleStripeResponse: (status, response) -> 
if status == 200 
    console.log(response); 
    $('#user_stripe_card_token').val(response.id) 
    $('#new_user')[0].submit() 
else 
    $('#stripe_error').text(response.error.message) 
    $('#stripe_error').show() 
    $('input[type=submit]').attr('disabled', false) 

ответ

3

Эти маркеры фактически две разные вещи - значение tok_XXX является маркером карты одноразового использования, а значение cus_XXX является идентификатором клиента.

После того как ваш пользователь вводит данные своей кредитной карты в вашу форму, а Stripe возвращает маркер карты через javascript, вы затем отправляете этот токен своему серверному коду.

После того, как ваш серверный код получит маркер карты, вы затем передадите Stripe API «создайте клиента» на Stripe с вашего сервера (НЕ из Javascript). Этот вызов API принимает маркер карты в качестве ввода и возвращает постоянный идентификатор клиента в качестве ответа (среди прочего).

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

Для получения дополнительной информации см. Create Customer API call.

Смежные вопросы