Hi, I have almost implemented all of the process for 3Dsecure for direct payments through PayPal as an external project (http://centinel.umair.me).
Though I now want it to integrate with NopCom 2.8.
Problem I am facing is that I want to authenticate the user's card before actually placing the order to PayPal (i.e. in one page checkout, method name OpcConfirmOrder() and just before the paymentService.placeOrder(...) method is called).
Now for 3D secure we need to go to a url which is returned by the service where user will have to verify his card details, so how can I work this out so user doesnt navigate from OPC page bcoz everything is done through JS and if navigated away, the user will not be able to see his form fields on return from the 3D secure page.
Any thoughts on this, or any thing else I can do?
Thanks !
UPDATE:
Just to let you guys know, there are 2 parts for this:
1. Lookup (if the card holder is enrolled in 3Dsecure or not.
2. If he is enrolled, then proceed with Authentication for 3Dsecure.
I figured part 1 of this:
I am checking if the card holder enrolled or not in ProcessPayment() of PayPalDirectPaymentProcessor.cs which inherits IPaymentMethod so this is a good place to verify the user.
Now that the user is not enrolled I simply return ProcessPaymentResult with an error in it and not proceed with order.
Here is now where I am stuck:
If the user is enrolled for 3Dsecure and next step is to redirect the user to the URL (returned by 3Dsecure lookup) and authenticate him.