Я успешно установил ультрашук.
Мне пришлось установить это в usr / local / bin на Mac El Capitan, потому что я не смог (из-за новой политики безопасности) установить его в usr / bin.
Когда я запускаю команду:
ultrahook <my.namespace> https://localhost:8890
Я получаю это сообщение:
Authenticated as <namespace_name>
Forwarding activated...
http://<namespace_name>.ultrahook.com ->https://localhost:8890
Так что, похоже, все работает.
Но когда я отправляю тестовое уведомление от Stripe через вышеупомянутый webhook, в терминале появляется следующая ошибка:
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:878:in `initialize': getaddrinfo: nodename nor servname provided, or not known (SocketError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:878:in `open'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:878:in `block in connect'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/timeout.rb:52:in `timeout'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:877:in `connect'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:862:in `do_start'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:851:in `start'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1373:in `request'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1396:in `send_entity'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1184:in `post'
from /Library/Ruby/Gems/2.0.0/gems/ultrahook-0.1.4/lib/ultrahook/client.rb:127:in `http_post'
from /Library/Ruby/Gems/2.0.0/gems/ultrahook-0.1.4/lib/ultrahook/client.rb:116:in `process_request'
from /Library/Ruby/Gems/2.0.0/gems/ultrahook-0.1.4/lib/ultrahook/client.rb:90:in `process'
from /Library/Ruby/Gems/2.0.0/gems/ultrahook-0.1.4/lib/ultrahook/client.rb:160:in `block (3 levels) in init_stream'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/protocol.rb:411:in `call_block'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/protocol.rb:402:in `<<'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/protocol.rb:106:in `read'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:313:in `read_chunked'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:276:in `block in read_body_0'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:269:in `inflater'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:274:in `read_body_0'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:201:in `read_body'
from /Library/Ruby/Gems/2.0.0/gems/ultrahook-0.1.4/lib/ultrahook/client.rb:155:in `block (2 levels) in init_stream'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1419:in `block (2 levels) in transport_request'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:162:in `reading_body'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1418:in `block in transport_request'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1409:in `catch'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1409:in `transport_request'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1382:in `request'
from /Library/Ruby/Gems/2.0.0/gems/ultrahook-0.1.4/lib/ultrahook/client.rb:153:in `block in init_stream'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:852:in `start'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:582:in `start'
from /Library/Ruby/Gems/2.0.0/gems/ultrahook-0.1.4/lib/ultrahook/client.rb:148:in `init_stream'
from /Library/Ruby/Gems/2.0.0/gems/ultrahook-0.1.4/lib/ultrahook/client.rb:65:in `start'
from /Library/Ruby/Gems/2.0.0/gems/ultrahook-0.1.4/bin/ultrahook:6:in `<top (required)>'
from /usr/local/bin/ultrahook:22:in `load'
from /usr/local/bin/ultrahook:22:in `<main>'
Я никогда раньше не использовал рубиновые или рубиновые камни, поэтому не могу понять, что все это значит и как решить эту проблему.
Любая помощь будет высоко ценится
Спасибо
В то же время я пробовал много комбинаций, но эта ошибка сохраняется после регистрации конечной точки:
ultrahook stripe http://site-gen:8888/stripe19440207
Authenticated as bootsweaver
Forwarding activated...
http://stripe.bootsweaver.ultrahook.com -> http://site-gen:8888/stripe19440207
Получив ответ, он остался прежним:
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:878:in `initialize': getaddrinfo: nodename nor servname provided, or not known (SocketError)
Пожалуйста, помогите мне с этим, я занят этим со вчерашнего дня, и я понятия не имею, что это все средства.
Я не могу продолжать свою работу, и я застрял.
Спасибо вам, ребята
Хорошо! Потребовалось два дня, чтобы понять, что пошло не так, и теперь все работает правильно.
Поэтому, как преданный пользователь SO, я чувствую, что должен поделиться тем, что узнал.
Во-первых, стоит упомянуть, что у рубина есть очень общий способ
сообщить о сгенерированных ошибках, и если вы ничего не знаете (как я)
про рубин то у тебя проблемы.
Даже думал, что я взглянул на код ruby методом жалоб initialize
и я узнал, что это было неправильно.
Я нахожусь на Mac El Capitan и использую MAMP PRO 4.0.5 в качестве локального сервера, а Codeigniter 3 в качестве фреймворка, и я хочу использовать ultrahook для локального тестирования событий веб-крюка Stripe перед началом работы.
Первое, что нужно знать, это конфигурация MAMP.
Если вы планируете использовать ultrahook и хотите установить его, позаботьтесь о том, чтобы этот флажок (расположенный на вкладке Ryby слева) не отмечен:
Make ruby available in the command line
Зачем?
Если вы установите ultrahook с этой опцией, гем будет установлен в:
/Applications/MAMP/Library/lib/ruby/gems/2.3.0/gems
И ты не хочешь этого. Вы обычно устанавливаете это в usr / bin
Сейчас. В настоящее время из-за новой политики безопасности El Capitan не разрешают писать в эту папку. Что мы сейчас делаем?
Просто установите его в usr / local / bin.
$ gem install -n /usr/local/bin ultrahook
Когда вы закончите, вы сможете делать обычные вещи, описанные в http://www.ultrahook.com/. Извините, но я хотел бы объяснить вам весь процесс, но он выйдет за рамки этого поста.
На этом этапе вы сможете использовать ultrahook и зарегистрировать свой webhook от Stripe.
Последнее, что важно, это исключить используемый вами контроллер (страница, которая будет отвечать на события Stripe webhook)
быть заблокирован защитой csrf.
$config['csrf_exclude_uris'] = array('stripe/webhook');
Или то, что вы определили в вашем $ route [»].
Если вы забудете это сделать, вы получите ответ 403, что означает forbidden
,
Еще одна важная вещь: когда вы проверяете ответ Stripe, вы должны быть в терминале, где вы запрашиваете соединение через ваше пространство имен ultrahook, чтобы увидеть входящее событие, отправленное вам.
Я надеюсь, что это поможет кому-то, у кого есть трудные времена, пытаясь сделать эту работу.
Если у вас возникнут дополнительные вопросы, я буду рад помочь вам.
Других решений пока нет …