Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Order: can't update payment method in "Pending Renewal" order as store admin/Subscription: updating stripe card ID doesn't bring down to "pending payment" renewal order #460

Closed
cadyz opened this issue Jan 18, 2018 · 11 comments
Assignees

Comments

@cadyz
Copy link

cadyz commented Jan 18, 2018

Issue1: Can't update payment method in "Pending payment" renewal order as administrator

What I expected

Stripe Customer ID & Stripe Card ID are visible and editable in the billing panel(Same as Subscription)

  1. View/Edit an pending payment order as administrator.
  2. Go to Billing details
  3. Stripe Customer ID & Stripe Card ID are visible and editable in the billing panel(Same as Subscription)
  4. Manually add/edit Stripe Card ID and click "Save Order"
  5. Select "Retry Renewal Payment" in order actions and proceed.
  6. Payment is completed with correct stripe card id: new order note is added like "Stripe charge complete" order status is changed to "Processing".

What happened instead

In Order billing panel, there's only selection of "Payment method" and text field "Transaction ID"

Steps to reproduce the issue

  1. View/Edit an pending payment order as administrator.
  2. Go to Billing details

Issue2: Updating Stripe Card ID in Subscription doesn't bring down to "Pending payment" renewal order.

What I expected

Updating Stripe Card ID in Subscription also update metadata in "Pending payment" renewal order.

What happened instead

The metadata of all renewal orders are still saved with old CC. The "pending payment" renewal order continues retry payment process until it fails. Next renewal order generated either manually/automatically is with new CC.

Steps to reproduce the issue

  1. View/Edit Subsciption
  2. Go to Billing details and update "Stripe Card ID"
  3. Save Subscription

Question : Are both issues on your development road map or should be customized from our end?

@cadyz cadyz changed the title Order: can't update payment method in order as store admin/Subscription: updating stripe card ID doesn't bring down to "pending payment" renewal order Order: can't update payment method in "Pending Renewal" order as store admin/Subscription: updating stripe card ID doesn't bring down to "pending payment" renewal order Jan 18, 2018
@roykho
Copy link
Member

roykho commented Jan 18, 2018

In Order billing panel, there's only selection of "Payment method" and text field "Transaction ID"

Yes this has always been like this since Stripe version 2.0. Nothing has changed here.

Updating Stripe Card ID in Subscription also update metadata in "Pending payment" renewal order.

Yes it updates the payment after you change the source. I just did a test with a credit card and then after the subscription has created, I changed the source in the subs and did a renewal and it works perfectly. Or perhaps I am not fully understanding what you're trying to do?

@cadyz
Copy link
Author

cadyz commented Jan 19, 2018

Updating Stripe Card ID in Subscription also update metadata in "Pending payment" renewal order.

Updating the source in Subscription works on ongoing renewal orders. What I'm concerned is the "Pending payment" renewal order. If the customer changed CC it has to wait for the current order complete retry process until it's failed then create a new one.

@roykho
Copy link
Member

roykho commented Jan 19, 2018

I am not 100% sure I follow you. How do you get a "pending payment" on a recurring subscription order?

@cadyz
Copy link
Author

cadyz commented Jan 19, 2018

We don't allow customers manage subscription & payment method at all. If customers need to change credit card they have to call us then our staff will update on their behalf via admin dashboard.

In this case, this customer's CC has expired so the monthly renewal order(#1) of his subscription has changed the status to "Pending" and his subscription is suspended. Then he gave us a call and we updated his CC in the subscription. We assumed order#001 would charge new CC. Instead it continued the retry payment process with old CC until it failed (default 7-day circle). The customer reported that his subscription was still on hold 2 days after. Then we manually renewed his subscription(renewal order#002) and it proceeded with new CC.

It sounds a little extra manual work if we need to renew for customers every time.

@roykho
Copy link
Member

roykho commented Jan 19, 2018

So what you actually want to do is after you change the source id in the subscription product, cancel the failed order. Then use the "process renewal" to charge the correct source.

@cadyz
Copy link
Author

cadyz commented Jan 19, 2018

So it still requires manual work unless we customise it in the backend?

@roykho
Copy link
Member

roykho commented Jan 19, 2018

That is how has been done since 2.0. Unless you have a way to automate that? I am not super familiar with Subscriptions so I don't know if they have a way to get the failed renewal order from a parent order.

@cadyz
Copy link
Author

cadyz commented Jan 21, 2018

Understood. Thank you very much.

@roykho roykho closed this as completed Jan 23, 2018
@blogtutor
Copy link

I am encountering this issue with failed WooCommerce Subscription Renewal Orders as well, and it's problematic enough that I think this is worth reopening/revisiting.

Here's how this plays out:

  1. Customer has an active subscription.
  2. Customer's credit card is stolen and closed, and the next order renewal payment fails.
  3. Customer is notified.
  4. Customer logs in and edits their payment method in the My Account section.
  5. WooCommerce Subscription does correctly change the Stripe Payment ID for the Subscription - but it does not update the credit card information associated with the outstanding renewal order, which is still in "Pending Payment" status.
  6. Then when there's a payment retry on the existing Order, it still fails because it's still trying the old card number.

This may be more of a WooCommerce Subscriptions issue than a Stripe issue -- but maybe the Stripe and Subcriptions dev teams can coordinate on a fix?

Thanks!

@blogtutor
Copy link

Also, here's how I just "solved" this for now, without having to cancel and order and recreate a new one.

  1. In my Stripe Dashboard, I found the failed payment and located the credit card ID (src_XXXXX).
  2. I then searched for my customer in my Stripe Dashboard, and located the ID of the new credit card she just added.
  3. Using PHPmyAdmin, I searched for the old card ID in the database, and located it in the postmeta table (see screenshot below). This has a list of all the previous orders as well as the pending order.
  4. On the row with the post_id that matches the pending renewal order (in this case, 82847), I edited that field, and replaced the old Card ID with the new Card ID.
  5. I then manually re-ran the payment from the Order details page ("Retry renewal payment") and it went through fine.

image

Ultimately, the best solution would be for any pending renewal orders will be updated with the new credit card ID if the customer logs in and changes their payment method.

@robwynnejones
Copy link

Did anything ever get sorted with this? I have the exact same issue, it seems like the only way is for us to step in and delete the pending payment order, then regenerate the renewal. This requires us to step in which isn't ideal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants