This is a collection of payment API's which comprises card payments by Stripe and local payment API's from different Mobile Network Operators (MNO) in Tanzania.Currently, we support M-Pesa and Tigo Pesa
# FurahitechPay
This is a collection of different payment API's, this API supports Stripe, Tigo Pesa and M-Pesa payments for now. For M-Pesa payments we have used wazoHub as our aggregator.
## Releases
## Features
* Small library
* Supports Stripe,M-Pesa and Tigo Pesa payments
* Select only supported mobile network operators on mobile payments
* Automatically monitor for the callback on the server side (M-Pesa payments)
* Operate on both LIVE and SANBOX environments.
* Check payment status from the Tigo Secure page
* Payment instant callback from your back end
* Elegant UI
## Installation
This API depends on server side logic which helps to log partial payments to a JSON file waiting for a callback from M-Pesa servers and payment authorisation from Tigo Pesa servers.
### Server side installation
This API work with FurahitechPayments-Server repo, what you have to do is:-
* Clone this repository and upload /server directory to your server
* Submit your callback URL to WazoHub as:-
```html
/v1/vodacom/callback
```
### Client Side installation (Android)
Add this to your dependencies (Check for the latest release):
```groovy
implementation 'com.github.kileha3:FurahitechPay:1.0'
```
Create a payment request
```java
PaymentDataRequest request = new PaymentDataRequest();
request.setAmount(50000);
request.setEmailAddress("exampleclient@example.com");
request.setFirstName("John");
request.setLastName("Doe");
request.setDescription("Lorem Ipsum is simply dummy text of the printing and typesetting industry");
request.setProductId("2");
request.setProductName("Lorem Ipsum");
request.setGatewayType(Furahitech.GateWay.MNO);
request.useLiveApi(true);
request.setDataReceiver("");
request.setOneSignalApiKey("");
request.setOneSignalAppId("");
```
Card / Mobile payment request type
```java
//Mobile payment
request.setGatewayType(Furahitech.GateWay.MNO);
//Card payment
request.setGatewayType(Furahitech.GateWay.CARD);
```
Send payment request
```java
FurahitechPay. …