wc-stripe-future-payments
Installation
SKILL.md
WooCommerce Stripe future payments
Saving a payment method, charging now, and charging later are three distinct operations. Assign each operation one owner and an explicit state machine.
Choose the correct Stripe object
| Required outcome | Stripe flow |
|---|---|
| Save now, charge nothing | Confirm a SetupIntent with usage=off_session |
| Charge now and prepare the same method for later | Confirm a PaymentIntent associated with the Customer and set setup_future_usage=off_session |
| Charge an already saved method without the shopper present | Create a new PaymentIntent with the Customer, PaymentMethod, off_session=true, and confirm=true |
| First amount is zero, later amounts are scheduled | SetupIntent first; create a separate PaymentIntent for every due charge |
A SetupIntent never creates a charge. Do not describe “SetupIntent saves the card and deducts the first installment” as one operation. Use a PaymentIntent for charge-now-and-save, or use a SetupIntent followed by a separate PaymentIntent when the product flow genuinely needs two operations.
setup_future_usage improves authentication/optimization for later use; it does not make every payment-method type reusable and does not guarantee that every future off-session attempt succeeds without authentication.