Протестируйте Webhook на локальном хосте в Braintree

Я работаю над BrainTree и хочу отправлять настраиваемые уведомления по электронной почте своим клиентам, поскольку я работаю с периодическим выставлением счетов, поэтому каждый месяц эти настраиваемые уведомления должны отправляться всем пользователям. Для этого я должен использовать веб-перехватчики для получения текущего события, а затем отправить уведомление по электронной почте в соответствии с ответом веб-перехватчика. (Я думаю, что это единственное решение в данном случае. Если кто-нибудь знает другое возможное решение, предложите). Сначала я хочу протестировать веб-перехватчики на своем локальном хосте. Я попытался создать новый веб-перехватчик и указал путь к локальному хосту в качестве места назначения для получения веб-перехватчиков. Но это показывает ошибку «Пункт назначения не проверен»..........

Мой путь: "http://127.0.0.1:81/webhook/Accept"


person Singh    schedule 20.01.2014    source источник


Ответы (8)


Вот некоторые из инструментов, которые можно использовать при разработке веб-хуков:

1) PostCatcher,

2) ЗапросБин,

3) нгрок,

4) ПейджКайт и

5) Локальный туннель

http://telerivet.com/help/api/webhook/testing

https://www.twilio.com/blog/2013/10/test-your-webhooks-locally-with-ngrok.html

person Pradeep Vairamani    schedule 25.02.2014
comment
большое спасибо, братан. Я уже нашел решение как ngrok, но вы предоставляете еще несколько инструментов в качестве ответа :) - person Singh; 09.05.2014
comment
Пока ngrok кажется мне лучшим. - person Jason Swett; 20.08.2014
comment
Спасибо за это. Попробовал ngrok, и он сделал именно то, что мне было нужно! Хотел бы я видеть это раньше, потому что до этого я потратил несколько часов на возню с настройками Spring Boot SSL, ключами, letsencrypt/certbot, записями DNS и т. д. с ограниченным успехом. - person yngwietiger; 29.03.2020

Что ж, еще один способ проверить это — создать WebAPI и отправить данные в ваш метод POST через Postman. Для этого достаточно создать WebAPI в Visual Studio. В контроллере API создайте метод POST.

/// <summary>
/// Web API POST method for Braintree Webhook request
/// The data is passed through HTTP POST request. 
/// A sample data set is present in POSTMAN HTTP Body
/// /api/webhook
/// </summary>
/// <param name="BTRequest">Data from HTTP request body</param>
/// <returns>Webhook notification object</returns>
public WebhookNotification Post([FromBody]Dictionary<String, String> BTRequest)
{

    WebhookNotification webhook = gateway.WebhookNotification.Parse(BTRequest["bt_signature"], BTRequest["bt_payload"]);
    return webhook;
}

В Postman опубликуйте следующие данные в теле как необработанный JSON.

    {
        "bt_signature":"Generated Data",
        "bt_payload":"Very long generated data"
}

Данные для приведенного выше словаря Json были сгенерированы с помощью следующего кода:

     Dictionary<String, String> sampleNotification = gateway.WebhookTesting.SampleNotification(WebhookKind.DISPUTE_OPENED, "my_Test_id");
// Your Webhook kind and your test ID

Просто выберите данные из примера уведомления и поместите их выше в JSON. Запустите свой WebAPI, поставьте отладчики. Добавьте URL-адрес локального хоста в Postman, выберите POST и нажмите «Отправить». Ваш метод POST должен быть поражен.

Также не забудьте добавить информацию о шлюзе:

private BraintreeGateway gateway = new BraintreeGateway
        {
            Environment = Braintree.Environment.SANDBOX,
            MerchantId = "Your Merchant Key",
            PublicKey = "Your Public Key",
            PrivateKey = "Your Private Key"
        };

Надеюсь, это поможет!

person Purushottam.Prasad    schedule 06.05.2020

Я работаю в Braintree. Если вам нужна дополнительная помощь, свяжитесь с нашей службой поддержки.

Чтобы протестировать веб-перехватчики, ваше приложение должно быть доступно для шлюза Braintree. Адрес localhost не является. Попробуйте использовать свой внешний IP-адрес и убедитесь, что порт на правильном компьютере доступен из Интернета.

Дополнительные сведения о настройке веб-перехватчиков см. в руководстве по веб-перехватчикам Braintree.

person agf    schedule 21.01.2014

Вы можете использовать PutsReq, чтобы смоделировать желаемый ответ и выполнить сквозное тестирование в процессе разработки.

person Pablo Cantero    schedule 07.05.2014

Для быстрого и тщательного тестирования: http://requestb.in/

Более формальное тестирование (например, непрерывная интеграция): https://www.runscope.com/.

person Costa    schedule 20.11.2014

Если у вас есть онлайн-сервер, вы можете перенаправить порт с вашего компьютера на этот сервер.

ssh -nNT -R 9090:localhost:3000 [email protected]

Затем укажите веб-перехватчик как http://yourvds.com:9090/webhook.

все запросы будут перенаправлены на вашу машину, вы сможете увидеть логи

person nazar kuliyev    schedule 13.08.2015

Я знаю, что это старый вопрос, но согласно документации, вы можете использовать этот код для проверки кода веб-хука:

Dictionary<String, String> sampleNotification = gateway.WebhookTesting.SampleNotification(
    WebhookKind.SUBSCRIPTION_WENT_PAST_DUE, "my_id"
);

WebhookNotification webhookNotification = gateway.WebhookNotification.Parse(
    sampleNotification["bt_signature"],
    sampleNotification["bt_payload"]
);

webhookNotification.Subscription.Id;
// "my_id"
person developius    schedule 02.11.2016

Вы можете использовать Svix CLI Listener: https://github.com/svix/svix-cli#using-the-listen-command

Это позволит вам легко направлять запросы к вашей общедоступной конечной точке на локальный порт, где вы можете запускать свою логику и отлаживать ее на своем локальном хосте.

person Yair Levi    schedule 20.07.2021