pay method
Future<String?>
pay({
- QosicCountry? country,
- required QosicNetwork network,
- required String phoneNumber,
- required String amount,
Compute a simple ussd payment with Qos
On success return a String which is the id of the related payment
Implementation
Future<String?> pay({
QosicCountry? country,
required QosicNetwork network,
required String phoneNumber,
required String amount,
}) async {
final currentContry = country ?? getCountryFromNumber(phoneNumber);
final baseUrl =
currentContry == QosicCountry.benin ? Endpoints.bjUrl : Endpoints.tgUrl;
String? transactionReference;
try {
await dio.post(
baseUrl + Endpoints.requestPayment,
data: {
'msisdn': phoneNumber,
'amount': amount,
'transref': makeID(10),
'clientid': network == QosicNetwork.mtn ? mtnKey : moovKey
},
).then((value) {
transactionReference = value.data['transref'] as String;
});
} on DioError catch (e) {
if (enableLog) {
print(
'An error occured on [pay]: ${e.response!.data['responsemsg'] as String}');
}
throw QosicException(
'An error occured on [pay]',
responseMsg: e.response!.data['responsemsg'] as String,
data: e,
);
}
return transactionReference;
}