This is a simple implementation of online payments using Paygate's PayHost.
Docs can be found on the official website (https://docs.paygate.co.za/#payhost)
To get started, you need to have Angular 12+ installed.
You also need .NET Core 3.1 installed.
Change the redirect urls in /Templates/SinglePaymentRequest.xml
to live (not localhost) urls.
The NotifyUrl
has to be a POST
endpoint, where Paygate will post the results of a payment.
<Redirect>
<NotifyUrl>https://sockets.diggipiggy.xyz/payment/complete</NotifyUrl>
<ReturnUrl>https://sockets.diggipiggy.xyz/payment/complete</ReturnUrl>
</Redirect>
In this case, I used a sockets so that the UI will be able to catch the response from that endpoint.
You can clone this socket service (https://github.com/wiredmartian/socket-service), and deploy it.
Use the url of where it sits as yoyr ReturnUrl and NotifyUrl like above.
And finally, to run the API (root of this project):
$ dotnet run
- the API runs on port :5000 and securely on :5001
To run the client:
$ cd payhost-client
- move into the client directory
$ npm i
- install dependencies
$ ng serve
- to run app (runs on port :4200)
Head over to (https://docs.paygate.co.za/#testing-2) for testing Bank Cards.
RESULT_CODE = 990017; TRANSACTION_STATUS = 1
Card Brand | Card Number | Risk Indicator |
Visa | 4000000000000002 | Authenticated (AX) * |
MasterCard | 5200000000000015 | Authenticated (AX) * |
RESULT_CODE = 900003; TRANSACTION_STATUS = 2
Card Brand | Card Number | Risk Indicator |
Visa | 4000000000000028 | Not Authenticated (NX) |
MasterCard | 5200000000000023 | Not Authenticated (NX) * |
RESULT_CODE = 900007; TRANSACTION_STATUS = 2
Card Brand | Card Number | Risk Indicator |
Visa | 4000000000000036 | Authenticated (AX) * |
MasterCard | 5200000000000049 | Authenticated (AX) * |