AuthorizeNet / sdk-dotnet

.Net SDK for Authorize.Net API
Other
149 stars 206 forks source link

Custom environment not using custom URLs exactly #265

Closed mewajda closed 5 years ago

mewajda commented 5 years ago

I am using the static method on the Environment class createEnvironment to create an environment that points to an authorize.net emulator service. The problem is that the custom URLs that I have created the environment with aren't being used exactly as they are.

In this method:

private static Uri GetPostUrl(AuthorizeNet.Environment env) 
{
            var postUrl = new Uri(env.getXmlBaseUrl() + "/xml/v1/request.api");
            Logger.debug(string.Format("Creating PostRequest Url: '{0}'", postUrl));

            return postUrl;
}

the XML base URL is being used but it it being appended with an additional path string.

Is there a reason for this? Can this be changed to make it so a truly custom URL can be used?

Thanks, Mike

gnongsie commented 5 years ago

Hi, Thank you for coming to us with this issue.

I'm not sure what emulator service you are talking about. But we do have a Sandbox environment where you can test the integration with your application.

The SDK allows you to send requests to a production URL and a sandbox URL. We cannot allow you to send requests to a random URL.

Thanks, Gabriel

mewajda commented 5 years ago

Regarding your statement around not allowing requests to random URLs, is there a reason for this? Basically I want to be able to set a custom URL that I provide and the ‘createEnvironment’ seemed like the way to do that until I dug deeper into the code.

mewajda commented 5 years ago

It looks like what I want to do is possible in your node sdk. Where I can specify a url and it doesn’t look like anything gets appended to it before the request is sent. That is all I would like is for the ‘PostData’ method to not append anything to the xml base url

gnongsie commented 5 years ago

Authorize.Net processes a lot of sensitive information, and these SDKs are designed to allow the merchants to protect themselves against fraud as well as to protect their customers against security threats.

For this reason, the SDKs exposed on external repositories (like NuGet) cannot allow you to send this sensitive data to a random URL. We are restricting those endpoints to the production URL and the sandbox URL.

The code in these GitHub repos is maintained to allow developers such as yourself to see the code behind those exposed SDKs. You are free to make code changes as you wish to your copy of the code. But again, for security reasons, we cannot make similar changes to the code to allow sending requests to random URLs.

I hope you can understand. Kindly let me know how else I can assist you.

mewajda commented 5 years ago

Thank you for the information