When updating the order users are signedup more than once.

In any case I assume the conditional action uc_signup_mark_paid shoud signup the user to the event only if the user is not already signed up.

Comments

technikh’s picture

Looks like this is related to off-site payments scenario http://drupal.org/node/540298
I use cybersource HOP and my sessions don't get cleared on returning from the hosted order page.

In cod(credit card test gateway) I don't get duplicate signups, but my order's Admin comments shows that the system is trying to signup again on order update but has same confirmation #8 and so no duplicates.

But in my use case I use cybersource HOP and I guess as sessions are not cleared The duplicate signup is created with different confirmation number

Automatic Admin comments in COD
07/26/2011
1:14:03 PM	10	Credit card charged: $10.00
07/26/2011
1:14:03 PM	-	The following signup ids where created:

xxx@harvard.edu is attending:
event1 - : Confirmation #8
07/26/2011
1:14:05 PM	-	Order created through website.
07/26/2011
1:20:09 PM	-	The following signup ids where created:

xxx@harvard.edu is attending:
event1 - Fri, 12/23/2011 - 10:34 - Sat, 12/31/2011 - 10:34 : Confirmation #8 
ezra-g’s picture

Title: When updating the order users are signedup more than once. » Duplicate administrative order comments created when order is updated

In the example you provided, the confirmation#/signup ID is 8 both times, indicating that a duplicate signup was not created and instead that the admin-only order comment was saved more than once.

In some initial testing, I was only able to reproduce this when paying with a credit card, deleting the payment and re-entering it, but it seems possible that off-site gateways, which aren't totally API compatible with on-site ones, may behave differently.

technikh’s picture

also the comment says "The following signup ids where created:" instead of "The following signup ids were created:"

corrected old admin comments in my database using this query
update uc_order_admin_comments set message = replace(message,'The following signup ids where created:','The following signup ids were created:') where message like '%The following signup ids where created:%';