Question

I use following html to create paypal subscription:

<form action="http://paypal/url/..." ...>
    <input type="hidden" name="cmd" value="_xclick-subscriptions">
    <input type="hidden" name="business" value="selleremail@somedomain.com">
    <input type="hidden" name="item_name" value="My Subscription">

    <input type="hidden" name="currency_code" value="GBP">
    <input type="hidden" name="p3" value="1">
    <input type="hidden" name="t3" value="M">

    <input type="hidden" name="tax" value="0.00">
    <input type="hidden" name="no_shipping" value="1">
    <input type="hidden" name="shipping" value="0.00">

    <input type="hidden" name="no_note" value="1">

    <input type="hidden" name="src" value="1">

    <input type="hidden" name="cancel_return" value="http://mysite/paypal/cancel.page">
    <input type="hidden" name="return" value="http://mysite/paypal/success.page">
    <input type="hidden" name="notify_url" value="http://mysite/paypal/ipn.page">
</form>

Everything works well, new subscriptions are created, IPN notifications are got by my scenario. One thing is bother me. If some payment is failed, appropriate subscription becomes suspended. It happens due to default settings of a subscription. There is set 1 failed payments allowed before suspending subscription profile.

I can turn it off manually as described in documentation, but how to setup it on subscription creation stage? And is it worth to turn off it or better to set some number of fails?

Was it helpful?

Solution

The answer from a person at paypal developer network:

Currently there is not a variable you can pass in the subscription button code to change the number of failed payments allowed before the profile is suspended. The default value at this time is one and you can change it manually in the account as you mentioned above. A feature request has been submitted for about adding this functionality but there is no timeframe on when this may be done. However, if using Express Checkout API to create the recurring profiles, you can specify a value for MAXFAILEDPAYMENTS.

OTHER TIPS

Add this to your form:

<input type="hidden" name="reattempt" value="1">

This causes failed payments to be reattempted (up to 3 times, I think, with 1 day between attempts). As for whether it's better to turn it on or off, I can't really think of a scenario where reattempts are bad for you: it gives customers extra chances to give you money. If you think that people using the service for free for a couple of days after payment failes is really a problem, suspend the account when you get a subscr_failed IPN until there has been a successful payment.

There is no cancellation on payment failure. After the initial failure PayPal will try to take payment again after 5 days. If that also fails that PayPal will try a third and final time after a further 5 days.

When you can set up the original PayPal Profile you have two options for dealing with failed charges. This is found in the Recurring Charges section for the subscription on profile.

The terms you will get here like:

recurring_payment_suspended_due_to_max_failed_payment

and this will also give you term for the retry date when next attempt is going to be execute.

'retry_at' => '02:00:00 Feb 08, 2017 PST',
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top