This library is for use with Braintree's payment gateway in concert with one of the supported client libraries. It encrypts sensitive payment information using the public key of an asymmetric key pair.
There are a couple of ways to use the Windows Phone client encryption library.
- Simply download the assembly file from this repo and reference it to your Windows Phone project.
- Clone this repo.
- Import the Braintree Windows Phone class library into your solution.
- Add the library as a project dependency and make sure to reference the library.
Here's a quick example.
Configure the library to use your public key.
var braintree = new Braintree("YOUR_CLIENT_SIDE_PUBLIC_ENCRYPTION_KEY");
And call the Encrypt
method passing in the data you wish to be encrypted.
var encryptedValue = braintree.Encrypt("sensitiveValue");
Because we are using asymmetric encryption, you will be unable to decrypt the data you have encrypted using your public encryption key. Only the Braintree Gateway will be able to decrypt these encrypted values. This means that encryptedValue
is now safe to pass through your server to be used in the Server-to-Server API of one of our client libraries.
When Client-Side encryption is enabled for your Braintree Gateway account, a key pair is generated and you are given a specially formatted version of the public key.
The normal use case for this library is to encrypt a credit card number and CVV code before a form is submitted to your server. A simple example of this in Windows Phone might look something like this:
namespace BraintreeEncryptionExample
{
public partial class MainPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}
private void SubmitButton_Click(object sender, RoutedEventArgs e)
{
DisableForm();
PostToMerchantServer();
}
private void PostToMerchantServer()
{
var braintree = new Braintree(PublicKey);
var parameters = new Dictionary<string, object>
{
{"cc_number", braintree.Encrypt(CreditCardNumber.Text)},
{"cc_exp_date", braintree.Encrypt(ExpirationDate.Text)},
{"cc_cvv", braintree.Encrypt(Cvv.Text)}
};
var client = new BraintreeHttpClient(_merchantServerUrl, UploadStringCompleted);
client.Post(parameters);
}
}
}