Exemple #1
0
        public PaymentConnectResponse Connect(long invoiceId, long amount, string callback)
        {
            var result = new PaymentConnectResponse()
            {
                GatewayUrl = GatewayURL,
                Status = PaymentStatus.Unkonwn,
                Provider = PaymentProvider.Mellat,
                Parameters = new Dictionary<string, string>()
            };

            try
            {
                BypassCertificateError();
                WebUI.MellatBank.PaymentGatewayImplService pg = new WebUI.MellatBank.PaymentGatewayImplService();

                //MellatBank.PaymentGatewayClient bp = new WebUI.MellatBank.PaymentGatewayClient();

                var bankResult = pg.bpPayRequest(TerminalId, UserName, Password,
                    Convert.ToInt64(invoiceId), amount, DefaultDate(), DefaultTime(), "", callback, 0).Split(',');

                result.Status = PaymentStatusFromString(bankResult[0]);

                if (result.Status == PaymentStatus.Success)
                {
                    result.Parameters.Add("RefId", bankResult[1]);

                    result.Parameters.Add("HTML",
                        File.ReadAllText(System.Web.HttpContext.Current.Request.MapPath(@"~\Services\Payment\connect.html"))
                        .Replace("%Result%", JsonConvert.SerializeObject(result))
                    );
                }
                else
                {
                    result.Parameters.Add("Code", PaymentStatusToString(result.Status));

                    result.Parameters.Add("Description", result.Status.ToString());

                    result.Parameters.Add("HTML",
                        File.ReadAllText(System.Web.HttpContext.Current.Request.MapPath(@"~\Services\Payment\error.html"))
                        .Replace("%Result%", JsonConvert.SerializeObject(result))
                    );
                }
            }
            catch (Exception)
            {

            }

            return result;
        }
Exemple #2
0
        public PaymentVerifyResponse Verify(JObject providerRequest)
        {
            var result = new PaymentVerifyResponse()
            {
                Status = PaymentStatus.Unkonwn,
                Parameters = new Dictionary<string, string>() { }
            };

            var refId = ((JValue)(providerRequest["RefId"])).Value.ToString();
            var resCode = ((JValue)(providerRequest["ResCode"])).Value.ToString();
            var saleOrderId = long.Parse(((JValue)(providerRequest["SaleOrderId"])).Value.ToString());
            var saleReferenceId = long.Parse(((JValue)(providerRequest["SaleReferenceId"])).Value.ToString());

            if (PaymentStatusFromString(resCode) == PaymentStatus.Success)
            {
                try
                {
                    BypassCertificateError();

                    WebUI.MellatBank.PaymentGatewayImplService bp = new WebUI.MellatBank.PaymentGatewayImplService();

                    var bankResult = bp.bpVerifyRequest(TerminalId, UserName, Password, saleOrderId, saleOrderId, saleReferenceId);

                    if (!string.IsNullOrEmpty(bankResult))
                    {
                        result.Status = PaymentStatusFromString(bankResult);
                    }
                    else
                    {
                        bankResult = bp.bpInquiryRequest(TerminalId, UserName, Password, saleOrderId, saleOrderId, saleReferenceId);

                        if (!string.IsNullOrEmpty(bankResult))
                        {
                            result.Status = PaymentStatusFromString(bankResult);
                        }
                        else
                        {
                            bankResult = bp.bpReversalRequest(TerminalId, UserName, Password, saleOrderId, saleOrderId, saleReferenceId);

                            result.Status = !string.IsNullOrEmpty(bankResult) ? PaymentStatusFromString(bankResult) : PaymentStatus.UnSuccess;
                        }
                    }
                }
                catch (Exception)
                {

                }
            }

            result.Parameters.Add("Code", PaymentStatusToString(result.Status));

            result.Parameters.Add("Description", result.Status.ToString());

            result.Parameters.Add("RefId", refId);

            result.Parameters.Add("ResCode", resCode);

            result.Parameters.Add("SaleOrderId", saleOrderId.ToString());

            result.Parameters.Add("SaleReferenceId", saleReferenceId.ToString());

            result.Parameters.Add("HTML",
                File.ReadAllText(System.Web.HttpContext.Current.Request.MapPath(@"~\Payment\callback.html"))
                .Replace("%Result%", JsonConvert.SerializeObject(result))
            );

            if (false)
            {
                // ??? InvoiceProvider.Finalize(saleOrderId, "Mellat", refId, saleReferenceId.ToString());
            }

            return result;
        }