checkoutUrl method

String checkoutUrl({
  1. required String live,
  2. required String oid,
  3. required String inv,
  4. required String ttl,
  5. required String tel,
  6. required String eml,
  7. required String curr,
  8. String p1 = "",
  9. String p2 = "",
  10. String p3 = "",
  11. String p4 = "",
  12. required String cbk,
  13. required String cst,
  14. required String crl,
  15. String mpesa = "1",
  16. String bonga = "1",
  17. String airtel = "1",
  18. String equity = "1",
  19. String creditcard = "1",
  20. String mobilebanking = "0",
  21. String mkoporahisi = "0",
  22. String saida = "0",
  23. String elipa = "0",
  24. String unionpay = "0",
  25. String mvisa = "0",
  26. String vooma = "0",
  27. String pesalink = "0",
  28. String autopay = "0",
})

Implementation

String checkoutUrl({
  required String live,
  required String oid,
  required String inv,
  required String ttl,
  required String tel,
  required String eml,
  required String curr,
  String p1 = "",
  String p2 = "",
  String p3 = "",
  String p4 = "",
  required String cbk,
  required String cst,
  required String crl,
  String mpesa = "1",
  String bonga = "1",
  String airtel = "1",
  String equity = "1",
  String creditcard = "1",
  String mobilebanking = "0",
  String mkoporahisi = "0",
  String saida = "0",
  String elipa = "0",
  String unionpay = "0",
  String mvisa = "0",
  String vooma = "0",
  String pesalink = "0",
  String autopay = "0",
}) {
  var key = utf8.encode(vendorSecurityKey);
  var newPhoneNumber = tel.replaceAll(RegExp(r'[^\w]+'), '');
  var finalAmount =
      double.parse(ttl.replaceAll(RegExp(r'[^\w.]+'), '')).toStringAsFixed(0);
  var dataString =
      "$live$oid$inv$finalAmount$newPhoneNumber$eml$vendorId$curr$p1$p2$p3$p4$cbk$cst$crl";
  var bytes = utf8.encode(dataString);

  var hmacSha1 = Hmac(sha1, key); // HMAC-SHA256
  var digest = hmacSha1.convert(bytes);

  //Craft url
  final url = baseUrl +
      "live=$live&oid=$oid&inv=$inv&ttl=$finalAmount&tel=$newPhoneNumber&eml=$eml&vid=$vendorId&curr=$curr&p1=$p1&p2=$p2&p3=$p3&p4=$p4&cbk=$cbk&cst=$cst&crl=$crl&hsh=$digest&mpesa=$mpesa&bonga=$bonga&airtel=$airtel&equity=$equity&creditcard=$creditcard&mobilebanking=$mobilebanking&mkoporahisi=$mkoporahisi&saida=$saida&elipa=$elipa&unionpay=$unionpay&mvisa=$mvisa&vooma=$vooma&pesalink=$pesalink&autopay=$autopay";

  return url;
}