Ejemplo n.º 1
0
        private void ProcessCreditCardRequest()
        {
            //Set variables
            TransactionID = context.Request["tr_id"];
            SentHash      = context.Request["hash"];
            Amount        = context.Request["amount"];
            Status        = context.Request["card_transact_status"];
            CommandName   = context.Request["udf1"];
            Args          = context.Request["udf2"];

            string gatewayResult = context.Request["gateway_result"];

            //Check IPs
            // --> No check available for SolidTrustPay

            //Check security hash
            CheckIncomeHash();

            //Check duplicated transactions
            CheckIfNotDoneYet(TransactionID);

            //Check currency
            // --> No check available for SolidTrustPay

            //Check status
            CheckStatus(Status, "ACCEPTED");

            //All OK, let's proceed
            Assembly    assembly = Assembly.GetAssembly(typeof(IIpnHandler));
            var         type     = assembly.GetType(CommandName, true, true);
            IIpnHandler command  = Activator.CreateInstance(type) as IIpnHandler;

            command.HandleSolidTrustPay(Args, TransactionID, Amount);
        }
Ejemplo n.º 2
0
        public override void ProcessRequest()
        {
            string strRequest = context.Request.GetFromBodyString();

            //Set variables
            dynamic json = JObject.Parse(strRequest);

            Amount       = json.data.invoice.amount;
            Currency     = json.data.invoice.currency;
            State        = json.data.invoice.state;
            Id           = json.data.invoice.id;
            CustomFields = json.data.invoice.description;

            try
            {
                //Parse Args & CommandName
                var values        = HashingManager.Base64Decode(CustomFields);
                var splitedValues = values.Split('#');
                CommandName = splitedValues[0];
                Args        = splitedValues[1];

                //Check IPs
                //CheckIP();

                //Check security hash
                //CheckIncomeHash();

                //Check duplicated transactions
                CheckIfNotDoneYet(Id);

                //Check if we are the merchant
                //CheckMerchant(LocalBitcoinsAccountDetails.Exists(WalletId));

                //Check currency
                CheckCurrency(Currency);

                //Check status
                //CheckStatus(Status, "completed");

                if (!CheckInvoice())
                {
                    return;
                }

                //All OK, let's proceed
                Assembly    assembly = Assembly.GetAssembly(typeof(IIpnHandler));
                var         type     = assembly.GetType(CommandName, true, true);
                IIpnHandler command  = Activator.CreateInstance(type) as IIpnHandler;

                command.HandleLocalBitcoins(Args, Id, Amount);
            }
            catch (Exception ex)
            {
                ErrorLogger.Log(ex);
                context.Response.Write(Id + "|error");
            }
        }
Ejemplo n.º 3
0
        public override void ProcessRequest()
        {
            string pre1 = context.Request["pre1"];
            string pre2 = context.Request["pre2"];

            pre1 = HashingManager.Base64Decode(pre1);
            string orderId    = pre1.Split('+')[0];
            string statusCode = pre1.Split('+')[1];

            string key = orderId + "+" + statusCode;

            key = HashingManager.Base64Encode(key);
            string md5String = HashingManager.GenerateMD5(key + PaparaAccountDetails.GetSecretKey());

            //Papara transaction OK check
            if (md5String == pre2)
            {
                //Set variables
                OrderID = orderId;

                try
                {
                    PaparaOrder Order = PaparaOrder.Get(Convert.ToInt32(OrderID));

                    Args          = Order.Args;
                    TransactionID = OrderID;
                    Amount        = Order.Amount.ToShortClearString();
                    CommandName   = Order.CommandName;

                    //Check duplicated transactions
                    CheckIfNotDoneYet(OrderID);

                    //All OK, let's proceed
                    Assembly    assembly = Assembly.GetAssembly(typeof(IIpnHandler));
                    var         type     = assembly.GetType(CommandName, true, true);
                    IIpnHandler command  = Activator.CreateInstance(type) as IIpnHandler;

                    command.HandlePapara(Args, TransactionID, Amount);

                    Order.IsPaid = true;
                    Order.Save();

                    context.Response.Redirect(ButtonGenerationStrategy.SUCCESS_URL);
                }
                catch (Exception ex)
                {
                    ErrorLogger.Log(ex);
                    context.Response.Redirect(ButtonGenerationStrategy.FAILURE_URL);
                }
            }
            else
            {
                context.Response.Redirect(ButtonGenerationStrategy.FAILURE_URL);
            }
        }
Ejemplo n.º 4
0
        public override void ProcessRequest()
        {
            //Set variables
            TransactionID   = context.Request["m_operation_id"];
            OrderID         = context.Request["m_orderid"];
            PaymentMethod   = context.Request["m_operation_ps"];
            SentHash        = context.Request["m_sign"];
            Amount          = context.Request["m_amount"];
            Currency        = context.Request["m_curr"];
            MerchantAccount = context.Request["m_shop"];
            Status          = context.Request["m_status"];
            Args            = context.Request["m_desc"];

            try
            {
                //Parse Args
                Args        = HashingManager.Base64Decode(Args);
                Args        = Args.Substring(Args.IndexOf("**") + 2);
                CommandName = Args.Substring(0, Args.IndexOf("#"));
                Args        = Args.Substring(Args.IndexOf("#") + 1);

                //Check IPs
                CheckIP("185.71.65.92,185.71.65.189,149.202.17.210");

                //Check security hash
                CheckIncomeHash();

                //Check duplicated transactions
                CheckIfNotDoneYet(TransactionID);

                //Check if we are the merchant
                CheckMerchant(PayeerAccountDetails.Exists(MerchantAccount));

                //Check currency
                CheckCurrency(Currency);

                //Check status
                CheckStatus(Status, "success");

                //All OK, let's proceed
                Assembly    assembly = Assembly.GetAssembly(typeof(IIpnHandler));
                var         type     = assembly.GetType(CommandName, true, true);
                IIpnHandler command  = Activator.CreateInstance(type) as IIpnHandler;

                command.HandlePayeer(Args, TransactionID, Amount);

                context.Response.Write(OrderID + "|success");
            }
            catch (Exception ex)
            {
                ErrorLogger.Log(ex);
                context.Response.Write(OrderID + "|error");
            }
        }
Ejemplo n.º 5
0
        public override void ProcessRequest()
        {
            string  strRequest = context.Request.GetFromBodyString();
            JObject request    = JObject.Parse(strRequest);

            //Set variables

            Category    = request["category"].ToString();
            ProductName = request["productName"].ToString();
            Value       = request["value"].ToString();
            Status      = request["status"].ToString();
            var Metadata = request["requestMetadata"];

            CommandName = Metadata["command"].ToString();
            Args        = Metadata["args"].ToString();
            Amount      = Value.Split(' ')[1];
            Currency    = Value.Split(' ')[0];

            if (Category == "MobileCheckout")
            {
                TransactionID = request["providerRefId"].ToString();

                try
                {
                    //Check IPs
                    //CheckIP();

                    //Check duplicated transactions
                    CheckIfNotDoneYet(TransactionID);

                    //Check if we are the merchant
                    CheckMerchant(MPesaAccountDetails.Exists(ProductName));

                    //Check currency
                    CheckCurrency(Currency);

                    //Check status
                    CheckStatus(Status, "Success");

                    //All OK, let's proceed
                    Assembly    assembly = Assembly.GetAssembly(typeof(IIpnHandler));
                    var         type     = assembly.GetType(CommandName, true, true);
                    IIpnHandler command  = Activator.CreateInstance(type) as IIpnHandler;

                    command.HandleMPesa(Args, TransactionID, Amount);
                }
                catch (Exception ex)
                {
                    ErrorLogger.Log(ex);
                }
            }
        }
Ejemplo n.º 6
0
        public override void ProcessRequest()
        {
            //Set variables
            TransactionID   = context.Request.QueryString["ac_transfer"];
            OrderID         = context.Request.QueryString["ac_order_id"];
            PaymentMethod   = context.Request.QueryString["ac_ps"];
            SentHash        = context.Request.QueryString["ac_hash"];
            Amount          = context.Request.QueryString["ac_merchant_amount"];
            Currency        = context.Request.QueryString["ac_merchant_currency"];
            MerchantAccount = context.Request.QueryString["ac_dest_wallet"];
            Status          = context.Request.QueryString["ac_transaction_status"];
            Args            = context.Request.QueryString["acm_args"];
            CommandName     = context.Request.QueryString["acm_command"];

            try
            {
                //Check IPs
                //

                //Check security hash
                CheckIncomeHash();

                //Check duplicated transactions
                CheckIfNotDoneYet(TransactionID);

                //Check if we are the merchant
                CheckMerchant(AdvCashAccountDetails.Exists(MerchantAccount.Replace(" ", "")));

                //Check currency
                CheckCurrency(Currency);

                //Check status
                CheckStatus(Status, "COMPLETED");

                //All OK, let's proceed
                Assembly    assembly = Assembly.GetAssembly(typeof(IIpnHandler));
                var         type     = assembly.GetType(CommandName, true, true);
                IIpnHandler command  = Activator.CreateInstance(type) as IIpnHandler;

                command.HandleAdvCash(Args, TransactionID, Amount);

                context.Response.Write(OrderID + "|success");
            }
            catch (Exception ex)
            {
                ErrorLogger.Log(ex);
                context.Response.Write(OrderID + "|error");
            }
        }
Ejemplo n.º 7
0
        public override void ProcessRequest()
        {
            if (context.Request["card_transact_status"] != null &&
                context.Request["gateway_result"] != null)
            {
                ProcessCreditCardRequest();
            }
            else
            {
                //Set variables
                TransactionID   = context.Request["tr_id"];
                SentHash        = context.Request["hash"];
                Amount          = context.Request["amount"];
                PayerAccount    = context.Request["payerAccount"];
                MerchantAccount = context.Request["merchantAccount"];
                Status          = context.Request["status"];
                CommandName     = context.Request["user1"];
                Args            = context.Request["user2"];

                //Check IPs
                // --> No check available for SolidTrustPay

                //Check security hash
                CheckIncomeHash();

                //Check duplicated transactions
                CheckIfNotDoneYet(TransactionID);

                //Check if we are the merchant
                CheckMerchant(SolidTrustPayAccountDetails.Exists(MerchantAccount));

                //Check currency
                // --> No check available for SolidTrustPay

                //Check status
                CheckStatus(Status, "COMPLETE");

                //All OK, let's proceed
                Assembly    assembly = Assembly.GetAssembly(typeof(IIpnHandler));
                var         type     = assembly.GetType(CommandName, true, true);
                IIpnHandler command  = Activator.CreateInstance(type) as IIpnHandler;

                command.HandleSolidTrustPay(Args, TransactionID, Amount);
            }
        }
Ejemplo n.º 8
0
        private static void ProcessPayment(HttpRequest request)
        {
            if (!PerfectMoneyAccountDetails.Exists(request["PAYEE_ACCOUNT"]))
            {
                throw new MsgException("PerfectMoney account not exists: " + request["PAYEE_ACCOUNT"]);
            }
            if (!CheckHash(request))
            {
                throw new MsgException("Hashes are different");
            }
            if (!CheckIfNotDoneYet(request))
            {
                throw new MsgException("Prevention against many activities");
            }

            string commandName = request["ITEM_COMMAND"];

            Assembly    assembly = Assembly.GetAssembly(typeof(IIpnHandler));
            var         type     = assembly.GetType(commandName, true, true);
            IIpnHandler command  = Activator.CreateInstance(type) as IIpnHandler;

            command.HandlePerfectMoney(request);
        }
Ejemplo n.º 9
0
        public override void ProcessRequest()
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://checkout.okpay.com/ipn-verify");

            //Set values for the request back
            req.Method      = "POST";
            req.ContentType = "application/x-www-form-urlencoded";
            string strRequest = context.Request.GetFromBodyString();

            strRequest       += "&ok_verify=true";
            req.ContentLength = Encoding.UTF8.GetByteCount(strRequest);

            //Send the request to OKPAY and get the response
            string strResponse = "";

            using (StreamWriter streamOut = new StreamWriter(req.GetRequestStream()))
            {
                streamOut.Write(strRequest);
                streamOut.Close();
                using (StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream()))
                {
                    strResponse = streamIn.ReadToEnd();
                    streamIn.Close();
                }
            }

            if (strResponse == "VERIFIED")
            {
                //Set variables
                TransactionID = context.Request["ok_ipn_id"];
                OrderID       = context.Request["ok_invoice"];
                PaymentMethod = context.Request["ok_txn_payment_method"];
                Amount        = context.Request["ok_txn_net"];
                Currency      = context.Request["ok_txn_currency"];
                WalletId      = context.Request["ok_receiver_wallet"];
                Status        = context.Request["ok_txn_status"];
                Args          = context.Request["ok_item_1_custom_2_value"];
                CommandName   = context.Request["ok_item_1_custom_1_value"];

                try
                {
                    //Parse Args
                    Args = HashingManager.Base64Decode(Args);

                    //Check IPs
                    //CheckIP();

                    //Check security hash
                    //CheckIncomeHash();

                    //Check duplicated transactions
                    CheckIfNotDoneYet(TransactionID);

                    //Check if we are the merchant
                    CheckMerchant(OKPayAccountDetails.Exists(WalletId));

                    //Check currency
                    CheckCurrency(Currency);

                    //Check status
                    CheckStatus(Status, "completed");

                    //All OK, let's proceed
                    Assembly    assembly = Assembly.GetAssembly(typeof(IIpnHandler));
                    var         type     = assembly.GetType(CommandName, true, true);
                    IIpnHandler command  = Activator.CreateInstance(type) as IIpnHandler;

                    command.HandleOKPay(Args, TransactionID, Amount);
                }
                catch (Exception ex)
                {
                    ErrorLogger.Log(ex);
                    context.Response.Write(OrderID + "|error");
                }
            }
            else if (strResponse == "INVALID")
            {
                context.Response.Write(OrderID + "|invalid");
            }
            else
            {
                context.Response.Write(OrderID + "|other");
            }
        }
Ejemplo n.º 10
0
        public override void ProcessRequest()
        {
            try
            {
                string secretKey = HashingManager.GenerateMD5(AppSettings.Offerwalls.UniversalHandlerPassword + "Neteller");

                string documentContents;
                using (Stream receiveStream = context.Request.InputStream)
                {
                    using (StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8))
                    {
                        documentContents = readStream.ReadToEnd();
                    }
                }

                JObject obj = JObject.Parse(documentContents);

                //Parse Args
                Status        = obj["eventType"].ToString();
                SentHash      = obj["key"].ToString();
                TransactionID = obj["id"].ToString();
                //Currency
                //Amount
                //Args?
                //CommandName

                Args        = HashingManager.Base64Decode(Args);
                Args        = Args.Substring(Args.IndexOf("**") + 2);
                CommandName = "Prem.PTC.Payments." + Args.Substring(0, Args.IndexOf("#"));
                Args        = Args.Substring(Args.IndexOf("#") + 1);

                //Check IPs
                //Not available in Neteller

                //Check hash
                CheckHash(secretKey, SentHash);

                //Check duplicated transactions
                CheckIfNotDoneYet(TransactionID);

                //Check if we are the merchant
                //Not available in Neteller

                //Check currency
                CheckCurrency(Currency);

                //Check status
                CheckStatus(Status, "order_payment_succeeded");

                //All OK, let's proceed
                Assembly    assembly = Assembly.GetAssembly(typeof(IIpnHandler));
                var         type     = assembly.GetType(CommandName, true, true);
                IIpnHandler command  = Activator.CreateInstance(type) as IIpnHandler;

                command.HandleNeteller(Args, TransactionID, Amount);

                context.Response.Write("OK");
            }
            catch (Exception ex)
            {
                ErrorLogger.Log(ex);
                context.Response.Write("Error");
            }
        }