예제 #1
0
 public static OttVoucherResponse GetOTTVoucher(OttVoucherRequest ottVoucherRequest)
 {
     try
     {
         var data = JukeBox.BLL.ExternalApi.OTT.VoucherOTT.RedeemOTT(ottVoucherRequest);
         return(data);
     }
     catch (Exception e)
     {
         throw e;
     }
 }
예제 #2
0
        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);
        }
예제 #3
0
        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);
            }
        }