PayPal Checkout - For updated PayPal checkout process do we need IPN? - paypal

As per the updated PayPal checkout process do we need IPN? I am referring checkout code form PayPal site.
https://developer.paypal.com/docs/checkout/

Here is the server-side integration: https://developer.paypal.com/docs/business/checkout/server-side-api-calls/
Create two routes that return JSON, one for 'Create Order' and one for 'Capture Order'.
Pair your two routes with this approval flow: https://developer.paypal.com/demo/checkout/#/pattern/server
There is nothing this needs IPN for.

Related

paypal ipn takes couple of minutes

I'm using IPN from paypal to get information about transactions based on reference transaction id. The first time we try to create a paypal account for the customer after redirected from paypal dialog, it looks like ipn tooks couple of minutes to gave us the results we needed. Also for recurring payments based on reference transaction id, it tooks a couple of minutes up to hours until the payment gets confirmed by ipn.
We use angular in frontend and the verification process is completed. But the ipn notification in our django backend will be received after a few minutes which is way too long.
For the ux it is very bad and other websites also handle this in a few seconds. Is it only because of sandbox?
greetings and thanks for help
IPN is a very old, asynchronous technology. There is no latency guarantee, and no reason to be relying on IPN notifications with current PayPal Checkout integrations.
Instead, follow the PayPal Checkout integration guide and make 2 routes on your server, one for 'Create Order' and one for 'Capture Order' (see the optional step 5 in 'Add and modify the code'). Both of these routes should return only JSON data (no HTML or text). Inside the 2nd route, when the capture API is successful you should store its resulting payment details in your database (particularly purchase_units[0].payments.captures[0].id, which is the PayPal transaction ID) and perform any necessary business logic (such as sending confirmation emails or reserving product) immediately before forwarding your return JSON to the frontend caller.
Pair those 2 routes with the frontend approval flow: https://developer.paypal.com/demo/checkout/#/pattern/server

How to link with Paypal from our website?

When the user signed up on the website (new account) then I would like to give the user the opportunity to link Paypal account on our website so that they can make an order using Paypal payment method.
Is this the correct API documentation https://developer.paypal.com/docs/log-in-with-paypal/integrate/ or I'm I looking at the wrong place?
Log in with PayPal is for logging in. If you want payments for orders, use Checkout with PayPal.
Make two routes on your server, one for 'Create Order' and one for 'Capture Order', documented here. These routes should return only JSON data (no HTML or text). The latter one should (on success) store the payment details in your database before it does the return (particularly purchase_units[0].payments.captures[0].id, the PayPal transaction ID)
Pair those two routes with the following approval flow: https://developer.paypal.com/demo/checkout/#/pattern/server

Paypal account upgrade to express from standard

We are currently using PayPal standard checkout and we need to upgrade to express checkout.
From PayPal documentation, standard checkout will reach their site and each checkout process will be handled by PayPal and return confirmation alone to our site.
But express checkout is different in workflow that everything need to be done with API and script.
How to upgrade easily from standard checkout ?
Or write up the API only be the solution to upgrade.
We are looking for .Net library based integration process. Any NuGet package available for this integration.
Make two routes on your server, one for 'Create Order' and one for 'Capture Order', documented here; there is a Checkout-NET-SDK you can use. These two routes should return only JSON data (no HTML or text). The latter one should (on success) store the payment details in your database before it does the return (particularly purchase_units[0].payments.captures[0].id, the PayPal transaction ID)
Pair your two routes with the following approval flow: https://developer.paypal.com/demo/checkout/#/pattern/server

PayPal IPN empty when buying by card

I have tested a PayPal IPN on sandbox. It works without issue. I tested it using the demo PayPal account. Now I have moved live I cannot test with a PayPal account, as I only have one. So I tried using a card. The payment is successfully made. However, the IPN is empty.
I don't have any PHP errors for the IPN call. The IPN URL defined in Notifications -> Payment Notifications on my live account is correct.
The payment is made using PayPal Smart Checkout: https://developer.paypal.com/docs/checkout/#how-the-buttons-work
Does PayPal not use IPNs when buying by card?
What do you need IPN for? That is a very old service.
Use a server-side integration for the PayPal Checkout. Here's the UI: https://developer.paypal.com/demo/checkout/#/pattern/server
You'll need two corresponding routes on your server, one for 'Set Up Transaction' and one for 'Capture Transaction', documented here: https://developer.paypal.com/docs/checkout/reference/server-integration/

Create paypal form which handles both recurring and one off payments

Wanted to know if paypal allowed this functionality within one form or if I have to create two separate forms in order to obtain this functionality. Currently building a donation widget for a client per their request.
If there are any documentation regarding this within paypal a link would be greatly appreciated.
Cheers.
You can do that no problem. Just build your form with options for one-time or recurring payments, and then use the Express Checkout API to process the checkout accordingly.
If you're working with PHP you can take a look at my class library for PayPal, which will make the Express Checkout API calls very simple for you.
The calls you'd be utilizing are:
SetExpressCheckout
GetExpressCheckoutDetails
DoExpressCheckoutPayment (for one-time payments)
CreateRecurringPaymentsProfile (for subscriptions)