provider-backed payment checkout and callback handling
What this workflow does
Application code builds a provider-specific checkout form, redirects the user or returns hidden fields, then handles callback processing to update payment state and return success/failure outcomes.
Purpose
submit a payment and receive a gateway redirect or callback-driven completion
What it produces
payment instance and provider checkout/callback data
Who relies on it
customer and external payment gateway
Why this workflow matters
- creates a gateway-ready payment form
- directs the customer to the correct payment/callback URL
- enables provider implementations to update payment status and amounts
Implementation references
- BasicProvider.capture() payments/core.py · lines 146–147
- BasicProvider.release() payments/core.py · lines 149–150
- BasicProvider.refund() payments/core.py · lines 152–153
- BasicProvider.cancel() payments/core.py · lines 155–156
- BasicProvider.get_action() payments/core.py · lines 70–72
- BasicProvider.get_token_from_request() payments/core.py · lines 117–119
- BasicProvider.__init__() payments/core.py · lines 74–80
- BasicProvider.get_hidden_fields() payments/core.py · lines 82–91
- BasicProvider.get_form() payments/core.py · lines 93–103
- BasicProvider.process_data() payments/core.py · lines 105–115
- _default_provider_factory() payments/core.py · lines 162–177
- BasicProvider.get_return_url() payments/core.py · lines 121–144
- get_payment_model() payments/__init__.py · lines 86–103
- PaymentStatus payments/__init__.py · lines 30–49
- MercadoPagoProvider.create_preference() payments/mercadopago/__init__.py · lines 74–122
- StripeProviderV3.get_form() payments/stripe/providers.py · lines 98–113
- MercadoPagoProvider.get_form() payments/mercadopago/__init__.py · lines 189–198
- DummyProvider.process_data() payments/dummy/__init__.py · lines 60–67
- MercadoPagoProvider.process_callback() payments/mercadopago/__init__.py · lines 150–158
- MercadoPagoProvider.process_notification() payments/mercadopago/__init__.py · lines 128–148
- StripeProviderV3.process_data() payments/stripe/providers.py · lines 243–268
- DummyProvider.get_form() payments/dummy/__init__.py · lines 26–58
- MercadoPagoProvider payments/mercadopago/__init__.py · lines 38–218
- StripeProviderV3.create_session() payments/stripe/providers.py · lines 115–146
- PaymentError.__init__() payments/__init__.py · lines 71–79
- get_base_url() payments/core.py · lines 32–57
- DummyProvider payments/dummy/__init__.py · lines 16–81
- StripeProviderV3 payments/stripe/providers.py · lines 73–268