Skip to content
Branch: master
Go to file
Code

Latest commit

rob.lascelles authored and sarahkoop committed 9214cfe Jun 27, 2020

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Feb 21, 2020
Sep 14, 2017
Nov 10, 2016
Mar 23, 2018
Oct 1, 2019
Mar 23, 2018
Mar 23, 2018
Aug 12, 2019
Mar 13, 2018
Mar 23, 2018
Dec 13, 2018
Jul 29, 2019

README.md

Braintree .NET library

The Braintree .NET library provides integration access to the Braintree Gateway.

Please Note

The Payment Card Industry (PCI) Council has mandated that early versions of TLS be retired from service. All organizations that handle credit card information are required to comply with this standard. As part of this obligation, Braintree is updating its services to require TLS 1.2 for all HTTPS connections. Braintree will also require HTTP/1.1 for all connections. Please see our technical documentation for more information.

Dependencies

  • .NET Core 1.0, .NET Core 2.0, or .NET Framework 4.5.2+

Quick Start Example

using System;
using Braintree;

namespace BraintreeExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var gateway = new BraintreeGateway
            {
                Environment = Braintree.Environment.SANDBOX,
                MerchantId = "the_merchant_id",
                PublicKey = "a_public_key",
                PrivateKey = "a_private_key"
            };

            TransactionRequest request = new TransactionRequest
            {
                Amount = 1000.00M,
                PaymentMethodNonce = nonceFromTheClient,
                Options = new TransactionOptionsRequest
                {
                    SubmitForSettlement = true
                }
            };

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

            if (result.IsSuccess())
            {
                Transaction transaction = result.Target;
                Console.WriteLine("Success!: " + transaction.Id);
            }
            else if (result.Transaction != null)
            {
                Transaction transaction = result.Transaction;
                Console.WriteLine("Error processing transaction:");
                Console.WriteLine("  Status: " + transaction.Status);
                Console.WriteLine("  Code: " + transaction.ProcessorResponseCode);
                Console.WriteLine("  Text: " + transaction.ProcessorResponseText);
            }
            else
            {
                foreach (ValidationError error in result.Errors.DeepAll())
                {
                    Console.WriteLine("Attribute: " + error.Attribute);
                    Console.WriteLine("  Code: " + error.Code);
                    Console.WriteLine("  Message: " + error.Message);
                }
            }
        }
    }
}

Static HTTP Client

In .NET core, if your integration does not require a Web Proxy or a custom Timeout setting, you can optimize your integration by re-using the same HTTP client instance.

var gateway = new BraintreeGateway
{
    Environment = Braintree.Environment.SANDBOX,
    MerchantId = "the_merchant_id",
    PublicKey = "a_public_key",
    PrivateKey = "a_private_key"
};
gateway.Configuration.UseStaticHttpClient = true;

Documentation

Developing and Tests

See DEVELOPMENT.md.

License

See the LICENSE file.

You can’t perform that action at this time.