VB.NET Получить Webhook

#vb.net #webhooks

#vb.net #webhooks

Вопрос:

У меня есть система в VB.NET где мне нужно получить webhook от финансовой системы, которая генерирует дебиторскую задолженность и получает платежи. Вся интеграция API уже работает с этим сервисом, мне просто нужно получать webhook для каждого изменения статуса транзакции, чтобы выполнять процедуры в моей базе данных, потому что в настоящее время я проверяю каждую транзакцию несколько раз в день, чтобы узнать, изменился ли мой статус.

В их документации говорится: «Транзакционный веб-хук — этот веб-хук запускается и отправляет POST-уведомление о каждом изменении статуса транзакции. Он применяется ко всем формам оплаты и охватывает весь жизненный цикл транзакции «.

Я никогда не разрабатывал получение webhooks, и при исследовании этого у меня были некоторые сомнения.

При интеграции с API платежей, например, при создании нового платежа, я отправляю сообщение в API. Когда я консультируюсь с обвинением, я посылаю GET. Все это с помощью WebRequest.

Для Webhook возможно ли сделать то же самое и вместо отправки получать POST на странице с помощью WebRequest? Или для получения webhook разработка отличается?

Это пример структуры кода, которую я использую для отправки сообщения:

 Public Sub SendRequest(uri As Uri, jsonDataBytes As Byte(), contentType As String, method As String, requisicao As String)

    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12

    Dim request As WebRequest

    request = WebRequest.Create(uri)
    request.ContentLength = jsonDataBytes.Length
    request.ContentType = contentType
    request.Method = method
    request.Headers.Add("X-API-KEY", "xxxxxxx")

        Using requestStream = request.GetRequestStream

        requestStream.Write(jsonDataBytes, 0, jsonDataBytes.Length)
        requestStream.Close()

        Try

            Using responseStream = request.GetResponse.GetResponseStream
                Using reader As New StreamReader(responseStream)

                    Dim objResponse As Object = reader.ReadToEnd()

                End Using
            End Using

        Catch ex As WebException
        End Try

    End Using

End Sub
 

Ответ №1:

Webhook отправляет запрос, обычно POST , но иногда GET или OPTION для проверки, на ваш веб-сервер, который ваш код обрабатывает и отвечает на него (или, часто, отвечает до обработки из-за тайм-аутов на отправляющей стороне).

Вы всегда должны проверять отправителя запроса. Это часто делается с использованием идентификатора заголовка запроса, такого как строка имени или идентификатора.

Webhooks иногда описываются как «обратные» или «обратные» API, поскольку вы не выполняете запросы («опрос»), а реагируете на запросы от третьей стороны, отправляющей вам информацию, на которую вы подписались.