public bool ConfirmPaymentAndUpdateStatus(PaymentConfirmationRequestModel requestModel) { bool isVerified = false; var payment = _repository.GetAll().FirstOrDefault(x => x.SubscriptionId == requestModel.SubscriptionId && x.PaymentStatus == requestModel.PaymentStatus); if (payment == null) { return(false); } //if (payment.TransectionNumber.Trim() == requestModel.VerificationCode.Trim()) //{ payment.PaymentStatus = SubscriptionPaymentStatus.Paid; //payment.VerificationCode = requestModel.VerificationCode; payment.VerificationCode = payment.TransectionNumber; isVerified = true; //} //else //{ // payment.PaymentStatus = SubscriptionPaymentStatus.Rejected; // payment.VerificationCode = requestModel.VerificationCode; //} _repository.EditAsHost(payment); _repository.Commit(); return(isVerified); }
public IHttpActionResult Confirm(PaymentConfirmationRequestModel requestModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } using (var scope = new TransactionScope()) { var company = _service.GetCompany(requestModel.SubscriptionId); string message = null; var verifyPaymentAndUpdateStatus = _service.ConfirmPaymentAndUpdateStatus(requestModel); if (verifyPaymentAndUpdateStatus == true) { message = SmsHelper.PaymentConfirmedMessage; _subscriptionService.UpdateSubscriptionStatus(requestModel.SubscriptionId, true); if (company.IsEmailConfirmed) { _service.SendPaymentConfirmationEmail(requestModel.SubscriptionId, company.Email, company.Name); } } if (verifyPaymentAndUpdateStatus == false) { message = SmsHelper.PaymentFailedMessage; if (company.IsEmailConfirmed) { _service.SendPaymentRejectionEmail(requestModel.SubscriptionId, company.Email, company.Name); } } if (company.IsPhoneConfirmed) { _smsService.SendOneToOneSingleSmsUsingApi(company.Phone, message); } if (verifyPaymentAndUpdateStatus == false) { return(BadRequest("Transaction number is not valid. Failed to verify payment.")); } scope.Complete(); } return(Ok(true)); }