public static PaymentRefundResult CreateRefundResult(string webServiceResponse, MessagesOptions messagesOptions) { var status = XmlHelper.GetNodeValueFromXml(webServiceResponse, "Status", "https://pec.Shaparak.ir/NewIPGServices/Reversal/ReversalService"); var message = XmlHelper.GetNodeValueFromXml(webServiceResponse, "Message", "https://pec.Shaparak.ir/NewIPGServices/Reversal/ReversalService"); var token = XmlHelper.GetNodeValueFromXml(webServiceResponse, "Token", "https://pec.Shaparak.ir/NewIPGServices/Reversal/ReversalService"); if (message.IsNullOrEmpty()) { message = $"Error {status}"; } var result = new PaymentRefundResult { IsSucceed = status == "0", Message = message }; result.DatabaseAdditionalData.Add("token", token); return(result); }
public static PaymentRequestResult CreateRequestResult(string webServiceResponse, IHttpContextAccessor httpContextAccessor, ParsianGatewayAccount account, MessagesOptions messagesOptions) { var token = XmlHelper.GetNodeValueFromXml(webServiceResponse, "Token", "https://pec.Shaparak.ir/NewIPGServices/Sale/SaleService"); var status = XmlHelper.GetNodeValueFromXml(webServiceResponse, "Status", "https://pec.Shaparak.ir/NewIPGServices/Sale/SaleService"); var message = XmlHelper.GetNodeValueFromXml(webServiceResponse, "Message", "https://pec.Shaparak.ir/NewIPGServices/Sale/SaleService"); var isSucceed = !status.IsNullOrEmpty() && status == "0" && !token.IsNullOrEmpty(); if (!isSucceed) { if (message == null) { message = messagesOptions.PaymentFailed; } return(PaymentRequestResult.Failed(message, account.Name)); } var paymentPageUrl = $"{PaymentPageUrl}?Token={token}"; var result = PaymentRequestResult.Succeed(new GatewayRedirect(httpContextAccessor, paymentPageUrl), account.Name); result.DatabaseAdditionalData.Add("token", token); return(result); }
public static PaymentVerifyResult CreateVerifyResult(string webServiceResponse, MessagesOptions messagesOptions) { var status = XmlHelper.GetNodeValueFromXml(webServiceResponse, "Status", "https://pec.Shaparak.ir/NewIPGServices/Confirm/ConfirmService"); var rrn = XmlHelper.GetNodeValueFromXml(webServiceResponse, "RRN", "https://pec.Shaparak.ir/NewIPGServices/Confirm/ConfirmService"); var token = XmlHelper.GetNodeValueFromXml(webServiceResponse, "Token", "https://pec.Shaparak.ir/NewIPGServices/Confirm/ConfirmService"); var isSucceed = !status.IsNullOrEmpty() && status == "0" && !rrn.IsNullOrEmpty(); var message = isSucceed ? messagesOptions.PaymentSucceed : $"Error in Verifying section: {status}"; var result = new PaymentVerifyResult { IsSucceed = isSucceed, TransactionCode = rrn, Message = message }; result.DatabaseAdditionalData.Add("token", token); return(result); }
public static PaymentVerifyResult CreateVerifyResult(string webServiceResponse, InvoiceContext context, SamanCallbackResult callbackResult, MessagesOptions messagesOptions) { var result = XmlHelper.GetNodeValueFromXml(webServiceResponse, "result"); // This result is actually: TotalAmount // it must be equals to TotalAmount in database. var numericResult = Convert.ToInt64(result); var isSuccess = numericResult > 0 && numericResult == (long)context.Payment.Amount; var message = isSuccess ? messagesOptions.PaymentSucceed : SamanResultTranslator.Translate(numericResult, messagesOptions); return(new PaymentVerifyResult { IsSucceed = isSuccess, TransactionCode = callbackResult.TransactionId, Message = message }); }
public static SamanCallbackResult CreateCallbackResult(HttpRequest httpRequest, MessagesOptions messagesOptions) { var isSuccess = false; PaymentVerifyResult verifyResult = null; StringValues referenceId; StringValues transactionId; httpRequest.TryGetParam("state", out var state); if (state.IsNullOrEmpty()) { verifyResult = PaymentVerifyResult.Failed(messagesOptions.InvalidDataReceivedFromGateway); } else { httpRequest.TryGetParam("ResNum", out referenceId); httpRequest.TryGetParam("RefNum", out transactionId); isSuccess = state.Equals("OK", StringComparison.OrdinalIgnoreCase); if (!isSuccess) { var message = SamanStateTranslator.Translate(state, messagesOptions); verifyResult = PaymentVerifyResult.Failed(message); } } return(new SamanCallbackResult { IsSucceed = isSuccess, ReferenceId = referenceId, TransactionId = transactionId, Result = verifyResult }); }
public static PaymentVerifyResult CreateVerifyResult(MelliApiVerifyResult result, MessagesOptions messagesOptions) { if (result == null) { return(PaymentVerifyResult.Failed(messagesOptions.UnexpectedErrorText)); } string message; if (!result.Description.IsNullOrEmpty()) { message = result.Description; } else { message = MelliVerifyResultTranslator.Translate(result.ResCode, messagesOptions); } var status = result.ResCode == SuccessCode ? PaymentVerifyResultStatus.Succeed : PaymentVerifyResultStatus.Failed; return(new PaymentVerifyResult { Status = status, TransactionCode = result.RetrivalRefNo, Message = message }); }