It’s now time to render the confirmation snippet.
Get the value of the html_snippet
from the read order call response and embed it into your page where you would like the confirmation iframe to be shown.
Note: The confirmation page will only be rendered for 2h after the order has been completed. Do not include it anywhere else than the confirmation page.
There are two recommended ways of embedding the HTML snippet, server side or client side.
Embed the HTML snippet in your page served by your backend.
<html>
<body>
<!-- Your confirmation page html -->
{{klarna_order.html_snippet}}
<!-- More of your confirmation page html -->
</body>
</html>
This is the most straightforward approach for rendering the confirmation iframe.
Get the snippet via an ajax call from you server and inject it dynamically, using javascript, into your page. In this case, we should be sure that the script tag(s) are parsed and evaluated, which means inserting the snippet using innerHTML is not going to work.
getSnippet(/* Your backend endpoint URL */).then(function renderSnippet(htmlSnippet) {
var confirmationContainer = document.getElementById('my-confirmation-container')
confirmationContainer.innerHTML = htmlSnippet
var scriptsTags = confirmationContainer.getElementsByTagName('script')
// This is necessary otherwise the scripts tags are not going to be evaluated
for (var i = 0; i < scriptsTags.length; i++) {
var parentNode = scriptsTags[i].parentNode
var newScriptTag = document.createElement('script')
newScriptTag.type = 'text/javascript'
newScriptTag.text = scriptsTags[i].text
The snippet will render the confirmation iframe.
What’s next?
Well done, you have successfully integrated Klarna checkout and displayed the confirmation page!
To have a fully functional integration you need to read through: