2014-12-26 8 views
0

Я следую за Stripe Rails Checkout Guide, за исключением того, что я пытаюсь использовать его для подписки вместо одноразового платежа.Подпишитесь на новый выпуск плана

мой код выглядит следующим образом:

def create 

    token = params[:stripeToken] 

    customer = Stripe::Customer.create(
    :card => token, 
    :plan => "year", 
    :email => current_user.email 
    ) 

    rescue Stripe::CardError => e 
    flash[:error] = e.message 
    redirect_to charges_path 
end 

У меня есть план существующих, но когда я вхожу в моих деталях карты, я не получаю никакого ответа, и на Stripe он говорит, что нет подписчиков?

+0

как вы его тестируете? вы работаете на 'localhost'? Вы создали webhook? – shivam

+0

@shivam, я работаю на localhost, и нет, я еще не создал веб-камеры. – infinity

ответ

1

Следуйте статью здесь для тестирования (упаковывают вы еще не)

https://stripe.com/docs/testing

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

Также, как вы планируете подписку, важно, чтобы вы отслеживали идентификаторы клиентов. Самый простой способ сделать это - добавить новый атрибут (столбец) strip_id к вашей модели пользователей (таблица). Тогда что-то вроде:

 if @user.stripe_id 
     customer = Stripe::Customer.retrieve(@user.stripe_id) 
     else 
     customer = Stripe::Customer.create(
      :description => "User: #{@user.id}", 
      :email => @user.email, 
      :card => params[:stripe_token] 
     ) 
     @user.update_attributes!(:stripe_id => customer.id) 
     end 

Если customer объект создан, это подтверждает ваш код работает нормально.

Для получения подтверждения от полосы, касающейся этого, вам необходимо создать webhook и контроллер для полосы. Вы не можете указать свой адрес http://localhost:3000/stripe как webhook. Для этого вам понадобится дополнительный инструмент, например ngrok. Я написал статью для этого, вы можете обратиться к ней здесь: https://codefiddle.wordpress.com/2014/06/17/localhost-to-internet/

Лучше попробовать это (создавая клиента) в rails console. Если создается объект клиента, который проверяет все это хорошо.

0

Это определенно звучит как проблема с Javascript, а не проблема с Rails. Взгляните на консоль ошибок JS. Там проблемы? В Chrome и Firefox установите флажок «сохранить журнал», чтобы сохранить журналы для загрузки следующей страницы, чтобы вы могли видеть, что происходит. Если вы используете Turbolinks, я бы предложил отключить его, пока вы не сможете понять, что происходит.

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