When the ARB silent post has a response code not equal to 1 (in other words, the transaction was declined), uc_recurring nevertheless records a valid payment, and an order is created, payment recorded, and roles renewed...
ARB gives two chances. It sends a silent post on the first decline, and makes the subscription "suspended", then sends a second silent post when the subscription is "Terminated". This results in 2 months of unpaid access for sites with monthly billing, given the current setup.
With the attached patch a renewal order will be created only of the "x_response_code" equals 1 (in other words, for transactions that are approved).
The patch could probably use a bit of work to send failed payment notices, since if currently just logs to the watchdog. Also, this patch would be unsuitable for sites that wish to let users continue to have access while ARB gives their card a second chance.
| Comment | File | Size | Author |
|---|---|---|---|
| #2 | do-not-renew-failed-arb-payments-1458128-2.patch | 1.27 KB | shaundychko |
| #1 | do-not-renew-failed-arb-payments-1458128-1.patch | 2.7 KB | shaundychko |
Comments
Comment #1
shaundychkoComment #2
shaundychkoPardon me, use this patch instead since the last one captured the patch file within the patch.
Comment #3
jasonawantHi,
Thanks for the patch. I have applied the patch, and waiting for a failed ARB subscription renewal transaction to test.
Were you able to simulate the silent post using a script like the one found here: http://pastebin.com/kfFx3afz.
If so, could you post anything you used? Thanks, Jason.
Comment #4
lukio commentedSuscribe. Why this patch its not into D7 already?
Comment #5
lukio commentedAdd this link. May help to understand the response codes:
http://community.developer.authorize.net/t5/Integration-and-Testing/ARB-...