public MPESAValidationResponse ValidateMPESAPayment(MPESAValidation validation) { var validationResult = _paymentAccessor.ValidateMPESAPayment(validation.MerchantRequestID, validation.CheckoutRequestID, validation.ResultCode); if (validationResult.IsSuccess) { var donationID = validationResult.Payload.Item1; var userID = validationResult.Payload.Item2; if (validation.ResultCode == "0") { _donateAccessor.UpdateDonationStatus(donationID, 6); _donateAccessor.ClearUserCart(userID); SendPaymentConfirmationEmail(userID, donationID); } else { _donateAccessor.UpdateDonationStatus(donationID, 4); } return(new MPESAValidationResponse { ResponseCode = "00000000", ResponseDesc = "Success" }); } else { return(new MPESAValidationResponse { ResponseCode = "99999999", ResponseDesc = "Failure" }); } }
public IActionResult ValidateMPESA() { var bodyStream = new StreamReader(HttpContext.Request.Body); var bodyText = bodyStream.ReadToEnd(); var obj = JsonConvert.DeserializeObject <JObject>(bodyText); var callback = obj["Body"]["stkCallback"] as JObject; var validation = new MPESAValidation { MerchantRequestID = callback["MerchantRequestID"].ToString(), CheckoutRequestID = callback["CheckoutRequestID"].ToString(), ResultDesc = callback["ResultDesc"].ToString(), ResultCode = callback["ResultCode"].ToString() }; var result = _paymentService.ValidateMPESAPayment(validation); return(Json(result)); }