PayPal iOS sdk allow user to pay with old credentials even if user changes the password/pin using sandbox - paypal

Our iPad app has been processing payments successfully in sandbox mode using v1.0.5 of the iOS SDK. However, we found one defect while testing our application. Please find steps below.
Login into PayPal.
Use email or phone and type in your credentials.
click on send payment. You will see the payment complete screen. Click on done button.
Now open your sandbox account and change the password/pin (Profile->Update password).
Then go to the application and try to make payment again. PayPal sdk navigate you directly to the confirmation page.
Click on send Payment.
PayPal SDK allow user to pay with old credentials(password/pin).
Is this a known issue or I am missing anything?
Also is there any way to log out user after every payment. (Force user to login every time he tries to make the payment without manually clicking logout button).

moka, I think that the scenario you describe is okay as is.
Within your app, the user logs in to her PayPal account, pays you, and chooses to not log out from PayPal.
Later, within your app she remains logged in to her PayPal account, even though elsewhere she has changed her password. And therefore she can still pay you from this account.
That all seems fine to me.
Regarding your second question:
When you call [PayPalPaymentViewController initWithClientId:receiverEmail:payerId:payment:delegate:], the SDK uses the payerId to determine whether this is a new user or a returning user.
So if you change the payerId each time you call the SDK, then each time this will be interpreted as a new user, who will therefore require a fresh PayPal login. (For example, you could set payerId to something like [NSString stringWithFormat:#"%d",rand()].)
-- Dave Goldman (eBay/PayPal/card.io)

Set rememberUser property to NO for PayPalConfiguration instance like this
payPalConfiguration=[[PayPalConfiguration alloc] init];
payPalConfiguration.rememberUser=NO;
It will then ask each time to login.

Related

Paypal response slow

This is the process flow of a customer buying our service:
Create campaign
Select a payment method (credit card or paypal). User selects paypal
User is redirected to www.paypal.com and makes the payment
User is redirected to www.mywebsite.com/dashboard (return_url)
User sees his new campaign on the dashboard
When using the sandbox everything is working fine. When using the real service, when the user is redirected to www.mywebsite.com/dashboard, then the new campaign doesn't show up among the records.
I made extensive testing and found that with the live service PayPal gives me the response about 5-10 seconds later than when I am using the sandbox. So when the user is redirected to the his dashboard, the new purchase is not yet inserted into the database that's why it doesn't show up! They need to manually hit F5 after a couple of seconds to display the new record.
What can I do about it?
EDIT
I managed to bring up this delay problem with the sandbox as well. I found that there is a difference between the demo and the live payment:
In the sandbox, after the payment I see a window with the title Your payment is complete saying that I completed the payment, this is the transaction code, and the details will be sent to my email address soon, with two options: Back to the seller account (Back to [sandbox seller account]) and go to the paypal account overview. When I click the first one, it opens another window with the title Thanks for your order saying
Your payment of $0.99 USD is complete
If you are not redirected within 10 seconds, click here.
In the live system after I click Pay Now and the payment is complete, then the first screen does not show up, meaning right after the payment the Thanks for your order page is seen then I am redirected to my website (dashboard) within a few seconds.
How could I generate this delay problem in the sandbox?
In the sandbox when the screen shows up about the completed payment when I click quickly the Back to the seller account link, then I click quickly the click here link on the next screen in order to skip the redirection time, the new purchase does not show up on my dashboard on my website, because the data is not yet written into the database.
So the loading of the Your payment is complete window in the sandbox plus the time I click the Back to the seller account link is enough for paypal to give me the necessary data and for me to insert it into the database.
I guess the solution could be to activate that first screen in the live system, but how? What do you think?
I thought the solution would be to turn off Auto return but I can't. When I turn it off and click Save, I receive an error You have not turned on Auto Return. You must turn on Auto Return in order for Payment Data Transfer to work properly.
Start with adding Payment Data Transfer and Auto Return to PayPal Payment Data Transfer Information.
This is from the official PayPal Documentation:
Payment Data Transfer allows you to receive notification of successful payments as they are made. To use Payment Data Transfer, you need to turn on Auto Return. Here's how:
Log in to your PayPal account.
Click Profile.
Click My selling tools.
Click Update near "Website preferences".
Select On under "Auto Return for Website Payments", and enter your Return URL below.
Select On under "Payment Data Transfer".
Click Save.
The identity token will then appear in the Website Payment Preferences page of your PayPal account under the "Payment Data Transfer" section. For security purposes, we do not email you the identity token.
You'll need to pass this identity token along with the transaction token to us so you can receive confirmation that the payment is complete.
The slow load can be caused be a number of factors. One of which may be code related. Can you please post some code if you have already enabled Payment Data Transfer, and Auto return?

How does a non-developer test a dead simple, single-use, Paypal button?

I'm not a programmer, a developer, or a genius. I'm a semi-intelligent person who wants to build a single-serving Web site that provides a simple service for a fixed price.
So I just need to test a single "Submit & Pay" button that I've built using a Machform form. You fill in the form, press the button, and it directs you to Paypal to complete the payment.
Everything is working until I get to the Paypal part. But I don't want to start paying Paypal fees just to check if it's working okay.
There seems to have been a Sandbox option in the past on Paypal, but after creating a basic Sandbox account, it... doesn't work. Links go nowhere, and even the main site (cms.paypal.com) goes to a 404 page. The "Getting Started with Sandbox" link goes to a broken page. The "Sandbox User Guide" attempts to load a PDF on a site I don't know, and don't trust.
The "Sandbox" options on the main site -- when they don't go to the semi-broken, I-guess-abandoned "Sandbox" site -- go to developer.paypal.com, which is way too much gun for me. Even a Google search for "paypal sandbox" now leads exclusively to developer.paypal.com links.
I just need to confirm that my "pay" button will execute correctly in Paypal; I don't need to build a multi-platform API that configures my JavaScripts to execute a parallel-stream optimization option on a scaleable interface across mobile devices with integrated IPNs and a side of fries.
What's the best way to do that?
The sandbox is indeed what you need for testing, and you do need an account at developer.paypal.com in order to use it. It's not a complicated thing, though. You don't have to get all crazy with it if you don't want/need to.
Go to http://developer.paypal.com and login there with your PayPal account. Once logged in click on Applications and then go to Sandbox Accounts.
Use the Create Account button to create at least 1 seller account and 1 buyer account. For the seller account just make it a business account. For the buyer account you can make it personal or business.
Launch your sandbox seller account and login to that. This is your fake PayPal account that you can use just like your own. From within that account you can create buttons just like you do from your live account, and you can place those buttons on pages to test with.
Then when you launch that page in a browser and click on the button it will send you over to sandbox.paypal.com instead of the regular paypal.com, but it will all look very similar to what a buyer would see during payment. You can use the buyer sandbox account you created to complete the purchase exactly as you would with a real account.
After that you can login to the seller or buyer account to see how things would look for each person in the transaction.

Why is there a warning sign in paypal app profile - accept payments?

Hi there!
I recently created a paypal app in paypal developer, I entered informations on the app but still a warning is shown in the 'accept payments' area (see picture). Whats the error? ...there's no description at all!
There is an issue currently where users aren't able to submit new apps on Developer.PayPal.com. There are a couple potential workarounds that you may want to check.
Ensure that your Developer.PayPal.com account has a first and last name associated with it and that you have a "facilitator" account saved in the "Sandbox accounts" section. If you don't have a "facilitator" account you can add one by just creating a new account with the e-mail address formatted like this - xy-facilitator#domain.com
I'll update this thread again when a fix is released or if more information is provided.
Edit: The issue where valid accounts were unable to submit an application should be fixed now. Make sure that the account you're requesting an app for is on this list and you should be good to go: https://developer.paypal.com/webapps/developer/docs/integration/direct/rest_api_payment_country_currency_support/
I recently done this on developer paypal portal.i had also this mark on my app but after filling the information and we need to include mass payment in our app so we just contacted paypal to enable this feature as this is disabled by default and developer needs to contact paypal to enable this.So now i have approved status on my app and no alert mark for any info.

How to test IPN from website with the new Paypal Sandbox?

I used to use the old PayPal sandbox to simulate a payment using IPN (posting a payment, and then confirming the IPN). This used to work fine with the classic sandbox.
With the introduction of the new Sandbox - I try to submit the request as I used to (redirecting the user to https://www.sandbox.paypal.com/cgi-bin/webscr?) which should take the user to the payment page - but this link now takes the user to the logon page for the sandbox.
Is this no longer supported?
I see there is still an IPN simulator, but I want to test the end-to-end round trip process from the user-perspective. This does not seem possible anymore.
Try clearing your cache and cookies prior to opening up the developer.paypal.com site and logging in. Also try using Firefox or Chrome if you are using Internet Explorer.

Import to new Paypal Developer Broken

I have logged into the new paypal developer site and clicked import to bring over my old account data which is listed here:
https://developer.paypal.com/webapps/developer/applications/accounts
When I click on the business TEST account and view the profile of the account, the API credentials (username and password) are blank. Then when I click the link to the Sandbox Site and try to log in with said test account, it says "Please login to use the PayPal Sandbox features.", in which I am already logged in, even if I click the link back to the sandbox. So basically I am stuck.. I need to use the classic API for now and cannot test because the sandbox is evidently broken.
If you have not already tried this, please try clearing all of your cache and cookies prior to accessing the developer.paypal.com site. Also try using a different browser other than IE. If you can then log in, try to navigate to the test sandbox account and log into your test seller account and view the API credentials from the profile. There are some issues that are currently being looked into with the launch of the new developer site, and they are being addressed as quickly as possible.
Also as a work around, I am not sure of the testing that you are needing to do specifically but you could try using the API credentials that are included with the SDK. You would be able to make API calls with those credentials. However, you would just not be able to sign into the seller account to see those transactions.
If you have not already done so, you may also want to file a ticket with PayPal Merchant Technical Services at www.paypal.com/mts so that they can look into your issue if it is not already being looked into. By filling out a ticket, this will help to gauge the number of merchants being effected by a particular issue, and this allows you to be notified once the issue is resolved.