Problems with two-factor authentication #320
We also use the Android SDK and have no issues with the two-factor authentication.
FWIW, we also have a user who was having trouble with two-factor auth, and we're using the 2.9.0 version of the SDK. I'm continuing to investigate, and I'll update if I can reproduce the same issue.
Update: I'm getting:
PayPal SDK: Request has failed with error: 2fa_required - System error (2fa_required). Please try again later. (401) | PayPal Debug-ID: ac3b24fa086b1 [live, PayPal iOS SDK 2.9.0] | Details: (
{
"error_description" = "Unable to authenticate the user. 2fa flow completion is neccessary for successful login. ";
}
).
FWIW, I tried the latest version, and it didn't even send me the text for the one-time password, it just gave me the error that @schwippe got. On 2.9.0, it sends the code, you enter the code, and then nothing (except a log message in XCode when run through the simulator).
Hi @zerodiff, thanks a lot for your comments. So it seems to be a problem within the SDK or with the PayPal backend.
@schwippe I'd assume it's a problem with the PayPal iOS SDK because you noted that it works on Android (unless they use different backends, which I think is unlikely). I've opened a case with PayPal, and I'll keep any updates posted.
In case anybody is talking to payPal support I created a ticket 150901-000111 on 1.9.2015 for same problem @schwippe has at Supportsite https://www.paypal-techsupport.com/ but did not yet get an answer
Two factor message delivery has been experiencing some problems over the past few days. I believe this has now been resolved.
@tomwhipple I tried again, and I still get the error message and after that no prompt to send or enter the auth code for the latest 2.11.4 SDK. However, after the error, I appear to be logged in. I still think something is amiss.
Hi, can you try release 2.12.1 for a fix for the 2FA flow? Thanks!
@bluk I'm getting a linker error:
duplicate symbol _llvm.cmdline in:
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskUtility.o)
duplicate symbol _llvm.embedded.module in:
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskUtility.o)
duplicate symbol _llvm.cmdline in:
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskConfiguration.o)
duplicate symbol _llvm.embedded.module in:
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskConfiguration.o)
duplicate symbol _llvm.cmdline in:
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskLinkerID.o)
duplicate symbol _llvm.embedded.module in:
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskLinkerID.o)
duplicate symbol _llvm.cmdline in:
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskComponent.o)
duplicate symbol _llvm.embedded.module in:
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskComponent.o)
ld: 8 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
This is in Xcode Version 6.4 (6E35b).
@zerodiff Thanks for the quick try. Investigating the new issue. There seem to be mixed results with deleting the DerivedData which may help, but it may also be a general Xcode 7 build issue with Xcode 6.4 projects.
@bluk I was able to build it with Xcode 7, and I get all the way through to entering the code that was SMS'd, but there's no button or "Done" on the number input to actually submit the code to auth. So, almost there, but still can't fully auth. This was a problem on 2.9.0 also, as mentioned above.
Thanks for continuing to look into this. I tried this both in the iPhone simulator with iOS 9 and on my phone with iOS 8.4.
@zerodiff Still looking into the Xcode 6.4 vs. Xcode 7 issue but glad you got it to link in Xcode 7. So when you get to the 2-Factor Authentication view, you do not see the "Log In" button in the upper right?
Nevermind... I found the source of the "missing" buttons. We had for our app styles:
UIBarButtonItem *barButtonAppearance = [UIBarButtonItem appearance];
[barButtonAppearance setTintColor:[UIColor whiteColor]];
Not knowing exactly how the PayPalPaymentViewController is constructed, it took me a while to figure out. Thanks for the help. I'm able to log in with two-factor auth now.
It seems the original issue with 2-factor authentication is fixed so I'll close this issue. Regarding the Xcode 6.4 vs. 7, if there's a solution it will be provided to fix issue #327.
The latest version of SDK in combination with Xcode 7 works fine. Thanks to all of you.
The biggest problem moving to new environment is that every one is not ready yet.
I restarted my computer and it stop working on Xcode 6.4 with same error. I moved to Xcode 7 for paypal, and GooglePlus framework is not ready for Xcode 7. (headbang)
Is there any old SDK which I can run on Xcode 6.4. I have to just made simple transaction.
We are using the newest iOS SDK version in our app. When trying to log in with an account that has two-factor authentication enabled, we always get the following error message:
"System error (2fa_required). Please try again later."
Are we doing something wrong?
These are our backend dependencies:
com.paypal.sdk
rest-api-sdk
0.11.0
com.paypal.sdk
paypal-core
1.6.8