diff --git a/src/PaymentServer/Main.hs b/src/PaymentServer/Main.hs index 4e1afc9960ee26a3cd29c5723d984835a15be6d5..7593bfb87cc0e576d447774e4de9c0e5704ead1c 100644 --- a/src/PaymentServer/Main.hs +++ b/src/PaymentServer/Main.hs @@ -93,7 +93,7 @@ data ServerConfig = ServerConfig , database :: Database , databasePath :: Maybe Text , endpoint :: Endpoint - , stripeKey :: ByteString + , stripeKey :: ByteString } deriving (Show, Eq) diff --git a/src/PaymentServer/Processors/Stripe.hs b/src/PaymentServer/Processors/Stripe.hs index 5d8b367c1fdbb28eede44045862a76cbc89283a4..6c2b601c25ac3540b92b9026b107f3a2ea4f75c2 100644 --- a/src/PaymentServer/Processors/Stripe.hs +++ b/src/PaymentServer/Processors/Stripe.hs @@ -77,6 +77,8 @@ import PaymentServer.Persistence , VoucherDatabase(payForVoucher) ) +type StripePrivateKey = ByteString + data Acknowledgement = Ok instance ToJSON Acknowledgement where @@ -94,7 +96,7 @@ getVoucher (MetaData []) = Nothing getVoucher (MetaData (("Voucher", value):xs)) = Just value getVoucher (MetaData (x:xs)) = getVoucher (MetaData xs) -stripeServer :: VoucherDatabase d => d -> ByteString -> Server StripeAPI +stripeServer :: VoucherDatabase d => d -> StripePrivateKey -> Server StripeAPI stripeServer d key = webhook d :<|> charge d key @@ -143,7 +145,7 @@ instance FromJSON Charges where -- | call the stripe Charge API (with token, voucher in metadata, amount, currency etc -- and if the Charge is okay, then set the voucher as "paid" in the database. -charge :: VoucherDatabase d => d -> ByteString -> Charges -> Handler Acknowledgement +charge :: VoucherDatabase d => d -> StripePrivateKey -> Charges -> Handler Acknowledgement charge d key (Charges token voucher amount currency) = do let config = StripeConfig (StripeKey key) Nothing tokenId = TokenId token