taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit 8bf6bee95ee73e08fca45cdb37476999ae5fc7c6
parent cd4ca3e6c1aed73fad00b2fdd1d5b78add799859
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sat,  2 May 2026 22:42:57 +0200

update spec to include 302 redirect"

Diffstat:
Mdesign-documents/076-paywall-proxy.rst | 15+++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/design-documents/076-paywall-proxy.rst b/design-documents/076-paywall-proxy.rst @@ -19,7 +19,7 @@ Requirements * Must withstand high traffic from bots, requests before a payment happened must be *very* cheap, both in terms of response generation and database - interaction. + interaction. This includes good support for caching. * Should work not just for our paivana-httpd but also for Turnstile-style paywalls that need to work with purely static paywall pages without PHP sessions. @@ -57,11 +57,14 @@ Steps: * If such a cookie is set and valid, the request is reverse-proxied to upstream. *Stop.* - * Otherwise, a static non-cachable paywall page is returned, - including a machine-readable ``Paivana`` HTTP header with - the ``taler://pay-template/`` URL minus the client-computed - ``{paivana_id}`` and fullfillment URL (see below). - *Continue.* + * Otherwise, a 302 redirect to ``/.well-known/paivana/templates/$ID`` + is returned. + +* When the browser requests ``/.well-known/paivana/templates/$ID`` + a static **cachable** paywall page is returned, + including a machine-readable ``Paivana`` HTTP header with + the ``taler://pay-template/`` URL minus the client-computed + ``{paivana_id}`` and fullfillment URL (see below). * The browser (rendering the paywall page) generates a random *paivana ID* via JS using the current time (``cur_time``) in seconds