/PaymentServer

Coordinate entities for the purchase of PrivateStorage.io vouchers.

Primary LanguageHaskellApache License 2.0Apache-2.0

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 create a testing charge:

$ curl \
  http://<youraddress>:8081/v1/stripe/charge \
  -X POST \
  -H 'content-type: application/json' \
  --data '{ "token":"tok_visa", "voucher":"abcdefg", "amount":"650", "currency":"USD" }'

The PaymentServer marks the voucher as paid in its database. Then redeem the vouncher for tokens:

$ curl \
  http://<youraddress>:8081/v1/redeem \
  -X POST \
  -H 'content-type: application/json' \
  --data '{ "redeemVoucher": "abcdefg", "redeemTokens":[]}'