Custom fields in checkout when using Klarna Checkout

I want to add a few extra fields next to the delivery method selection on the checkout page. But how can get these values to the additionalorderinfo in the order object when using Klarna Checkout V3? The HttpPost Index method in the checkout controller is not called when using KCO.

One solution I guess is using ajax when selections changes and textfields are edited. But how do I verify this before processing the payment?
KlarnaPaymentWidgetController seems to have a Validate method, is this a place I can validate my order? It doesn’t seem to be called, but I suppose this is because the server’s IP is not externally accesible?
But shouldn’t the Klarna payment fail if it’s unable to call the Validate method?

How is the selected delivery method added to the order object?

What is the best way to solve this? Am I even on the right track?
I have to admit I feel slightly lost in all this.

Litium version: 6.1.1

Is it possible to explain a bit more please, specially the relationship between these two statements., is it possible to explain a bit more the business requirement? perhaps taking an example.


So this is basically what I want to do. Or basically two things:

  1. Have the content of the custom field saved into the order (AdditionalOrderInfo).
  2. Stop Klarna from processing the payment if that field is empty, and instead in some way prompt the user that the field is missing

About your question about the Validate method. I was thinking that might be a place to validate the order before having Klarna process the payment, but I might be wrong.

We cannot rely on the validate method because Klarna expects a reply before 3 seconds, and if its too late, they will go ahead with the redirect, which will cause a data loss.

Can you hide the Klarna iFrame, in a collapsed div, which will get enabled only when the mandatory data is filled?
store the mandatory data as additional order info then.

Thank you for the help, we will likely go with the collapsed div approach.