public HttpResponseMessage PaymentRequest() { ATISMobileWebApi WebAPi = new ATISMobileWebApi(); try { //تایید اعتبار کلاینت WebAPi.AuthenticateClientApikeyNoncePersonalNonceWith1Parameter(Request, ATISMobileWebApiLogTypes.WebApiClientMoneyWalletPaymentRequest); var InstanceConfiguration = new R2CoreInstanceConfigurationManager(); var InstanceSoftwareusers = new R2CoreInstanseSoftwareUsersManager(); var InstanceAES = new AESAlgorithmsManager(); var Content = JsonConvert.DeserializeObject <string>(Request.Content.ReadAsStringAsync().Result); var MobileNumber = InstanceAES.Decrypt(Content.Split(';')[0], InstanceConfiguration.GetConfigString(R2CoreConfigurations.PublicSecurityConfiguration, 3)); var NSSSoftwareuser = InstanceSoftwareusers.GetNSSUser(new R2CoreSoftwareUserMobile(MobileNumber)); var Amount = Convert.ToInt32(Content.Split(';')[2]) * 10; if (Amount > 1000000) { throw new ChargingAmountInvalidException(); } var WS = new R2Core.R2PrimaryWS.R2PrimaryWebService(); var PayId = WS.WebMethodPaymentRequest(R2CoreMonetaryCreditSupplySources.ZarrinPalPaymentGate, Amount, NSSSoftwareuser.UserId, WS.WebMethodLogin(R2CoreMClassSoftwareUsersManagement.GetNSSSystemUser().UserShenaseh, R2CoreMClassSoftwareUsersManagement.GetNSSSystemUser().UserPassword)); var InstancePaymentRequests = new R2CoreInstansePaymentRequestsManager(); var NSSPaymentRequest = InstancePaymentRequests.GetNSSPayment(PayId); while ((NSSPaymentRequest.Authority == string.Empty) & (NSSPaymentRequest.PaymentErrors == string.Empty)) { System.Threading.Thread.Sleep(500); NSSPaymentRequest = InstancePaymentRequests.GetNSSPayment(PayId); } if (NSSPaymentRequest.Authority != string.Empty) { HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(JsonConvert.SerializeObject(new MessageStruct { ErrorCode = false, Message1 = NSSPaymentRequest.Authority, Message2 = InstanceConfiguration.GetConfigString(R2CoreConfigurations.ZarrinPalPaymentGate, 2), Message3 = string.Empty }), Encoding.UTF8, "application/json"); return(response); } else { throw new Exception(NSSPaymentRequest.PaymentErrors); } } catch (UserNotExistByApiKeyException ex) { return(WebAPi.CreateErrorContentMessage(ex)); } catch (Exception ex) { return(WebAPi.CreateErrorContentMessage(ex)); } }
public ActionResult PaymentVerification() { ATISMobileWebApi WebAPi = new ATISMobileWebApi(); try { //تایید اعتبار کلاینت WebAPi.AuthenticateClientPaymentVerification(Request, Request.QueryString["Authority"]); var InstanceTrafficCards = new R2CoreTransportationAndLoadNotificationInstanceTerraficCardsManager(); var InstanceMoneyWallets = new R2CoreParkingSystemInstanceMoneyWalletManager(); var InstanceMoneyWalletCharge = new R2CoreParkingSystemInstanceMoneyWalletChargeManager(); var InstanceSoftwareUsers = new R2CoreInstanseSoftwareUsersManager(); if (Request.QueryString["Status"] != "" && Request.QueryString["Status"] != null && Request.QueryString["Authority"] != "" && Request.QueryString["Authority"] != null) { if (Request.QueryString["Status"].ToString().Equals("OK")) { var WS = new R2Core.R2PrimaryWS.R2PrimaryWebService(); var PayId = WS.WebMethodVerificationRequest(R2CoreMonetaryCreditSupplySources.ZarrinPalPaymentGate, Request.QueryString["Authority"].ToString(), WS.WebMethodLogin(R2CoreMClassSoftwareUsersManagement.GetNSSSystemUser().UserShenaseh, R2CoreMClassSoftwareUsersManagement.GetNSSSystemUser().UserPassword)); var InstancePaymentRequests = new R2CoreInstansePaymentRequestsManager(); var NSSPaymentRequest = InstancePaymentRequests.GetNSSPayment(PayId); while ((NSSPaymentRequest.RefId == string.Empty) & (NSSPaymentRequest.VerificationErrors == string.Empty)) { System.Threading.Thread.Sleep(500); NSSPaymentRequest = InstancePaymentRequests.GetNSSPayment(PayId); } if (NSSPaymentRequest.RefId != string.Empty) { var InstanceAES = new AESAlgorithmsManager(); var InstanceConfiguration = new R2CoreInstanceConfigurationManager(); var NSSSoftwareUser = InstanceSoftwareUsers.GetNSSUser(NSSPaymentRequest.SoftwareUserId); var NSSTrafficCard = InstanceTrafficCards.GetNSSTerafficCard(NSSSoftwareUser); Int64 CurrentCharge = InstanceMoneyWallets.GetMoneyWalletCharge(NSSTrafficCard); InstanceMoneyWallets.ActMoneyWalletNextStatus(NSSTrafficCard, BagPayType.AddMoney, NSSPaymentRequest.Amount, R2CoreParkingSystemAccountings.ChargeType, R2CoreMClassSoftwareUsersManagement.GetNSSSystemUser()); InstanceMoneyWalletCharge.SabtCharge(new R2StandardMoneyWalletChargeStructure(NSSTrafficCard, NSSPaymentRequest.Amount, InstanceSoftwareUsers.GetNSSSystemUser().UserId, "", _R2DateTime.GetCurrentDateTimeMilladi(), _R2DateTime.GetCurrentDateShamsiFull(), NSSPaymentRequest.Amount + CurrentCharge, 0, _R2DateTime.GetCurrentTime())); Int64 LastCharge = InstanceMoneyWallets.GetMoneyWalletCharge(NSSTrafficCard); ViewBag.IsSuccess = true; ViewBag.RefId = NSSPaymentRequest.RefId; ViewBag.Message1 = NSSTrafficCard.CardNo + " شاخص کیف پول "; ViewBag.Message2 = CurrentCharge.ToString() + " موجودی قبلی "; ViewBag.Message3 = NSSPaymentRequest.Amount.ToString() + " مبلغ شارژ "; ViewBag.Message4 = LastCharge.ToString() + " موجودی نهایی "; } else { ViewBag.IsSuccess = false; ViewBag.Message = NSSPaymentRequest.VerificationErrors; } } else { ViewBag.IsSuccess = false; ViewBag.Message = "Error! : Status: " + Request.QueryString["Status"].ToString(); } } else { ViewBag.IsSuccess = false; ViewBag.Message = "Invalid Input"; } } catch (Exception ex) { ViewBag.IsSuccess = false; ViewBag.Message = ex.Message; } return(View()); }