3D secure payment, POST request back to site 404ing (URL exists, page refresh fine) (Vue.js / Nuxt.js)

Hello!

I’m attempting to make 3D secure payments, and running into an issue with the POST request that the successful 3D secure form makes, to return to my Nuxt.js application.

https://developers.cardinity.com/api/v1/#3d-secure-program

As is detailed in the Cardinity documentation above, I am taking the card details, posting to a Netlify function to create a pending transaction, and then when the response comes back with the 3D secure URL, submitting the 3D secure form. This all works perfectly.

However as soon as the external 3D secure check completes and POSTs to my termination URL, it navigates to the correct URL, but Netlify 404s and I get the standard Netlify page not found screen. Refreshing the page, obviously loads the correct page!

Here is my form, which works perfectly:

<div v-if="cardSecure">
  <p>
    If your browser does not start loading the page,
    press the button below.
    You will be sent back to this site after you
    authorize the transaction.
  </p>
  <form name="ThreeDForm" method="POST" :action="threeDUrl">
    <button type=submit>Click Here</button>
    <input type="hidden" name="PaReq" :value="paReq" />
    <input type="hidden" name="TermUrl" value="https://www.climaxbooks.com/checkout" />
    <input type="hidden" name="MD" value="?name=simonrogers&age=27" />
  </form>
</div>

Here’s my site name:

climaxbooks

And production URLs, which do not have the card payment option active, but just for reference:

https://www.climaxbooks.com/ or https://climaxbooks.netlify.app/

Here is one such failed POST request ID:

x-nf-request-id: 9a5ffaab-1a2b-478f-b2f0-392f301e4aa1-6531916

And the full response:

GENERAL
Request URL: https://www.climaxbooks.com/checkout
Request Method: POST
Status Code: 404 
Remote Address: [2a03:b0c0:3:e0::26f:c001]:443
Referrer Policy: no-referrer-when-downgrade

RESPONSE HEADERS
age: 0
cache-control: public, max-age=0, must-revalidate
content-type: text/html; charset=utf-8
date: Wed, 30 Sep 2020 08:33:31 GMT
etag: 1596704463-ssl
server: Netlify
status: 404
x-nf-request-id: 9a5ffaab-1a2b-478f-b2f0-392f301e4aa1-6531916

REQUEST HEADERS:
:authority: www.climaxbooks.com
:method: POST
:path: /checkout
:scheme: https
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
accept-encoding: gzip, deflate, br
accept-language: en-GB,en-US;q=0.9,en;q=0.8
cache-control: no-cache
content-length: 5495
content-type: application/x-www-form-urlencoded
origin: https://cap.attempts.securecode.com
pragma: no-cache
referer: https://cap.attempts.securecode.com/acspage/cap?RID=18&VAA=A
sec-fetch-dest: document
sec-fetch-mode: navigate
sec-fetch-site: cross-site
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36

FORM DATA:
PaRes: **************** removed for length ***********************
MD: ?name=simonrogers&age=27
PaReq: eJxVUl1v[...REMOVED FOR LENGTH...]/wFdmrEy
ABSlog: GPP
deviceDNA: 
executionTime: 
dnaError: 
mesc: 
mescIterationCount: 0
desc: 
isDNADone: false

Would hugely appreciate any assistance here! Passing localhost:8888 to the URL, triggers a “function not found…” message with no additional information.

Thank you,

Simon

Hi @simonhrogers,

Our support team can answer questions about Netlify itself. However, Netlify Support won’t be able to answer the question of how to a third-party api. I mention this because questions about custom code are outside the scope of support that our team provides (unless there is a paid support contract which specifically includes it - which is a possibility).

Someone else here in the community might be able to answer this, but our support team doesn’t have bandwidth for custom code questions. (We wish we did have bandwidth but our resources are limited so we much focus on Netlify specific issues and questions.)

If you do find a solution, we’d also love to learn about it if you are willing to follow-up here about that solution.

If I did misunderstand the question, if you would, please provide some details to clarify and we’ll go from there. Thanks!