Back to All

iOS 3DS challenge Flow callback

I am following the https://developers.tabapay.com/reference/how-to-use-the-3ds-sdk-starter-guide to implement 3DS.

I am able to successfully create Frictionless transactions as well as transactions that have Step up/Challenge response. However, the behavior I am seeing is slightly different from what the guide states.

When I use sandbox test card for lookup Challenge/StepUp from https://developers.tabapay.com/reference/test-cases specifically 4000000760000002, I get the challenge and I get the JWT in the callback but the validateResponse is nil. I am able to successfully create transactions with the JWT returned in this callback, but there is no way to check the actionCode

func cardinalSession(cardinalSession session: CardinalSession!, stepUpValidated validateResponse: CardinalResponse!, serverJWT: String!) {
    switch validateResponse.actionCode {
    case .success:
        // Handle successful transaction, send JWT to backend to verify
        break
        
    case .noAction:
        // Handle no actionable outcome
        break
        
    case .failure:
        // Handle failed transaction attempt
        break
        
    case .error:
        // Handle service level error
        break

    case .cancel:
        // Handle transaction canceled by user
        break

    case .timeout:
        // Handle transaction timedout
        break
    }
}

Am I doing something wrong or should I ignore the validateResponse.actionCode in step 12 of this guide.
Thanks!


Questions? Contact Sales or make a post