paynow-zw: A Haskell wrapper for the Paynow payment gateway

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Please see the README on GitHub at https://github.com/trevorsibanda/paynow-zw#readme


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.1.0.0
Change log CHANGELOG.md
Dependencies base (>=4.7 && <5), bytestring (>=0.10.12 && <0.11), containers (>=0.6.5 && <0.7), cryptohash (>=0.11.9 && <0.12), HTTP (>=4000.4.1 && <4000.5), http-conduit (>=2.3.8 && <2.4), http-types (>=0.12.3 && <0.13), text (>=1.2.4 && <1.3), unliftio (>=0.2.22 && <0.3) [details]
License BSD-3-Clause
Copyright 2022 Trevor Sibanda
Author Trevor Sibanda
Maintainer sibandatrevor@gmail.com
Category payments
Home page https://github.com/trevorsibanda/paynow-zw#readme
Bug tracker https://github.com/trevorsibanda/paynow-zw/issues
Source repo head: git clone https://github.com/trevorsibanda/paynow-zw
Uploaded by trevorsibanda at 2022-12-28T15:35:40Z

Modules

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for paynow-zw-0.1.0.0

[back to package description]

Paynow Zimbabwe Haskell SDK

Haskell SDK for Paynow Zimbabwe's API

Prerequisites

This library has a set of prerequisites that must be met for it to work

{-# LANGUAGE OverloadedStrings #-}
import Network.Payments.Paynow as Paynow

	# Do stuff

Usage example

defaultConfig :: PaynowConfig
defaultConfig = defaultProdConfig "1201"
                    "3e9fed89-60e1-4ce5-ab6e-6b1eb2d4f977"
                    "http://localhost:3000/result"
                    "http://localhost:3000/return"

....
client <- newPaynowClient config
payment <- newExpressCheckout (Ecocash "0779800700") "45" 37.50 "email" Nothing
result <- processTx payment
case result of
   Left e => //handle err
   Right r => //handle result r :: PaynowTxResult

Create a new payment passing in the reference for that payment (e.g invoice id, or anything that you can use to identify the transaction and the user's email address


Express Transactions

testVMCDetails :: VMC
testVMCDetails = VMC (Card "4111111111111111" "588" "2023" "Trevor Sibanda") (BillingAddress "Address Line 1" "Line 2" "City" "Zimbabwe" Nothing)


payment <- newExpressCheckout client (OneMoney "0783102754") testRef testAmount testEmail Nothing

payment <- newExpressCheckout client (Ecocash "0715900800") testRef testAmount testEmail Nothing

payment <- newExpressCheckout client (VisaMastercard testVMCDetails) testRef testAmount testEmail Nothing

Checking transaction status

The SDK exposes a handy method that you can use to check the status of a transaction. Once you have instantiated the Paynow class.

tx <- newPollTransaction "https://www.paynow.co.zw/Interface/CheckPayment/?guid=dece867e-5a40-4961-bf0e-5d691c2a97f8"
processtx tx >>= print