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); }
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")); } }