public static OttVoucherStatusResponse CheckVoucherStatusOTT(OttCheckStatusVoucherRequest ottVoucherRequest) { var body = SerializeToXml <OttCheckStatusVoucherRequest>(ottVoucherRequest); IRestRequest request = new RestRequest("retail/CheckRedeemStatus.asmx", Method.POST); request.AddHeader("Content-Type", "text/xml; charset=utf-8"); request.AddHeader("SOAPAction", "http://www.ott-mobile.com/GetStatus"); request.AddParameter("", body, ParameterType.RequestBody); var response = RestOTT.Execute(request); var result = DeserializeToObject <OttVoucherStatusResponse>(response.Content); if (response.StatusCode != HttpStatusCode.OK) { if (response.StatusCode != HttpStatusCode.Accepted) { throw new Exception(response.StatusDescription, new Exception(response.Content)); } } return(result); }
public OttVoucherResponse CheckOTTVoucherStatus(string uniqueReference, long clientId) { var response = new OttVoucherResponse { body = new OttVoucherResponse.Body { voucherResponse = new OttVoucherResponse.Body.VoucherResponse { redeemVoucherResult = new OttVoucherResponse.RedeemVoucherResult { Message = "Failed", Amount = 0, ErrorCode = "4", } } } }; string trackingId = Guid.NewGuid().ToString(); string userName = Convert.ToString(ConfigurationManager.AppSettings["OTTUserName"]); string passWord = Convert.ToString(ConfigurationManager.AppSettings["OTTPassWord"]); int vendorId = Convert.ToInt32(ConfigurationManager.AppSettings["OTTVendorId"]); try { var xmlDoc = new XDocument(new XElement("RedeemVoucher", new XElement("userName", userName), new XElement("password", passWord), new XElement("unique_reference", trackingId.ToString()), new XElement("VendorID", vendorId), new XElement("pinCode", ""), new XElement("accountCode", clientId.ToString()), new XElement("clientID", "1234"), new XElement("msisdn", ""))); var ottVoucherRequest = new OttCheckStatusVoucherRequest { body = new OttCheckStatusVoucherRequest.Body { getStatus = new OttCheckStatusVoucherRequest.GetStatus { UserName = userName, Password = passWord, UniqueReference = uniqueReference } } }; var reference = "OTT - Voucher"; TrackVoucher(string.Format("Tracking Id: {2} - {1} Start redeeming Flash Pin: {0}", uniqueReference, clientId, uniqueReference)); var ott = JukeBox.BLL.ExternalApi.OTT.VoucherOTT.CheckVoucherStatusOTT(ottVoucherRequest); if (ott.body.voucherStatusResponse.statusResult.Message == "Success") //Activated/Success { TrackVoucher($"Tracking Id: {trackingId} - Flash API Success response code: {ott.body.voucherStatusResponse.statusResult.Message} for voucher pin: {uniqueReference} and Client ID: {clientId}"); var updateBalance = verifyVoucher(Convert.ToInt32(clientId), uniqueReference, 1, 1, 1, DateTime.Now, Convert.ToInt64(ott.body.voucherStatusResponse.statusResult.Reference), ott.body.voucherStatusResponse.statusResult.Amount, false, reference); if (updateBalance != null) { response.body.voucherResponse.redeemVoucherResult.Message = "Successfull"; response.body.voucherResponse.redeemVoucherResult.ErrorCode = "0"; } else { string errorMessage = "An error has occurred. Please try again."; response.body.voucherResponse.redeemVoucherResult.Message = errorMessage; TrackVoucher(string.Format("Tracking Id: {3} - {2} Error redeeming Flash Pin: {0}, Reason: {1}", uniqueReference, "API returned failed response", clientId, trackingId)); var voucher = verifyVoucher(Convert.ToInt32(clientId), uniqueReference, 1, 1, 2, DateTime.Now, Convert.ToInt64(ott.body.voucherStatusResponse.statusResult.Reference), ott.body.voucherStatusResponse.statusResult.Amount, false, reference); } } else if (ott.body.voucherStatusResponse.statusResult.ErrorCode == "1824") { string errorMessage = "Voucher has already been used."; response.body.voucherResponse.redeemVoucherResult.Message = errorMessage; TrackVoucher($"Tracking Id: {trackingId} - OTT API response code: {ott.body.voucherStatusResponse.statusResult.ErrorCode} for voucher pin: {uniqueReference} and Client ID: {clientId}"); } else { string errorMessage = "Invalid"; response.body.voucherResponse.redeemVoucherResult.Message = errorMessage; TrackVoucher($"Tracking Id: {trackingId} - OTT API response code: {ott.body.voucherStatusResponse.statusResult.ErrorCode} for voucher pin: {uniqueReference} and Client ID: {clientId}"); // verifyVoucher(Convert.ToInt32(clientId), uniqueReference, 2, 1, 2, DateTime.Now, Convert.ToInt64(ott.body.voucherStatusResponse.statusResult.Reference), ott.body.voucherStatusResponse.statusResult.Amount, false, reference); } return(response); } catch (Exception ex) { TrackVoucher(string.Format("Tracking Id: {0} - {2} Exception, Reason: {1}", trackingId, ex.Message, clientId)); TrackVoucher(string.Format("Tracking Id: {1} - {2} End redeeming Flash Pin: {0}", uniqueReference, trackingId, clientId)); return(response); } }