Migration Questions from Paypal MPL to PaypalMobile iOS SDK - ios

We are migrating from MPL to Paypal Mobile iOS SDK and we have what you call classic app. We could not find the migration guide and are having following questions.
The new sdk needs client id. Is the client id same as API Key?
According to the guide
"You need two credentials:
clientId: Available on the PayPal developer site.
receiverEmail: Your PayPal account email address
These are used to identify you as the recipient of payments. Both are public credentials; there is no need to attempt to obscure them or keep them private.
Important The receiverEmail should match the account used to get your client_id and secret."
We are not a receiver. We only facilitate payments between our users. Also we don't have a secret key. How do we let our users pay to other users?
In our app, user can pay their peers and also service providers. How do we make the distinction?
Your help is really appreciated!

Josh from PayPal here.
The PayPal iOS SDK does not currently have support for peer to peer payments.
The client_id is not the same as an API Key. You can get one from the PayPal developer website.

If you don't need support for direct credit card payments (sender has no PayPal account) you don't need the client_id. There is an option in the SDK to suppress direct credit card option. All you need to do is pass the payee's email address when initializing PaymentViewController. You can see the code snippet at https://developer.paypal.com/webapps/developer/docs/integration/mobile/ios-integration-guide/.

Related

PayPal AppID for Mobile Payment Library

I am using PayPal MPL in iOS because I need chained and parallel payments (split the fee between the seller and me). It seems that I can't find where the PayPal AppID's are located to complete this in the app delegate:
[PayPal initializeWithAppID:#"APP-80W284485P519543T" forEnvironment:ENV_SANDBOX];
//[PayPal initializeWithAppID:#"your live app id" forEnvironment:ENV_LIVE];
//[PayPal initializeWithAppID:#"anything" forEnvironment:ENV_NONE];
I registered my App on the PayPal developer website and I am given for sandbox a ClientID and a Secret, which are two separate numbers and cannot replace APP-8... I suppose that these are for the iOS SDK, however the SDK currently does not support parallel and chained payments, so the only alternative I would have would be to use HTTP requests. Furthermore when I open up the PayPal dialogue in iOS in Sandbox mode and enter my email and password it says that they are not valid.
For Adaptive Payments (aka "classic") applications you'll need to go to https://www.paypal-apps.com/user/my-account/applications.
The login should be the PayPal account for your actual merchant account.

Credit card payments via PayPal REST API without being PCI-compliant

Can't understand which PayPal API to use.
I have Rails app and I'd like to accept credit card recurring payments via PayPal. At first I was thinking to use Express Checkout API that supports recurring billing and can work even if a user doesn't have PayPal account. But then I saw that their official ruby gem merchant-sdk-ruby https://github.com/paypal/merchant-sdk-ruby will be deprecated:
This Classic SDK is not actively supported and will be deprecated in
the future. For full support on new integrations, please use the Ruby
Rest SDK
So I don't want to use something that will be deprecated soon. But I can't understand whether I can use REST API to accept credit cards without being PCI-compliant.
I'd like to redirect user to PayPal where he could enter his credit card info and return back to my site like in Express Checkout, but I see only examples where credit card info is collected on my site and passed to PayPal via API that implies more security headache on my site.
UPD: I found some information regarding this question in Accept a PayPal payment section of REST API documentation that is a bit odd because I expected to find it in Accept credit card payments section. They say:
Important: To receive Guest Checkout payments, which allow credit cards, ensure that PayPal Account Optional is enabled on your account
settings. For example, here is the path for US accounts:
Profile > My selling tools > Website preferences > PayPal Account Optional
But I'm still not sure whether it will work in my case. Now I have the following question:
Can I use Guest Checkout feature to accept recurring payments?
Can I test Guest Checkout in Sandbox? And if I can what credit card number to use?
Can I show by default form for entering credit card info when user gets to the PayPal site rather than for entering PayPal credentials?
Ughh... why it is so complicated?
There are couple of samples in PHP code, that could help you understand recurring payment options in REST API.
https://github.com/paypal/PayPal-PHP-SDK/tree/master/sample/billing
Or you could follow up the docs on : https://developer.paypal.com/webapps/developer/docs/api/#billing-plans-and-agreements
I will look into this specifically and get back to you
For trying it out on sandbox, you can create an account here at https://developer.paypal.com/webapps/developer/applications/myapps You need to create an app, and it would generate a valid credit card for you.
This may be very unlikely to do, but I can ask the internal team if they know of any such option.
Railscast #289 is on this. It requires that you sign up for the pro version. Looks pretty involved but he walks you through it.

Issues in PayPal live transaction via PayPal iOS SDK

I am developing an iOS application for iPad, version 7.x. We Need to perform PayPal transaction via the application. We included PayPal iOS SDK and referring their sample code to perform the transaction.
The sample code is placed here
There are enough funds in the customer account
Also, we have proper Client ID and secret key where funds needs to be transferred.
Both payee and payer have live accounts.
Transaction via their Sandbox account was sucess
Upon debugging the code, we found that we are able to create the payment. However, we get error while the payment is about to be approved.
Here are the error details
PayPal SDK: Request has failed with error: UNKNOWN_ERROR - System error (UNKNOWN_ERROR). Please try again later. (400) | PayPal Debug-ID: 3e8087cbf6bd1 [live, PayPal iOS SDK 2.1.2]
Is there any specific configuration which we need to include in our code for making live transaction?
Or is there specific configuration that needs to be done, in one of the accounts?
Or is there something missing the sample code provided by PayPal iOS SDK? Please advice.
The issue is that you are not using the correct ClientID. The client ID you are using is not associated with an active App from yoiur developer portal. To correct this, please go into the developer portal and either use a different client ID from a different 'active' app or create a new app.
We discussed this issue with PayPal Technical Support team, and here was the FIX:
We’ve found the issue is actually not with buyer account, some flag was not updated for merchant account "XXX#YYY.com” due to a bug which had in our system at the time it was created.
The fastest workaround to resolve this would be if you could please add another email to same account "XXX#YYY.com”.
Steps to add another email address to "XXX#YYY.com” :
Please login to the PayPal account.
Click on Profile—> Email address. Add another email address.
This solved our issue.

Paypal - IOS SDK - Business account / sole trader

We are creating an IOS app and we'd like to use your IOS SDK for payments on behalf of our clients clients. We have implemented your SDK into our app and all works great and we are really happy with it but we just have a few things we'd like to clarify if possible?
Our app is for personal trainers and we want to be able to offer them the facility of charging their clients for services in app. So the Paypal account would need to be setup in the personal trainers name, they would need to create a client id and then enter their paypal email and account ID information into the apps CMS - which would then be fed securely into the app which is used by their clients to order services.
The SDK requires a client ID and registered email - which we were able to create in our business account via a rest api. Our question is whether this process would still work if the Personal Trainer registered their Paypal account as a sole trader - or would they need a business account to create a client ID?
It has to be Business account.
https://developer.paypal.com/webapps/developer/docs/integration/admin/manage-apps/#upgrade-your-paypal-account-as-necessary
Just to understand your question is the same as ours.
We have an app for a client.
We want to integrate payment for them in the app.
With Paypal iOS SDK the parameters initWithClientId and receiverEmail need to be obtained by our client from paypal by registering for a developer api?
Why would a business register for a developer api?
payerId is our client's customers paypal/emailid?
With MPL this was not needed?
Thanks.

Active merchant and Paypal API for recurring payment

I have few questions on paypal's recurring payments, I went trough the paypal documentation to find some answers but, it didn't help me much.
Here are the stuffs that I need to know, hope someone can help me on these.
I'm using paypal's standard payment account. So far I managed to create recurring payments with paypal by posting NVP's to paypal from merchant website to paypal.
Now I need to show recurring payment profiles on merchant web site. So that customers can cancel, modify recurring payments from merchant website without redirecting to paypal.Is this possible?
Think I should use paypal's SOAP API for this as I can't get the job done with NVP API. So I installed active merchant as described in this post. But I always get an error
This transaction is invalid. Please
return to the recipient's website to
complete your transaction using their
regular checkout flow.
from paypal and it never send me the token back.
Also I got this on my log
Security header is not
valid
Is it because I use sandbox API credentials or is it because I can't use paypal's standard account with SOAP API?
Usually the "security header is not valid" response comes from using sandbox credentials in the live environment or vice-versa. AM will use the sandbox when your Rails app is in development mode, so be sure you are using the right set of credentials.
When I was integrating PayPal's recurring payment profiles into the SaaS Rails Kit (using ActiveMerchant) I ended up just canceling a user's current profile and creating a new one when they wanted to change their subscription.

Resources