Для начала вам понадобится аккаунт Twilio, аккаунт FreshBooks и PHP-хостинг. Вы можете зарегистрироваться для бесплатного аккаунта Twilio (и получить 30 долларов бесплатного кредита) здесь. Вы можете создать бесплатный аккаунт FreshBooks здесь. Существует множество хостинговых сервисов, поддерживающих PHP, поэтому я рекомендую поискать и найти тот, который вам подойдет.
Twilio и FreshBooks используют веб-хуки, чтобы уведомлять вас о происходящих событиях. (Для легкого введения в то, что такое веб-хуки, Джефф Линдсей подготовил хорошее объяснение.) Twilio отправляет HTTP-запрос всякий раз, когда входящий звонок или SMS поступает на ваш номер телефона Twilio. FreshBooks отправляет HTTP-запрос всякий раз, когда что-то происходит с вашим аккаунтом.
Чтобы настроить веб-хук для платежей, просто зайдите на страницу FreshBooks API (нажмите «My Account» в правом верхнем углу страницы FreshBooks), нажмите «customize» в разделе «Configure Webhooks», а затем нажмите кнопку «New Webhook». Для события выберите «payment.create», а для URI введите http://yourserver.com/handle-payment.php (этот файл мы создадим следующим).
Чтобы упростить работу, мы будем использовать некоторые вспомогательные библиотеки. Для Twilio — официальную PHP-библиотеку. Для FreshBooks — библиотеку, созданную Миланом Рукавиной. (Примечание: если вы столкнетесь с ошибками при использовании библиотеки FreshBooks, измените строку 79 в HttpClient.php с true на false).
FreshBooks отправляет HTTP POST на наш скрипт всякий раз, когда платеж добавляется, поэтому все, что нам нужно сделать, — это найти платеж по идентификатору платежа, отправленному в наш скрипт, и отправить себе SMS-сообщение с помощью Twilio. (Чтобы сделать это немного приятнее, мы также находим некоторую информацию о счетах).
Как вы можете видеть, в строках 31-38 есть код, который обрабатывает проверку обратного вызова. Когда вы впервые добавляете веб-хук в FreshBooks, в ваш скрипт отправляется код проверки. Это делается для того, чтобы убедиться, что вы действительно являетесь владельцем скрипта. После того, как вы добавили веб-хук в предыдущем разделе, вы, вероятно, заметили, что его статус был «непроверенный». Теперь мы можем это исправить, установив флажок веб-хука и нажав кнопку «resend verification». Обновите страницу, и вы увидите, что статус изменился на «проверенный».
Все готово. Введите платеж по одному из ваших счетов FreshBooks, и вы должны получить текстовое сообщение от вашего веб-приложения!
Кстати, мы проводим конкурс для разработчиков с нашими друзьями из FreshBooks. Используйте то, что вы здесь узнали, чтобы создать крутое приложение Twilio/FreshBooks, и вы сможете выиграть iPad 2, а потенциально и добавить его в магазин дополнений FreshBooks для продажи 2,5 миллионам пользователей FreshBooks!