Ultrahook и MAMP PRO 4.0.5 в Codeigniter на Mac El Capitan

Я успешно установил ультрашук.
Мне пришлось установить это в 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)

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

Я не могу продолжать свою работу, и я застрял.

Спасибо вам, ребята

1

Решение

Хорошо! Потребовалось два дня, чтобы понять, что пошло не так, и теперь все работает правильно.

Поэтому, как преданный пользователь 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, чтобы увидеть входящее событие, отправленное вам.

Я надеюсь, что это поможет кому-то, у кого есть трудные времена, пытаясь сделать эту работу.

Если у вас возникнут дополнительные вопросы, я буду рад помочь вам.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]