I'm trying to use the Sandbox Environment, but I can't seem to authenticate for some reason,
Here the method:
public Customer CreateCustomer(
User user)
{
var request = new CustomerRequest
{
FirstName = user.Firstname,
LastName = user.Lastname,
Email = user.Email
};
try{
var gateway = new BraintreeGateway
{
Environment = Braintree.Environment.SANDBOX,
MerchantId = "rmzzy8txvc2w35pg",
PublicKey = "wqgg52tmkhsfmn9t",
PrivateKey = "86ab47514a195d393db6d1b12350facf"
};
Braintree.Result<Customer> result = gateway.Customer.Create(request);
return result.Target;
}catch(Exception ex){
Console.WriteLine(ex.Message);
return null!;
}
}
This API key is valid, as shown In the image below taken from my sandbox account:
In the try & catch block, this is the exception that I catch:
Exception of type 'Braintree.Exceptions.AuthenticationException' was thrown.
However when I Use(Image used for lack of better way of showing the error)
What should I Do to fix this?
EDIT:
exception.toString:
Braintree.Exceptions.AuthenticationException: Exception of type 'Braintree.Exceptions.AuthenticationException' was thrown.\r\n at Braintree.HttpService.ThrowExceptionIfErrorStatusCode(HttpStatusCode httpStatusCode, String message)\r\n at Braintree.HttpService.GetHttpResponseAsync(HttpRequestMessage request)\r\n at Braintree.BraintreeService.GetXmlResponseAsync(String URL, String method, Request requestBody, FileStream file)\r\n at Braintree.CustomerGateway.FindAsync(String Id)\r\n at DedicatedServers_API.Services.BraintreeServices.BraintreeCustomerService.FindCustomer(String customerId) in BraintreeCustomerService.cs:line 95
Stacktrace ->
Exception thrown: 'Braintree.Exceptions.AuthenticationException' in System.Private.CoreLib.dll
at Braintree.HttpService.ThrowExceptionIfErrorStatusCode(HttpStatusCode httpStatusCode, String message)
at Braintree.HttpService.<GetHttpResponseAsync>d__21.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
at Braintree.BraintreeService.<GetXmlResponseAsync>d__18.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
at Braintree.CustomerGateway.<FindAsync>d__5.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at DedicatedServers_API.Services.BraintreeServices.BraintreeCustomerService.<FindCustomer>d__8.MoveNext() in BraintreeCustomerService.cs:line 95```
I checked your second pic, and I found the error message is:
missing clientid when constructing braintreegateway
Then I check the source code about BraintreeGateway
. I found IBraintreeGateway
interface include Configuration
.
So the problem is the literal meaning of the error message, please check.
AND THE ANSWER IS, RUN A TEST ON Environment.Developement First, than it will allow you to make Sandbox request, nowhere to be found on docs this one.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.