PDT with Recurring Payments when trial price is 0 - paypal

I am integrating Recurring Payments Button of PayPal Payments Standard. I want it to work so that when customer returns to my website, he sees appropriate message: "Thank you! You subscription id is: ..."
I have configured both PDT and IPN.
If I pass some trial price, both PDT and IPN work perfectly.
But if I pass 0 as trial price, then IPN works as expected, but PDT does not pass any variables. Customer is redirected back automatically, but neither GET nor POST parameters are passed. So I do not know his subscription ID and cannot display it until IPN message has arrived.
How can this be solved?

I had one another question: PDT with Recurring Payments when trial price is 0.
Based on Andrew Angell's advice I started to use Express Checkout.
It seems that Express Checkout does not have any regional restictions compared to PayPal Payments Standard.

Related

PayPal Sandbox IPN Refund issue

I've been testing PayPal payments and received the IPN as expected on my staging/sandbox environment. However I noticed that the IPN for refunds are not being sent. I have verified this against my application as well as the Sandbox business account and the IPN history only shows the payment but not the refunded IPN. The payment history do however reflect the refunded status of the payments.
Can someone tell me if this is an expected behaviour since both the IPN history and the payment records do not tally? Thanks.
This is similar to the issue reported on but there's been no reply since: PayPal refunds not generating IPN anymore
I would advise you to get in touch with the PayPal team to check on this. We will need more information to check on this. You may get back to us via the link below.
https://www.paypal-techsupport.com/app/ask
Thank you.

Paypal + PHP subscription billing?

I want to bill users a subscription fee, and I want to track if the payment was successful. But this seems to be very complicated, I have setup the Paypal PHP SDK and the samples are working, but I am not sure how to proceed now.
If you want to track recurring payments, you can use PayPal IPN feature. refer to https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNIntro/?mark=IPN, PayPal will send IPN message to your IPN URL if any transaction occur.

Paypal Website Payments Pro - Recurring Payment Profile - Negative testing - how to trigger

I try to establish recurring payment from CiviCRM, using Website Payments Pro mode.
The positive testing works perfectly, I see the created payment profile, I get the IPN notifications, it's perfect.
I enabled negative testing at the profile, I tried two methods to trigger the negative case - when the initial payment fails:
PayPal recurring payments negative testing (https://developer.paypal.com/docs/classic/lifecycle/sb_error-conditions/ - with the amount of 106.10 $)
With IPN error code: https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNTesting/ - 31.22
In both cases, the payment completed successfully.
I contacted the paypal support and their best answer was this:
" You can test it with close expiry date. Usually when the expiry date almost come, PayPal will sent notification to the buyer to change credit card. But if the buyers just ignore the notification, it will lead to failed transaction. "
Even if it works, it's unacceptable, that I might have to wait 1 month to see the result. Paypal does not allow to set already expired card for the recurring payment profile.
Do you see an efficient way to test negative outcome? Maybe with IPN simulator? But how can I be sure that Send Paypal Recurring Payments commands with IPN Simulator contains the proper messages that PayPal uses today for my type of account?
Here is how to proceed: forget the sandbox, it is just not mature enough. Use the production/live paypal account, lower the recurring fee to 0.5$, launch the recurring payment from Civicrm, wait for the initial payment, you have the successful case, then ask your bank to set the POS limit to 0$, then the next recurring payment will fail. This is a totally robust way to test negative case. Do not forget to set your IPN first (https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNSetup/). Do you have any better method?
The following method works for recurring payments with Express Checkout, might as well work for Payments Pro:
Login to https://www.sandbox.paypal.com using your buyer's test PayPal account.
Replace the contents of the street address Line-1 of the buyer's test credit card, with CCREJECT-REFUSED.
Execute a typical Express Checkout payment flow against the Sandbox test environment using the same buyer account and with the same credit
card that you just modified.
This method is described on a page in the bottom of a locked filing cabinet stuck in a disused lavatory with a sign on the door saying 'Beware of the Leopard' helpfully titled How To Recover from Funding Failure Error Code 10486 in Express Checkout

Paypal IPN - Differentiating between Recurring Payment and Initial Payment

I've created a recurring payments profile on Paypal setting an initial payment.
When I receive the IPN, the txn_id is the same for both the initial payment and the recurring payment. I would like to know if there's a way of differentiating between them.
I've noticed that when I receive the recurring payment, there's this variable "period_type= Regular". This doesn't appear in the initial payment IPN. Is this a good way to make the distinction?
Thanks
I think you might be getting confused with what you're getting in the IPN's.
When the profile is first created, you'll get an IPN with the profile ID of the profile that was just created, and you would only get a transaction ID if you included the original amount to be charged. The transaction ID here is only for that original amount. If you didn't have that all you would get is the profile ID.
If your recurring payments are scheduled to start on the same day as well you will get an additional IPN for the recurring payment and that will have its own transaction ID.

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.