Recurring Payment IPN - paypal

Quick question about the notify_url HTML variable (from PayPal Payments Standard). I am specifying the URL as a variable that is sent to PayPal via a redirect URL for a recurring payment setup (all is working as expected when setting up the recurring payment).
But I am wondering, when PayPal goes to actually process a payment in the future (actual recurring payment), will it use the same URL for the IPN notification that was used during the recurring payment setup?
I have multiple IPN scripts, one for regular payments and one for recurring payments - I want to be sure that each future recurring payment uses a specific IPN script.
Cheers!

First, for the sake of terminology, if you're using HTML buttons then you're using Standard Subscriptions, not Recurring Payments. Technically, they're the same thing, but Recurring Payments is API based and IPN data is different for Standard Subscriptions vs. Recurring Payments. Just keep that in mind when searching for information about the two.
As for the IPN's, unfortunately, it will not continue to use that same URL. You'll need to make sure that IPN is configured in the PayPal account profile in order for future transactions related to the profile to trigger IPN's.
This goes for both Standard Subscriptions and Recurring Payments API transactions.

Related

recurring vs subscription confusion

I am developing an IPN application for a non-profit who wants to take monthly recurring pledges. The IPN variables manual has two separate entries: subscription & recurring and it appears recurring is what I need and so I would use the txn_type=recurring_payment.
The problem is that when I turn to the "HTML Variables for PayPal Payments Standard" manual, I can't find an appropriate _xclick value for recurring payments. Yes there is one for subscriptions but nothing for _xclick.
How then do I code for recurring payments in the HTML? Or is recurring payments not available to HTML Standard Payments?
While technically they are the same thing, PayPal Standard (ie. basic payment buttons) calls it "Subscriptions" where-as the APIs call it "Recurring Payments".
If you want to stick with Payments Standard you would just use the IPN Subscription variables in your IPN code logic. If you do switch to Express Checkout then that's when you would use the Recurring Payments IPN params.
I would recommend using Express Checkout w/ Recurring Payments if you can. This would require some more in depth coding. Assuming you're comfortable with PHP, this PHP PayPal SDK would make the Express Checkout and Recurring Payments API calls very quick and easy for you.
The recurring-payment feature you are referring to is an API based product. If you are using PayPal Payments Standard, the subscription variables are your only option.
You can use Recurring Payments with Express Checkout. Here is a link to the developer documentation:
https://developer.paypal.com/docs/classic/express-checkout/ht_ec-recurringPaymentProfile-curl-etc/

Website subscriptions via Express Checkout Recurring Payments

I'm trying to implement a recurring subscription to a website using PayPal Express Checkout Recurring Payments. One requirement is that creating the initial subscription should be as quick as possible: once the customer confirms the purchase, the merchant should receive the money and activate the subscription in a couple of minutes tops.
As far as I understand, I have the following options to go with:
use CreateRecurringPaymentsProfile only, with billing starting now
use CreateRecurringPaymentsProfile with initial payment, starting now
use DoExpressCheckoutPayment followed by CreateRecurringPaymentsProfile starting now + 1 billing period
Initial testing in the sandbox has shown that plain CreateRecurringPaymentsProfile schedules payments once a day, which rules this option out. Option 2 (Recurring Payments Profile with an initial payment) looked promising -- payments usually went through in a couple of seconds -- until the initial payments started being delayed by half an hour or more.
So, a couple of questions:
What is the intented way to implement on-line recurring payments via PayPal?
Does the sandbox share payment scheduling behavior with the live site?
What is the intented way to implement on-line recurring payments via PayPal?
Answer:The recurring payment via Express Checkout is a good way.
The subscription button via Website Payments Standard is also a good way which is more easy to implement.
Does the sandbox share payment scheduling behavior with the live site?
Answer:yes, sandbox has the same payment scheduling behavior as live.
BTW, if you want initial payment be charged right away, you should use Option 3, initial payment will be changed right away after DoExpressCheckoutPayment.
Option 2 only guarantee initial payment be charged in 24 hours.

Import existing recurring donations into Paypal

Currently I am working with several non-profits (who receive recurring donations normally monthly) to migrate away from their current gateways to Paypal.
Is there any way to import their currently donor's payment information into Paypal?
If not which would you recommend to help migrate their donors over?
1) Setup a special section of their website and as donor's to re-subscribe?
or
2) Send out Invoices for their current recurring amount (if its possible to email a subscription)?
thanks,
This depends on what type of system you are currently using, and specifically what type of service you are going to use from PayPal. Are you going to be using PayPal's Recurring Payments, Enhanced Recurring Payments, Subscriptions or Payflow's Recurring Billing? If you have all of the contributor's information, such as credit card info, name, address and etc and you are going to be using PayPal's Recurring Payments or Payflow's Recurring Billing you could use the API's to create the profiles on your PayPal or Payflow account without having to have the contributor do anything on their end. If you are going to be using PayPal's Enhanced Recurring Payments or Subscriptions, then you would need the buyer to re sign up for a recurring donation. You can could use either option that you mentioned above. You would be able to do either through PayPal.

Detecting cancellation of a paypal billing agreement setup with reference transactions

I am using the 'reference transactions' of the Paypal express checkout api to set up a recurring billing scenario for our customers. I have chosen this method since the amount billed per month will vary and there is no initial payment when entering into the billing agreement.
My question is, can I use the paypal IPN to detect when the user cancels this? I know that if the customer enters into this agreement they have the power to log into their own Paypal account and cancel the agreement. What variables should I be listening for through the IPN?
Whilst I see mention of recurring payments and recurring payment profiles in the IPN documentation these are not actually the same as setting up a recurring billing scenario via reference transactions (recurring payments and reference transactions are in two different parts of the general paypal api documentation).
Enable IPN in your PayPal account , then PayPal will notify you via IPN about the Billing agreement cancel from the customer.
If you include IPN with SetExpressCheckout, it will not work with Reference Transaction. You need to Enable IPN on PayPal site.

Do Paypal recurring payments have unique txn_ids?

I'm using the Paypal "Subscription" button. I have an IPN handler and overall I think I've got it all figured out. My last problem is that apparently there's no good way to test a recurring payment (except to wait for the cycle to occur). This issue is discussed here: [question]: Testing Paypal subscription IPN
I don't really need to test this recurring payment but I do need to know if every recurring payment will have it's own txn_id or if every payment in a subscription shares the same ID.
Thanks!
Yes, each recurring payment cycle will create a new transaction with its own transaction ID.
You'd link these transactions together via their recurring payments profile ID.