Set Up Your Serveranchor

Server side payment token flowDiagram demonstrating the required interaction between the client, our servers, and your server.

Install and configureanchor

availability

Supports both .NET Framework 4.5.2+, .NET Core 1.0+ and higher.

Get started with our .NET library by hitting the download link below.

Download .NET library
  • Version: 5.24.0
  • SHA256: bec0e026dc10f3d101bc4fe3eb0c9ffd1a3fecadce6b3f1fe3f4ed1ee983574d

Or use NuGetanchor

NuGet is a package manager for Visual Studio.

To install the Braintree .NET Client Library, run the following command in the Package Manager Console:

PM> Install-Package Braintree

In your code, configure the environment and API credentials:

  1. C#
var gateway = new BraintreeGateway
  {
    Environment = Braintree.Environment.SANDBOX,
    MerchantId = "the_merchant_id",
    PublicKey = "a_public_key",
    PrivateKey = "a_private_key"
  };
note

See the Braintree .NET Version Changelog.

Generate a client tokenanchor

Your server is responsible for generating a client token, which contains all authorization and configuration information your client needs to initialize the client SDK to communicate with Braintree. Including a CustomerId when generating the client token lets returning customers select from previously used payment method options, improving user experience over multiple checkouts.

  1. C#
// pass clientToken to your front-end
var clientToken = gateway.ClientToken.Generate(
    new ClientTokenRequest
    {
        CustomerId = aCustomerId
    }
);

If the customer can't be found, it will throw an ArgumentException.

Set Up Your Client covers the client side of the exchange.

Send a client token to your clientanchor

Here is an example of how your server would generate and expose a client token:

  1. C#
public class ClientTokenHandler : IHttpHandler {
  public void ProcessRequest(HttpContext context) {
    var clientToken = gateway.ClientToken.Generate();
    context.Response.Write(clientToken);
  }
}

How the token is used by the client may vary. In JavaScript integrations the client token is often included in the generated HTML/JS, while in mobile apps the client token must be requested. These methods are discussed in the client token setup section.

Receive a payment method nonce from your clientanchor

Once your client successfully obtains a customer payment method, it receives a payment_method_nonce representing customer payment authorization, which it then sends to your server.

Your server implementation is then responsible for receiving the payment_method_nonce and using it appropriately.

  1. C#
[HttpPost]
public ActionResult CreatePurchase(FormCollection collection)
{
  string nonceFromTheClient = collection["payment_method_nonce"];
  // Use payment method nonce here
}

Create a transactionanchor

You can create a transaction using an Amount and the NonceFromTheClient you received in the previous step.

Collect device data from the client and include the DeviceDataFromTheClient in the transaction.

  1. C#
var request = new TransactionRequest
{
    Amount = 10.00M,
    PaymentMethodNonce = nonceFromTheClient,
    DeviceData = deviceDataFromTheClient,
    Options = new TransactionOptionsRequest
    {
      SubmitForSettlement = true
    }
};

Result<Transaction> result = gateway.Transaction.Sale(request);

The sale call returns a Transaction Result Object which contains the transaction and information about the request.

Test your integrationanchor

See our Testing page for values you can use for NonceFromTheClient in your sandbox account. These nonces can be passed as strings through server-side calls to generate payment methods in the desired state. To verify your integration, you can check in the sandbox Control Panel, where transactions will immediately appear on success.

important

Always develop and test your code against your sandbox account before processing live transactions against a production account.

Transition to productionanchor

At this point, you should be able to accept a payment method nonce and create a transaction in our sandbox. When you're ready to start charging real money, transition over to our production environment. We'll explain that process next.

Further readinganchor


Next Page: Go Live