Integrate Klarna Payments Gateway SDK in iOS Application

Updated 1 July 2020

Save

Adding the SDK via Cocoapods

If you’re using Cocoapods, you can add the SDK by adding the dependency to your Podfile

Followed by performing:

Importing the SDK

Both the Klarna Payments native integration and the hybrid integration are available under the KlarnaMobileSDK module.

RENDERING A PAYMENT VIEW

A Payment View in iOS is called a KlarnaPaymentView. Rendering a payment view consists of creating an instance of the view, passing it an event listener and, adding it to your view hierarchy.

Creating the View

You can initialize the KlarnaPaymentView by providing a return URL and the event listener.

Param Type Description
category String The payment method category that should be rendered in the view.
eventListener KlarnaPaymentEventListener The listener that receives events during the payment process.

The Payment View Event Listener

The SDK will notify you of events via an event listener that you’ll need to implement. It acts as a conventional delegate on iOS, however, unlike a delegate, it’s not optional.

Handling Height Changes

The payment view does not define any height internally. This is because we want to allow you to handle height changes in whichever way is most convenient to you.

The payment view instead notifies you through the event listener you provide it.

WORKING WITH A PAYMENT VIEW


 

We expose six methods on the payment view that you can use to interact with the payment method it’s presenting:


1. Initializing the View

Before content is rendered into a payment view, it needs to be configured. You can do this by initializing the view.

Initialization

After the view has been added and set up, you’ll need to call initialize() with the clientToken you received from the back-end and a returnURL.

Param Type Description
clientToken String The token that was returned when you created the session.
returnUrl URL URL schema as defined in your app’s Plist to return from external applications.

Result

If successful klarnaInitialized() will be called in the listener you supplied. If it’s not successful klarnaFailed() will be called instead.

Param Type Description
paymentView KlarnaPaymentView The payment view that was initialized.

2. Loading the View

Once you’ve initialized the view and you’re ready to display SDK of  the KlarnaPaymentView.

Loading

Simply call load(), supplying an optional string with updated order data to update the session. This string should be formatted as a valid JSON.

Param Type Description
jsonData String? An optional string with the order data to update the session. Formatted as JSON.

Result

If successful klarnaLoaded()will be called in your listener. If anything went wrong, klarnaFailed()it will be called.

And if you’ve loaded several views, you should keep track of which view your user selected to know what to authorize in the next step.

Param Type Description
paymentView KlarnaPaymentView The payment view that was loaded.

3. Authorizing the Session

When the payment view SDK is loaded, and the user has confirmed that they want to pay with one of Klarna’s selected payment methods, it’s time to authorize the session.

Authorize

When you are ready to authorize the session, call authorize(). As with load, you can supply an optional string to update the session. You can also specify whether auto-finalization should be turned off; if it is, the user may need to be prompted a second time to input data.

Param Type Description
autoFinalize Boolean? An optional flag used to turn off auto-finalization for direct bank transfer.
jsonData String? An optional string to update the session. Formatted as JSON.

Result

If successful klarnaAuthrized() will be called in your listener. If not, klarnaFailed() it will be called.

Param Type Description
paymentView KlarnaPaymentView The payment view that was authorized.
approved Bool Whether the authorization was approved or not.
authToken String? If the session was authorized, the token will not be null.
finalizedRequired Bool Will be true if autoFinalize was false and this payment method needs a second confirmation step.

 

There are cases when you might want to allow your customer to change their order after it has been authorized (e.g. in some form of order/summary view). In these cases, if the order or customer details have changed, you’ll need to reauthorize the session.

Reauthorize

Param Type Description
jsonData String? An optional string to update the session. Formatted as JSON

Result

If successful, klarnaReauthorized() will be called, and if not, klarnaFailed() will be called instead.

Param Type Description
paymentView KlarnaPaymentView The payment view that was reauthorized.
approved Bool Whether the reauthorization was approved or not.
authToken String? If the session was previously authorized, the token will not be null.

5. Finalizing the Session

If the session needs to be finalized, you’ll need to perform this last step to get an authorization token.

Finalize

Call finalise() in order to get the token.

While we tend to name all finalize operations “finalize” with a “z”, all classes subclassing fromNSObjectalready have a conflicting finalize()method. In this specific case, we use alternative British-English spelling.

Param Type Description
sessionData String? An optional string to update the session. Formatted as JSON

Result

If successfulklarnaFinalized()will be called in your listener. If not successfulklarnaFailed()will be called.

Param Type Description
paymentView KlarnaPaymentView The payment view that was finalized.
approved Bool Whether the user was approved on finalizing or not.
authToken String? If the finalization went through, the token will not be null.

Loading a Payment Review

If you’d like to allow the user to review their payment after it’s authorized, this can be done in two ways:

  1. Render it in a new view:
    • Create a new KlarnaPaymentView with the same payment method
    • Call initialize()
    • Call then loadPaymentReview()
  2. Render it in the existing payment view:
    • Call loadPaymentReview() in the existing view.
Only specific payment method categories and countries are currently supported. Contact us to make sure that you can call this method.

Load the Payment Review

This will load/replace the view’s content with a description of how your customer will have to perform payment

Result

If successful klarnaLoadedPaymentReview()will be called in your listener. If not, klarnaFailed() it will be called instead.

Param Type Description
paymentView KlarnaPaymentView The payment view displayed a payment review.

Handling Errors

This will handle all the errors from the previous implementations. KlarnaPaymentError will contain the information needed to show to the user and also to handle all the states of the listener.

Param Type Description
paymentView KlarnaPaymentView The payment view that had the error.
error KlarnaPaymentError? The class that contains the information (namemessageisFatal and debugDescription) about the error

Conclusion

So please follow the above step to integrate Klarna Payment Gateway, and if you have any issue or suggestion, you can leave your query/suggestion in the comment section.
If you want to know more about the klarna payment gateway please visit the below link:-
The flow of the payment gateway
payment gateway
author
. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.

Start a Project


    Message Sent!

    If you have more details or questions, you can reply to the received confirmation email.

    Back to Home