Skip to content
Snippets Groups Projects
Jean-Paul Calderone's avatar
Jean-Paul Calderone authored
It seems to be faster to hash one huge string than many smaller ones that
total to the same length.  Also by only showing one final hash we remove O(N)
show calls.

The old and new fingerprints are not compatible but I haven't deployed this
in production anywhere yet so that doesn't bother me.  Had I, we'd need some
kind of versioning scheme for fingerprint computation I suppose.
06655119
History

PaymentServer

PaymentServer maintains the state of a voucher database with respect to payments. It receives payment notifications from payment processors and notes this in the database.

Currently, Stripe is supported.

Building

Build using Stack:

$ stack build

Testing

You can perform manual integration testing against Stripe. First, run the server:

$ stack run

Then configure Stripe with a webhook pointing at the server and receiving the charge.successful event. Configure Stripe with http://<youraddress>:8081/v1/stripe/webhook.

Then create a testing charge using Stripe:

$ STRIPE_SECRET_KEY=sk_test_...
$ curl \
  https://api.stripe.com/v1/charges   \
  -u ${STRIPE_SECRET_KEY}:   \
  -d amount=999   \
  -d currency=usd   \
  -d source=tok_visa   \
  -d 'metadata[Voucher]=abcdefghijk'

This results in Stripe making a callback to the PaymentServer with the charge details. The PaymentServer marks the voucher as paid in its database.