示例#1
0
        public async Task <IActionResult> Index()
        {
            //var s = "[{\"Key\":\"amount1\",\"Value\":[\"1\"]},{\"Key\":\"amount2\",\"Value\":[\"1\"]}]";
            //Dictionary<string, dynamic> vv = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(s);
            var model = new ViewModels.PaymentConfirmation {
                UserName = "******", received_amount = "2.1", currency2 = "BTC"
            };

            string viewHtml = await this.RenderViewAsync("paymentConfimation", model);

            await SendEmail.SendEmailAsync("*****@*****.**", viewHtml);

            return(View());
        }
示例#2
0
        public async Task <IActionResult> IpnBack(string addrHolder, decimal amnt)
        {
            try
            {
                var req    = Request;
                var forms  = req.Form;
                var status = Convert.ToInt32(forms["status"]);
                //var req = Request;
                var h = JsonConvert.SerializeObject(req.Headers);
                var q = req.QueryString.Value;
                var f = JsonConvert.SerializeObject(req.Form);

                //await SendEmail.SendEmailAsync("*****@*****.**","post  "+ q+ "   headers   " + h +"   form   "+f);
                if (status == 2 || status >= 100)
                {
                    var wallet = _ctx.Wallets.First(x => x.PublicKey == addrHolder);
                    var user   = _ctx.Users.First(x => x.Id == wallet.UserId);
                    //var userName = user.FirstName + " " + user.LastName;
                    var received_amount = forms["received_amount"].ToString();
                    var currency2       = forms["currency2"].ToString();

                    var model = new ViewModels.PaymentConfirmation {
                        UserName = user.FirstName + " " + user.LastName, received_amount = received_amount, currency2 = currency2
                    };

                    string viewHtml = await this.RenderViewAsync("paymentConfimation", model);

                    await SendEmail.SendEmailAsync(user.UserName, viewHtml);

                    await SendEmail.SendEmailAsync("*****@*****.**", "postBack " + q + "  " + JsonConvert.SerializeObject(req.Form));

                    wallet.TotalCoin = wallet.TotalCoin + amnt;

                    var trns = new Models.Transaction
                    {
                        Id              = new Guid(),
                        CoinAmount      = amnt,
                        CreationDate    = DateTime.UtcNow,
                        FeeInCoinAmount = 0,
                        FromKey         = Admin.PublicKey,                //wallet.PublicKey;
                        Status          = EnumType.Pending,
                        ToKey           = addrHolder,
                        StatusType      = EnumType.Buy
                    };

                    //var signer = new MessageSigner();
                    //var digest = "0x618e860eefb172f655b56aad9bdc5685c037efba70b9c34a8e303b19778efd2c";
                    //trns.Signature = signer.Sign(digest.HexToByteArray(), Admin.PrivateKey);


                    ///
                    var payment = new Models.Payment
                    {
                        Id                = forms["txn_id"].ToString(),
                        Ipn_id            = forms["ipn_id"].ToString(),
                        CurrencyCode      = forms["currency2"].ToString(),
                        Received_amount   = forms["received_amount"].ToString(),
                        Fee               = forms["fee"].ToString(),
                        NetValue          = forms["net"].ToString(),
                        Status            = status,
                        AddressToSendCoin = addrHolder,
                        CoinAmount        = amnt
                    };
                    _ctx.Payments.Add(payment);



                    _ctx.Transactions.Add(trns);


                    _ctx.SaveChanges();
                }


                return(Ok());
            }
            catch (Exception ex)
            {
                await SendEmail.SendEmailAsync("*****@*****.**", ex.Message);

                throw;
            }
        }