How to receive webhooks from paypal donations? (and a few other misunderstandings) - paypal

Good day, everyone. I'm a bit stumped on this subject. I have a bit of experience with PayPal developer apps when it comes to subscriptions but this issue with donations is stumping me.
I would like to receive webhooks when a donation is made. I have created a new app in paypal developer dashboard, assigned it the webhook URL (a web app running on Python Flask) and while I have been able to successfully send and receive mock sandbox webhooks from the developer sandbox dashboard for testing so I know everything is configured to work. I just can't figure out how to now establish the live environment donations handling.
I have a business and a developer PayPal account. Within my business account (which I assume is the one that does live donation transactions), I have created a donation button. Logic would dictate that within this donation button setup, there should be a select option to specify the app who's webhooks these donations need to be using. But there is no such thing and PayPal's developer forum is deserted.
The general question is:
How does one set up a donation button to receive webhooks to a certain app or is that not how this works? Because I can have multiple donation buttons for various purposes, campaigns and configurations and I don't need webhooks for all of them. If I am forced to receive all donations, at least I see that there's a donation button ID which I can use to filter out donations coming from other buttons. But I can't even do that if I am not receiving donation webhooks at all.

Looks like for the time being to make this work I have to use Smart Buttons instead of donation buttons in Paypal. With smart buttons I can specify an app id I created in the developer dashboard and receive the webhooks this way.

Related

How to test a production Paypal button?

I have a simple Paypal payment button:
on production of my e-commerce website. It works. Many customers have already bought items with it.
But now I'd like to see exactly the payment workflow from a buyer's point of view, from the start, until payment successful + IPN mail + auto-redirect to payment-success page, etc.
Paypal sandboxing seems incredibly complex, one has to create a Developer account, then 2 sandbox accounts, a facilitator (?), a buyer one, etc.
It also seems that Paypal duplicates the real content, into a virtual sandbox button, etc. This is really complex.
All I want is to try my already-working production PayPal-button with a single sandbox buyer account. How to do that?
Is there a way to test a production Paypal button with a sandbox account (with, say, 10000€), and to proceed to the payment like would do a real customer?
... instead of having to create 3 accounts (Developer + Buyer SandBox account + Seller SandBox account)
PS: I've read many docs about sandboxing in Paypal docs, but they have very old docs (deprecated), some old docs, some new docs, some very new docs, + some of them in French with different content to English version, etc. I'm totally lost!
Actually you can test payment buttons I'm testing one of those right now.
At first it seems more complex that it needs to be, but all you need to know is that the sandbox system is a different enviroment, so the only way to test a sandbox payment button is a sanbox account.
Go to your developer dashboard, create 2 accounts, 1 for the seller (pick merchant account when creating this one), 1 for the buyer.
Log in to sandbox.paypal.com with the seller, create the button as you already did, set the ipn and all you need. Place the button in your site, now test your new button and when paying log in with the buyer (sandbox account) you previously created.
There's no way to test environment for paypal buttons. I sent a few messages to them asking the same thing. The only way to test that is get int touch with them through your account and tell your test user, then they won't charge you.
Here's a translation I received a few weeks ago:
In this case, the Sandbox environment does not allow payment on PayPal
buttons because there is no sandbox system for buttons, only for email
integration or PayPal account API.
In this case we recommend that we send a URL of the buttons or even
your site already with the buttons registered.
That way any analyst can do the actual payment test for you.
Our test balance is only R $ 50,00 reais, so the buttons can not
exceed this value with product price and freight.

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.

PayPal Subscription Cancellation from Merchant Website

we have a paypal payment system integrated into our website so people can register and choose a subscription. The subscription part works fine as the payment goes through and the IPN hits our website and updates our systems. Now we want users to be able to cancel their subscription from within our website so we have a custom cancellation button which when clients click, should send a request to paypal and cancel their subscription. We managed to get this going on sandbox test system however since we have brought the system into live testing we can not get the cancellation feature to work. So currently when the user clicks on cancel button, i think paypal is not being notified and hence no IPN received from PayPal.
Do you know what all info we need in order to cancel the subscription from our website. I know there is a way where users can log into paypal and cancel their subscription or we can log into our paypal and cancel their subscription but we want it to work from our website.
Please help!
Thanks.
When you say you have it working on the sandbox but not live, what exactly is going wrong when you try it live?
I'm actually a little confused by that, because my initial answer was going to be that you can't kill subscriptions via the API unless you're using Recurring Payments. Standard subscriptions aren't accessible via the API.
If you're saying you're doing that in the sandbox, though, then there must be something I'm unaware of..??
On that note, I know the PayPal system pretty well, so I'm thinking maybe you did Recurring Payments on the sandbox, but live you're using Standard Subscriptions..?? If that's accurate then you'll need to move to recurring payments instead of standard subscriptions on the live site.

PayPal Adaptive Payments without a popup or lightbox

I have been using Adaptive Payments for a while but recently it has started to let me down. The lightbox feature is good, but users are hardly ever signed in to their PayPal account so a popup is required. The PayPal popup gets blocked by all web browsers these days and my users are not noticing this, even though I have a big message to warn them next to the payment button.
I have tested and have working the full page solution, i.e. redirecting to
https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_ap-payment&paykey=AP-XXXX
This works fine though I also need to customise the page logo on the PayPal page depending on the domain (I provide my technology white labelled).
Is there any PayPal service that allows me to perform charges on behalf of other users business accounts or do I need each business customer to create their own API account with PayPal?
You can use the Permission API to do transactions on behalf of other account holders, https://developer.paypal.com/webapps/developer/docs/classic/products/permissions/

PayPal Web Payment Standard: forcing PayPal account creation now?

Had a nice little custom button with a few parameters I was POSTing to PayPal (and getting POSTed back via IPN) a few years ago working fine. Payments were disabled for several years, but now my client wants to resume subscriptions with their new campaign.
I switched back to the sandbox hostname/merchant accounts, did a sandbox transaction with a test Visa card, and all was well.
Switched it to the live hostname/merchant account, went to do another test with a real Visa, but noticed that not only has the real PayPal site been completely rebranded/redesigned, they now seem to be forcing you to create a PayPal account: on the sandbox, there's a blurb with a link that says "continue" which takes you right to the credit card/billing information (this is identical to what the live PayPal site used to look like a few years ago).
NOTE: The merchant account has changed; I'm not sure if that matters or not and/or if there's any settings in there I need to change.
Question: is this the way it is now with PayPal? I can't seem to find any official information that says yes/no. Besides the Express, is there any other IPN method that'll work here or is this a policy thing at PayPal? I'd hate to rewrite my working/tested code, but this isn't going to fly with my client.
Yahel's answer is incorrect: I called PayPal, and they explained that the following conditions must be met in order to accept non-PayPal payments:
The business email address must be confirmed. You can check by going to Profile > Email.
PayPal Account Optional must be checked:
Go to www.paypal.com.au and log in to your Business account.
Click 'Profile icon' near the top right of the page (next to "Log out" button)
Click "Profile & settings"
Click ‘My selling tools.’
Click ‘Update' beside 'Website preferences.’
Select 'On' under 'PayPal Account Optional' near the bottom of the page.
Click 'Save.'
Yes paypal has been forcing users to create an account for a long time now. Before that you could use a credit card up to 10 times and then it would force you to create an account anyway.
The reason you are seeing the old branding in your sandbox is probably because it is you old sandbox on an old paypal server.
Last I tried there was no way around this new policy.
But djechelon is right, they have an excellent customer service, give them a call.
PayPal does force people to create accounts, even when they want to just make a single payment. I was puzzled by this situation too: I was choosing the option to pay without a PayPal account, but still was forced to provide all the private details enough for PayPal to create an account for me against my wishes. Very sneaky of PayPal! Then I found this page and that explained a lot.
This is the message I received in my PayPal Account:
PayPal Account Optional
When this feature is turned on, your customers will go through an optimized checkout experience. This feature is available for Buy Now, Donations, and Shopping Cart buttons, but not for Subscription buttons.
So you cannot provide a regular "Subscribe" experience to non-PayPal customers. I believe you must pay the $19.99 a month "Enhanced Subscription" for this.
PayPal Has a Purchasing Limit of $3,000 for "Guests".
I ran into this issue as well and #gravyface was bang on with setting your account preferences. However, my customers were still having issues paying without a PayPal account.
I called PayPal and it turns out they have a $3,000 (cumulative) purchasing limit for "guests". My customer's invoice was for $7,000 so even though my preferences were set to make the PayPal account optional, it still would not go through.
Hope that helps others.
JP