=== 3DIS PAYMENT ===
Contributors: 3dis-formation
Tags: payment, stripe, paypal, contact form 7
Requires at least: 6.4
Requires PHP: 7.4
Stable tag: 1.0.0
License: Proprietary commercial distribution

Modular Stripe and PayPal payments for WordPress and Contact Form 7.

== Development status ==

This package is a development build. It must be validated on an isolated WordPress installation before production use.

== Contact Form 7 ==

Create a payment profile, note its slug, then insert a named form-tag:

[3dis_payment payment profile:my-profile]

The name "payment" allows Contact Form 7 to associate validation errors with the correct component. Each component is scoped to its closest form.

Fixed profiles resolve their amount from the server profile. Dynamic profiles map the configured CSS class to exactly one CF7 form-tag and parse the submitted field value. CF7 signs that validated value before payment creation. A readonly browser field alone is not an authoritative anti-tampering control; sites with a server-side business source should use the `threedis_payment_validate_dynamic_amount` filter to replace or reject the submitted amount.

== Webhooks ==

Stripe: /wp-json/3dis-payment/v1/webhooks/stripe
PayPal: /wp-json/3dis-payment/v1/webhooks/paypal

Configure only test/sandbox credentials during development.

Stripe dev.17 uses deferred Elements with ConfirmationToken. Rendering the card
and wallet controls does not create a PaymentIntent. A valid CF7 submission is
required before the server creates and confirms a Stripe TEST PaymentIntent.

== Licence development integration ==

Dev.17 targets the central 3DIS License Platform gateway hosted by
www.3dis-development.com. An existing saved gateway URL remains available as
an explicit development/preproduction override. Signed RS256 responses are
verified before local state changes. No unsigned offline
grace is invented: starting an actual new payment requires a successful online
signed licence check. Trial licences provide the same payment environments as paid licences for 15 days.

== Legacy compatibility ==

When Mini Stripe Class Pay is inactive, the legacy [stripe_class_pay] shortcode can render a selected compatibility profile. Existing secrets are never imported automatically.
