Hi
Im using Visa Direct, and trying to implement the HelloWorld.cs functionality into my MVC Core project, to test it out on my site.
The line when you call:
var certificate = new X509Certificate2(certificatePath, certificatePassword);
throws an exception: "System.Security.Cryptography.CryptographicException: 'The system cannot find the path specified.'"
I put the cert.pem file into my project under a custom folder called Utils. and set the path to point at that like this: "~/Utils/cert.pem".
What am I doing wrong?
Hi @MatriXz, Thank you for reaching out. One of our agents will look into this and get back to you soon. Until then, if any community members know a solution, please feel free to reply to this thread.
Hi @MatriXz,
To further investigate, please provide the following information:
1. End Point
2. Request Header
3. Request Body
4. Response Header (include the x-correlation-id)
5. Response Body
You can find the x-correlation-id in the response header.
Hi,
I honestly have no idea what to reply here.
I think the endpoint is: "https://sandbox.api.visa.com/vdp/helloworld", it works perfectly in postman, using the same credentials, certificates etc.
In my project i created a simple button that calls this controller method:
[HttpPost]
public ActionResult BuyRows(string rowData) {
var visa = new Visa();
var response = visa.DoMutualAuthCall("vdp/helloworld", "GET", null, null, null);
return Json(response);
}
The class Visa is a copy paste of the Helloworld.cs file from your sample code collection. Slightly changed the logging method, and filled in the username etc.
This is the code:
As you can see I get an unhandled exception when it comes to this line. The request hasnt even been done yet. Hope its possible to read the screenshot.
Using some Copilot assistance I figured out what the problem was.. Its the Absolute path of the Cert.Pem file location that was the issue..
Solution:
string certificatePath = Path.Combine(Directory.GetCurrentDirectory(), "Utils", "cert.pem");
However, now I am getting to the request.GetResponse() part. Im getting an error 400 (bad request)
Details i know:
Url: "https://sandbox.api.visa.com/vdp/helloworld"
Method: "GET"
I call this method like this:
new Visa().DoMutualAuthCall("vdp/helloworld", "GET", null, null, null);
Any idea what I am doing wrong ?
All Searches say that something is not correct in the request.Header, or url is incorrect. But its copied from the documentation, and works in postman, so not that imo.
HI @MatriXz,
HTTP STATUS | HTTP CODE | CAUSE/RESOLUTION |
---|---|---|
BAD REQUEST |
400 |
This error could be due to a variety of reasons. Check for the following:
Or
Or
|
hi @MatriXz
i'm using node js to connect to VISA network. one thing i forgot in the first try, was including username and password in headers. in nodejs it is as follows: