public static RetunrvalueType PaymentResult(string RefId, string ResCode, long saleOrderId, long SaleReferenceId) { RetunrvalueType retunrvalueType = new RetunrvalueType(); if (SaleReferenceId > 0) { try { var payment = db.Payments.Where(i => i.PaymentId.Equals(saleOrderId)).FirstOrDefault(); switch (payment.Card.name) { case "Mellat": retunrvalueType = MellatPaymentResult(RefId, ResCode, payment, SaleReferenceId); break; default: retunrvalueType.Message = "هیچ درگاهی انتخاب نشده"; break; } } catch (Exception ex) { retunrvalueType.Message = ex + "<br>" + " وضعیت:مشکلی در پرداخت بوجود آمده ، در صورتی که وجه پرداختی از حساب بانکی شما کسر شده است آن مبلغ به صورت خودکار برگشت داده خواهد شد "; retunrvalueType.Write = "**************"; return(retunrvalueType); } } else { //ResCode=StatusPayment if (!string.IsNullOrEmpty(ResCode)) { retunrvalueType.Message = PaymentResultclass.MellatResult(ResCode); retunrvalueType.Write = "**************"; } else { retunrvalueType.Message = "رسید قابل قبول نیست"; retunrvalueType.Write = "**************"; } } return(retunrvalueType); }
public static RetunrvalueType MellatPayment(Payment Payment, int Price, string RedirectPage) { BypassCertificateError(); RetunrvalueType retunrvalueType = new RetunrvalueType(); var card = db.Cards.Where(i => i.name.Equals("Mellat", StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); var payment = new Anbarii.ir.shaparak.bpm.PaymentGatewayImplService(); string result = payment.bpPayRequest( long.Parse(card?.TerminalID, CultureInfo.CurrentCulture), card?.UserName, card?.Password, (Payment?.PaymentId) ?? 0, Price, GetDate(), GetTime(), "خرید از سایت تحلیل داده", RedirectPage, 0 ); if (result != null) { // 45zm24554654,0 string[] ResultArray = result.Split(','); if (ResultArray[0].ToString(CultureInfo.CurrentCulture) == "0") { UpdatePayment(Payment, "-100", 0, ResultArray[1], 0); NameValueCollection collection = new NameValueCollection(); collection.Add("RefId", ResultArray[1]); retunrvalueType.Write = Helper.PreparePOSTForm("https://bpm.shaparak.ir/pgwchannel/startpay.mellat", collection); } else { UpdatePayment(Payment, ResultArray[0].ToString(CultureInfo.CurrentCulture), 0, null, 0); retunrvalueType.Message = PaymentResultclass.MellatResult(ResultArray[0]); } } else { retunrvalueType.Message = "امکان اتصال به درگاه بانک وجود ندارد"; } payment.Dispose(); return(retunrvalueType); }
public static RetunrvalueType MellatPaymentResult(string RefId, string ResCode, Payment payment, long SaleReferenceId) { RetunrvalueType retunrvalue = new RetunrvalueType(); BypassCertificateError(); try { var bpService = new Anbarii.ir.shaparak.bpm.PaymentGatewayImplService(); string Result; Result = bpService.bpVerifyRequest(long.Parse(payment.Card.TerminalID, CultureInfo.CurrentCulture), payment.Card.UserName, payment.Card.Password, payment.PaymentId, payment.PaymentId, SaleReferenceId); if (!string.IsNullOrEmpty(Result)) { if (Result == "0") { string IQresult; IQresult = bpService.bpInquiryRequest(long.Parse(payment.Card.TerminalID, CultureInfo.CurrentCulture), payment.Card.UserName, payment.Card.Password, payment.PaymentId, payment.PaymentId, SaleReferenceId); if (IQresult == "0") { UpdatePayment(payment, Result, SaleReferenceId, RefId, 1); retunrvalue.Message = "پرداخت با موفقیت انجام شد."; retunrvalue.Write = SaleReferenceId.ToString(CultureInfo.CurrentCulture); // پرداخت نهایی string Sresult; // تایید پرداخت Sresult = bpService.bpSettleRequest(long.Parse(payment.Card.TerminalID, CultureInfo.CurrentCulture), payment.Card.UserName, payment.Card.Password, payment.PaymentId, payment.PaymentId, SaleReferenceId); if (Sresult != null) { if (Sresult == "0" || Sresult == "45") { //تراکنش تایید و ستل شده است } else { //تراکنش تایید شده ولی ستل نشده است } } } else { string Rvresult; //عملیات برگشت دادن مبلغ Rvresult = bpService.bpReversalRequest(long.Parse(payment.Card.TerminalID, CultureInfo.CurrentCulture), payment.Card.UserName, payment.Card.Password, payment.PaymentId, payment.PaymentId, SaleReferenceId); retunrvalue.Message = "تراکنش بازگشت داده شد"; retunrvalue.Write = "**************"; UpdatePayment(payment, IQresult, SaleReferenceId, RefId, 0); } } else { retunrvalue.Message = PaymentResultclass.MellatResult(Result); retunrvalue.Write = "**************"; UpdatePayment(payment, Result, SaleReferenceId, RefId, 0); } } else { retunrvalue.Message = "شماره رسید قابل قبول نیست"; retunrvalue.Write = "**************"; } } catch (Exception ex) { string errors = ex.Message; retunrvalue.Message = "مشکلی در پرداخت به وجود آمده است ، در صورتیکه وجه پرداختی از حساب بانکی شما کسر شده است آن مبلغ به صورت خودکار برگشت داده خواهد شد"; retunrvalue.Write = "**************"; } return(retunrvalue); }