public static OttVoucherResponse GetOTTVoucher(OttVoucherRequest ottVoucherRequest) { try { var data = JukeBox.BLL.ExternalApi.OTT.VoucherOTT.RedeemOTT(ottVoucherRequest); return(data); } catch (Exception e) { throw e; } }
public static OttVoucherResponse RedeemOTT(OttVoucherRequest ottVoucherRequest) { var body = SerializeToXml <OttVoucherRequest>(ottVoucherRequest); IRestRequest request = new RestRequest("retail/Redeem.asmx", Method.POST); request.AddHeader("Content-Type", "text/xml; charset=utf-8"); request.AddHeader("SOAPAction", "http://www.ott-mobile.com/RedeemVoucher"); request.AddParameter("", body, ParameterType.RequestBody); var response = RestOTT.Execute(request); var result = DeserializeToObject <OttVoucherResponse>(response.Content); if (response.StatusCode != HttpStatusCode.OK) { if (response.StatusCode != HttpStatusCode.Accepted) { throw new Exception(response.StatusDescription, new Exception(response.Content)); } } return(result); }
public ApiResponse redeemOTTVoucher(string voucherpin, long clientId) { var response = new ApiResponse { ResponseMessage = "Failed", ResponseType = -1 }; 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 OttVoucherRequest { body = new OttVoucherRequest.Body { redeemVoucher = new OttVoucherRequest.RedeemVoucher { UserName = userName, Password = passWord, VendorId = vendorId, ClientId = clientId.ToString(), AccountCode = "", msisdn = "", PinCode = "1234", UniqueReference = trackingId.ToString() } } }; var reference = "OTT - Voucher"; TrackVoucher(string.Format("Tracking Id: {2} - {1} Start redeeming Flash Pin: {0}", voucherpin, clientId, trackingId)); var ott = GetOTTVoucher(ottVoucherRequest); if (ott.body.voucherResponse.redeemVoucherResult.Message == "Success") //Activated/Success { TrackVoucher($"Tracking Id: {trackingId} - Flash API Success response code: {ott.body.voucherResponse.redeemVoucherResult.Message} for voucher pin: {voucherpin} and Client ID: {clientId}"); var updateBalance = verifyVoucher(Convert.ToInt32(clientId), voucherpin, 1, 1, 1, DateTime.Now, Convert.ToInt64(ott.body.voucherResponse.redeemVoucherResult.Reference), ott.body.voucherResponse.redeemVoucherResult.Amount, false, reference); if (updateBalance == null) { response.ResponseMessage = "Successfull"; response.ResponseType = 1; } else { string errorMessage = "An error has occurred. Please try again."; response.ResponseMessage = errorMessage; TrackVoucher(string.Format("Tracking Id: {3} - {2} Error redeeming Flash Pin: {0}, Reason: {1}", voucherpin, "API returned failed response", clientId, trackingId)); var voucher = verifyVoucher(Convert.ToInt32(clientId), voucherpin, 1, 1, 2, DateTime.Now, Convert.ToInt64(ott.body.voucherResponse.redeemVoucherResult.Reference), ott.body.voucherResponse.redeemVoucherResult.Amount, false, reference); } } else if (ott.body.voucherResponse.redeemVoucherResult.ErrorCode == "1824") { string errorMessage = "Voucher has already been used."; response.ResponseMessage = errorMessage; TrackVoucher($"Tracking Id: {trackingId} - OTT API response code: {ott.body.voucherResponse.redeemVoucherResult.ErrorCode} for voucher pin: {voucherpin} and Client ID: {clientId}"); } else { string errorMessage = "Invalid 1voucher code"; response.ResponseMessage = errorMessage; TrackVoucher($"Tracking Id: {trackingId} - OTT API response code: {ott.body.voucherResponse.redeemVoucherResult.ErrorCode} for voucher pin: {voucherpin} and Client ID: {clientId}"); //verifyVoucher(Convert.ToInt32(clientId), voucherpin, 2, 1, 2, DateTime.Now, Convert.ToInt64(ott.body.voucherResponse.redeemVoucherResult.Reference), ott.body.voucherResponse.redeemVoucherResult.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}", voucherpin, trackingId, clientId)); return(response); } }