Meta ticket: donate rewrite backend MVP

Splitting off from #111 (closed)

MVP for backend

  • Handle stripe donations
    • pick new stripe checkout flow. our current stripe checkout system is deprecated, we'll need to decide on the correct flow to use for the new site
    • implement the new flow in the backend (single and recurring donations), expose a very basic frontend for testing stripe checkout
  • Handle paypal donations on the backend
    • audit current paypal checkout flow, ensure that we don't have issues like our stripe checkout
    • implement paypal checkout, single and recurring donations
  • List wallet addresses - django setup, yes (donate-neo!1 (merged))
  • A link to BTCPay (non-integrated) - django setup, yes (donate-neo!3 (merged))
  • Noscript error - django setup, yes (donate-neo!4 (merged))
  • CRM integration (that meets Fundraising's specs)
    • Newsletter signup
    • report donations to civi
    • query current perks from civi
  • Donation amount array
  • Swag display & logic (+ ability to decline swag)
  • CAPTCHA
  • Simple YEC Ticker (donate-neo!6 (merged))
  • Simple order summary (donate-neo!7 (merged))
  • Redirect to existing thank you page? maybe? or a simple version for the MVP

Post-MVP

  • Ability to track donations made directly through paypal (not through donate.tpo) and report them to civi (tpo/anti-censorship/pluggable-transports/snowflake-webext#79). this can be implemented in the backend with paypal webhooks.
  • CMSable/lektorable content [e.g., ability to make new/standalone pages] (possibly with wagtail?)
Edited by Gaba