Deal with metadata mismatch in Stripe charge response such that the payment is not dropped
The Stripe charge endpoint uses the Stripe API to create a Charge in Stripe with the supplied voucher in the Charge's metadata. The metadata is for reporting, debugging, or maybe support purposes. It is unused by any other part of the code, currently (it used to be used by the Stripe webhook which we no longer use).
If we intend to use this, it would be nice if we were sure it was correct. But even if it is incorrect, the charge has been processed and money has changed hands. The server currently reports the failed metadata expectation as a failure in the charge endpoint's response which makes it look like the charge has failed to the client.
Instead, it should probably report this as a success to the client but somehow alert operations to the mismatch.
Alternatively, if we don't need this information, we could just stop populating it and stop checking it for consistency.