Как я могу отправить событие «Покупка» из бэкэнда только после того, как покупка действительно удалась? - PullRequest
0 голосов
/ 22 апреля 2019

Как я могу отправить событие «Покупка» на пиксель Facebook напрямую из моей серверной реализации (Ruby on Rails), а не из браузера пользователя, поскольку покупки выполняются асинхронно?

У нас есть электронная коммерция, которая позволяет другим людям продавать свои собственные продукты. Мы хотим отслеживать все события «Покупки» и отправлять их в аккаунт продавца Pixel в Facebook. Однако, поскольку у нас много разных способов оплаты (предоставляемых разными провайдерами, такими как Stripe и Mollie), у нас есть асинхронный платежный сервис. Это означает, что мы не получаем статус покупки мгновенно - это может занять даже несколько минут.

Из-за возможности занять несколько минут, чтобы получить статус покупки, мы не можем перенаправить пользователя на страницу «Спасибо» и использовать JavaScript для отслеживания покупки - пользователь не будет ждать на пустом экране (или даже «загрузочный счетчик») в течение нескольких минут, пока он не будет перенаправлен.

Итак, наша идея состоит в том, чтобы отслеживать это событие покупки из нашей внутренней реализации, которая написана на Ruby on Rails, поскольку наша внутренняя часть знает, когда покупка действительно завершена (API оплаты сообщает нам об этом). Однако мы не находим хороших вариантов для достижения этой цели.

Мы пытаемся отказаться от возможности открытия «виртуального браузера без головы», который запускает небольшой фрагмент JavaScript для отслеживания этого события.

Кто-нибудь из вас, ребята, уже сталкивался с этим? Есть ли способ сделать это?

...