Ответ 1
Вам нужно создать контроллер, чтобы в принципе принимать и обрабатывать запросы. Это довольно прямолинейно, хотя и не так прямо, чтобы сначала обернуть ваш разум. Вот пример моего hooks_controller.rb:
class HooksController < ApplicationController
require 'json'
Stripe.api_key = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
def receiver
data_json = JSON.parse request.body.read
p data_json['data']['object']['customer']
if data_json[:type] == "invoice.payment_succeeded"
make_active(data_event)
end
if data_json[:type] == "invoice.payment_failed"
make_inactive(data_event)
end
end
def make_active(data_event)
@profile = Profile.find(User.find_by_stripe_customer_token(data['data']['object']['customer']).profile)
if @profile.payment_received == false
@profile.payment_received = true
@profile.save!
end
end
def make_inactive(data_event)
@profile = Profile.find(User.find_by_stripe_customer_token(data['data']['object']['customer']).profile)
if @profile.payment_received == true
@profile.payment_received = false
@profile.save!
end
end
end
Дефектный приемник - это представление, на которое вы должны указывать веб-узлы на интерфейсе полосы. В представлении принимается json, и я использую его для обновления профиля пользователя в случае неудачного или успешного выполнения платежа.