I'm trying to use the nodejs sample in the Visa Sandbox environment. Once I got past the complex authentication mess I now at least get API responses. Unfortunately, they always say "Internal Application Error":
{
"statusCode": 200,
"body": {
"merchantSearchServiceResponse": {
"header": {
"startIndex": "3",
"numRecordsMatched": 0,
"numRecordsReturned": 0,
"requestMessageId": "252d9aaf",
"messageDateTime": "2019-06-12T22:49:41.122",
"responseMessageId": "64VDP121620190612224941122",
"endIndex": "0"
},
"status": {
"statusDescription": "Internal Application Error",
"statusCode": "CDI120"
}
}
},
"headers": {
"server": "nginx",
"content-type": "application/json;charset=UTF-8",
"content-length": "328",
"x-served-by": "l55c014",
"x-correlation-id": "1560379780_805_1664449040_l55c014_VDP_WS",
"x-backside-transport": "OK OK,OK OK",
"cache-control": "no-cache, no-store, must-revalidate,no-cache, no-store, max-age=0 ,no-cache, no-store, must-revalidate",
"pragma": "no-cache,no-cache ,no-cache",
"x-download-options": "noopen",
"expires": "-1,Thu, 01 Jan 1970 00:00:00 GMT ,-1",
"content-language": "en-US",
"x-global-transaction-id": "1610785709",
"x-app-status": "200",
"x-frame-options": "SAMEORIGIN",
"x-xss-protection": "1; mode=block",
"x-content-type-options": "nosniff",
"strict-transport-security": "max-age=2592000;includeSubdomains",
"date": "Wed, 12 Jun 2019 22:49:42 GMT",
"connection": "close"
},
"request": {
"uri": {
"protocol": "https:",
"slashes": true,
"auth": null,
"host": "sandbox.api.visa.com",
"port": 443,
"hostname": "sandbox.api.visa.com",
"hash": null,
"search": null,
"query": null,
"pathname": "/merchantsearch/v1/search",
"path": "/merchantsearch/v1/search",
"href": "<a href="https://sandbox.api.visa.com/merchantsearch/v1/search" target="_blank">https://sandbox.api.visa.com/merchantsearch/v1/search</a>"
},
"method": "POST",
"headers": {
"User-Agent": "VDP_SampleCode_Nodejs",
"Authorization": "Basic VTQySTBYWFhVT1dUT0dLN1Q1UjMyMXR5bjFKd29Malg2Z1JoWUEwMUMwTHpFM0VCMDpjQTBCbjc4ZXJBMU8wR3duNg==",
"x-correlation-id": "3uRiiEcIp8YF_SC",
"x-client-transaction-id": "2d87d6cc",
"accept": "application/json",
"content-type": "application/json",
"content-length": 425
}
}
}
Solved! Go to Solution
If we are unable to verify this API we will need to choose another provider.
Does anyone at Visa monitor these threads?
Hi @fredzilla,
Yes, someone at Visa does monitor the community forum threads, and that would include myself and some other colleagues. 🙂
Can you please confirm that you are usisng Test Data?
Please note, that when you create a test App in our sandbox you will receive test data in your App. The test data for your Visa Developer application is available in the Dashboard under test data in the left navigation, this will ensure that you are using valid data that has been provisioned for specific scenarios. You will basically have a table per API that is split into the Request and Response sections and the values on the Request section are meant to be populated in the payload with the intention of obtaining results specified in the Response section.
Sandbox data is limited to what is provided in the Test Data tables and is not integrated to the Visa Network and you cannot test real data in sandbox (refer to example screenshots on Test Data below).
If the issue persists, 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
Using SoapUI, you can find the x-correlation-id in the Raw Tab of the response header.
This API "only" accepts the Test Data that you provide?
I cannot possibly validate that the service is useful if I can only provide it with a single hard-coded query. This is dumb.
Hi @fredzilla,
Test data is used for sandbox. You will be able to use real data in the production environment.
Still failing. Here's the parameters I'm sending:
{
"x-client-transaction-id": "cb79f4ff",
"Accept": "application/json",
"Content-Type": "application/json",
"Accept-Encoding": "gzip,deflate",
"payload": {
"responseAttrList": [
"GNSTANDARD"
],
"header": {
"messageDateTime": "2019-06-17T09:33:37.585",
"startIndex": "0",
"requestMessageId": "Request_001"
},
"searchOptions": {
"matchScore": "true",
"proximity": [
"merchantName"
],
"wildCard": [
"merchantName"
],
"maxRecords": "5",
"matchIndicators": "true"
},
"searchAttrList": {
"acquirerCardAcceptorId": "424295031886",
"acquiringBin": "476197",
"businessRegistrationId": "386004447",
"merchantPostalCode": "48858",
"merchantCity": "Mount Pleasant",
"merchantPhoneNumber": "19897747123",
"merchantState": "MI",
"merchantName": "cmu edctn materials cntr",
"merchantStreetAddress": "802 industrial dr",
"merchantUrl": "<a href="http://www.emc.cmich.edu/" target="_blank">http://www.emc.cmich.edu/</a>",
"merchantCountryCode": "840"
}
}
}
BTW if we have to pass all of this information, what does the API do for us?
Kindly note that I am passing all of that curated test data and still seeing this error.
Hi @fredzilla,
I'm currently reviewing your questions and then I'll get back to you soon.
Hi @fredzilla,
Please hold on... because I'm still working on getting the answer for you. Thanks!