Test Webhook at localhost in braintree

后端 未结 7 2231
故里飘歌
故里飘歌 2021-02-06 01:03

I am working on braintree and I want to send custom email notifications to my customers as I am working with recurring billing, so every month these custom notifications should

相关标签:
7条回答
  • 2021-02-06 01:09

    For quick 'n dirty testing: http://requestb.in/

    For more formal testing (e.g. continuous integration): https://www.runscope.com/

    0 讨论(0)
  • 2021-02-06 01:16

    These are some of the tools that can be used during development of webhooks :

    1) PostCatcher,

    2) RequestBin,

    3) ngrok,

    4) PageKite and

    5) LocalTunnel

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

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

    0 讨论(0)
  • 2021-02-06 01:19

    I know this is an old question, but according to the docs, you can use this code to test your webhook code:

    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"
    
    0 讨论(0)
  • 2021-02-06 01:23

    You can use PutsReq to simulate the response you want and do your end-to-end test in development.

    0 讨论(0)
  • 2021-02-06 01:26

    Well Another way to test it is by creating a WebAPI and POSTing Data to your POST method via Postman. To do this, just create a WebAPI in Visual Studio. In the API controller, create a POST method.

    /// <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;
    }
    

    In Postman, Post the following data in the Body as raw JSON.

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

    The data for the above Json dictionary has been generated through the below code:

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

    Just pick the data from sample notification and place it above in the JSON. Run your WebAPI, place debuggers. Add the localhost URL in Postman, select POST, and click on Send. Your POST method should be hit.

    Also, don't forget to add your gateway details:

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

    I hope this helps!

    0 讨论(0)
  • 2021-02-06 01:27

    If you have a online server you may forward port from your computer to that server.

    ssh -nNT -R 9090:localhost:3000 root@yourvds.com

    And then specify webhook as http://yourvds.com:9090/webhook

    all requests will be forwarded to you machine, you will be able to see logs

    0 讨论(0)
提交回复
热议问题