Nikita Makarov
Nikita Makarov

Reputation: 97

Braintree: Generate Client Token in ASP.NET MVC 4.5

I'm having some issues integrating Braintree, as well as understanding the concept of how the transaction takes place.

Here's how i currently understand Braintree:

Server Generates ClientToken -> Integrates into html/js -> User receives payment form and sends data to Braintree -> Nonce is sent to Server -> Server sends Transaction to Braintree

Is this correct?

I'm currently on step 1, trying to generate a client token, and i'm getting a NullReferenceException:

public ActionResult Payment(EditContainerViewModel newEdit)
    {

        //generate client token
        newEdit.PaymentInfo.ClientToken = PaymentConstants.Gateway.ClientToken.generate();

        return View(newEdit);
    }

And heres the Gateway declaration:

 public static class PaymentConstants
{
    public static BraintreeGateway Gateway = new BraintreeGateway
    {
        Environment = Braintree.Environment.SANDBOX,
        MerchantId = "id",
        PublicKey = "publickey",
        PrivateKey = "privatekey"
    };
}

Heres my view:

@model Sandbox.Models.EditContainerViewModel


<h2>Payment</h2>

<form id="checkout" method="post" action="/checkout">
    <div id="payment-form"></div>
    <input type="submit" value="Pay $10">
</form>

<script src="https://js.braintreegateway.com/v2/braintree.js"></script>
<script>
// We generated a client token for you so you can test out this code
// immediately. In a production-ready integration, you will need to
// generate a client token on your server (see section below).
    var clientToken = "@Html.Raw(Model.PaymentInfo.ClientToken)";

braintree.setup(clientToken, "dropin", {
  container: "payment-form"
});
</script>

I'd really appreciate any insight on this topic, especially as i found that the provided ASP.NET examples didn't show the token generation stage.

Thank you!

Upvotes: 0

Views: 1448

Answers (1)

Nikita Makarov
Nikita Makarov

Reputation: 97

As said in the comment, i was far too focused on Braintree that i made an extremely beginner error. This serves as a great reminder that you can find the answer by just taking a step back and looking at the error from a new perspective. :)

Upvotes: 1

Related Questions