Found this bug in uc_payflowpro_recurring.inc:
function uc_payflowpro_cancel_form($profile_id, $cancel_path) {should be:
function uc_payflowpro_cancel_form($form_state, $profile_id, $cancel_path) {Found this bug in uc_payflowpro_recurring.inc:
function uc_payflowpro_cancel_form($profile_id, $cancel_path) {should be:
function uc_payflowpro_cancel_form($form_state, $profile_id, $cancel_path) {
Comments
Comment #1
kwinters commentedThe function signature is incorrect, but there's more to it than that. The user recurring fee list / detail view doesn't ever link to /user/4/pfp_cpanel/RP1234/cancel etc. and it should. Right now the only way to cancel a recurring subscription is to use the PayPal admin, and this whole issue appears to be a leftover from the D5 branch.
The function uc_payflowpro_cpanel_view_profile generates a link but it's never used and I'm not confident it works right. The cancel process itself likely needs some fixing, definitely the form and possibly the web service call as well (PayFlowRecurring->cancel()).
Unfortunately this isn't something I can really fix myself, since I don't have access to a valid PFP account with recurring fees enabled. I'm willing to help, but someone will need to provide a patch to get this really resolved.
Comment #2
beifler commentedkwinters, I found out how to create a test Payflow Pro account with Recurring Billing. I ran across this post in a search for the solution to an error that may be related to this issue. (the error is detailed at the end of this post).
Here's how to get your sandbox account (slightly modified from https://www.x.com/thread/40292 )
Go to:
https://www.paypal.com/cgi-bin/marketingweb?cmd=_payflow-gateway-overvie...
(Or https://www.paypal.com - Business - Products and Services - Payflow Pro)
Click the Product and services tab
Click on "Payflow Gateway" link at the bottom of the page
Click on "sign up" under Payflow Pro
Click on "Go" on the next page
--On the "Select Product, Add-On Services" page check the box for "Recurring Billing Service"--
Click on "continue"
Select 'Payflow Pro' and click continue
Choose a merchant login name and password (rest of the information on this page can be made-up)
--Click 'continue' and click Save and Exit--
Please note: DO NOT ENTER ANY FINANCIAL INFORMATION, as you will be charged if you do so.
Once done, go to https://manager.paypal.com and login
For the "partner' use "PayPal"
For the user, leave it blank
Use the Merchant Login and password you choose when creating the test account.
**Error Message**
When I go to the Recurring Payments tab under the profile and click cancel an error message is displayed:
warning: preg_match() expects parameter 2 to be string, array given in /home/mornings/public_html/morningstartv/includes/bootstrap.inc on line 777.
I click the Cancel button and on the following the following error appears:
*Red Box Start*
warning: preg_match() expects parameter 2 to be string, array given in /home/mornings/public_html/morningstartv/includes/bootstrap.inc on line 777.
warning: preg_match() expects parameter 2 to be string, array given in /home/mornings/public_html/morningstartv/includes/bootstrap.inc on line 777.
warning: preg_match() expects parameter 2 to be string, array given in /home/mornings/public_html/morningstartv/includes/bootstrap.inc on line 777.
Unable to cancel your subscription at this time.
*Red Box End*
*Green Box Start*
Error: Approved
Your subscription has been canceled.
*Green Box End*
Great module, thanks mucho kwinters and team.
Comment #3
kwinters commentedUnfortunately I have entirely too much work to do at the moment, so it will take me some time to get to this myself. However, if you can provide a patch then I can help move that process along.
Comment #4
beifler commentedI understand, I'm in the same boat. Right now it works to cancel people through the PayFlow admin. Thanks!
Comment #5
kwinters commentedThe missing $form_state was the only thing broken. Once that was fixed I was able to cancel the recurring fee.
Fix is now in devel.