Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
  • use-iohk-cache-on-ci
  • cabal2nix
  • minimal-example
  • rename-metrics
  • upgrade-challenge-bypass-ristretto
  • integration
  • 24.stripe-charge-rebased
  • 10.apidocs
9 results

PaymentServer

  • Clone with SSH
  • Clone with HTTPS
  • 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

    Get all the build dependencies with nix:

    $ nix-shell PrivateStorageio/shell.nix   # Might be needed depending on your system, see #88
    $ nix-shell PaymentServer/shell.nix

    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.