Exemple #1
0
        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);
        }
Exemple #2
0
        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);
            }
        }