Esempio n. 1
0
        public Com.PayFinalResult PayConfirm(Com.PayVerifiedData mPayVerifiedData)
        {
            var webClient = new WebClient();

            webClient.Encoding = System.Text.Encoding.UTF8;
            webClient.Headers[HttpRequestHeader.ContentType] = "application/json;charset=utf-8";
            var rawMessage = JsonConvert.SerializeObject(mPayVerifiedData);

            rawMessage = webClient.UploadString("http://www.poolban.ir/PayGate/pay/VerifiedCustomerForIPG", rawMessage);

            var Result = JsonConvert.DeserializeObject <Com.PayFinalResult>(rawMessage);

            return(Result);
        }
Esempio n. 2
0
        public IHttpActionResult CallBackPayResult(HttpRequestMessage request)
        {
            try
            {
                new System.Threading.Thread(delegate() { BLL.Log.DoLog(Com.Common.Action.CallBackPayResult, "", 0, "STAART"); }).Start();

                var form = request.Content.ReadAsFormDataAsync().Result;
                Com.PayEndResult payEndResult = new Com.PayEndResult();

                payEndResult.ErrorCode        = form["ErrorCode"];
                payEndResult.BuyID            = form["BuyID"];
                payEndResult.ErrorDescription = form["ErrorDescription"];
                payEndResult.ReferenceNumber  = form["ReferenceNumber"];
                payEndResult.State            = Int32.Parse(form["State"]);
                payEndResult.Token            = form["Token"];
                payEndResult.TrackingNumber   = form["TrackingNumber"];

                Com.PayVerifiedData payVerifiedData = new Com.PayVerifiedData();

                var pay = BLL.Payment.GetPayByBuyID(payEndResult.BuyID);
                if (pay == null)
                {
                    Com.PayVerifiedData mPayVerifiedDataTmp = new Com.PayVerifiedData()
                    {
                        ForceReverse = true,
                        Token        = payEndResult.Token
                    };
                    var resTmp = PayConfirm(mPayVerifiedDataTmp);
                    //chio to Db updte konam Akhe !

                    new System.Threading.Thread(delegate() { BLL.Log.DoLog(Com.Common.Action.CallBackPayResult, payEndResult.BuyID, 2, "Bad END"); }).Start();
                    // return Redirect("https://www.hasma.ir/payment/failed");
                    return(Redirect("wodex://purchase"));
                }
                else
                {
                    pay.ReferenceNumber = payEndResult.ReferenceNumber;
                    pay.DargahState     = payEndResult.State;
                    pay.Token           = payEndResult.Token;
                    pay.TrackingNumber  = payEndResult.TrackingNumber;
                    pay.EndMoment       = DateTime.Now;

                    BLL.Payment.UpdatePayAfterDargah(pay);
                }

                Com.PayVerifiedData mPayVerifiedData = new Com.PayVerifiedData()
                {
                    ForceReverse    = false,
                    Token           = pay.Token,
                    TrackingNumber  = pay.TrackingNumber,
                    State           = pay.DargahState ?? 0,
                    ReferenceNumber = pay.ReferenceNumber,
                    Amount          = pay.Amount,
                    BuyID           = pay.BuyID
                };
                var resFinal = PayConfirm(mPayVerifiedData);

                if (resFinal.Status == 1)
                {
                    pay.FinalState = resFinal.Status;
                    pay.IsReverse  = false;
                    BLL.Payment.UpdatePayAfterConfirm(pay);
                }
                else
                {
                    pay.FinalState = resFinal.Status;
                    pay.IsReverse  = true;
                    BLL.Payment.UpdatePayAfterConfirm(pay);
                }

                new System.Threading.Thread(delegate() { BLL.Log.DoLog(Com.Common.Action.CallBackPayResult, payEndResult.BuyID, 1, "Happy END"); }).Start();
                //  return Redirect("https://www.hasma.ir/payment/Success/" + payEndResult.TrackingNumber);
                return(Redirect("wodex://purchase"));
            }
            catch (Exception e)
            {
                new System.Threading.Thread(delegate() { BLL.Log.DoLog(Com.Common.Action.CallBackPayResult, "payEndResult", -100, e.Message); }).Start();
                //return Redirect("https://www.hasma.ir/payment/failed");
                return(Redirect("wodex://purchase"));
            }
        }