Example #1
0
        private void btnquery_Click(object sender, EventArgs e)
        {
            var type = Convert.ToInt32(btnquery.Tag) == 0 ? "交易号" : "备注";
            var str  = txtNumber.Text.Trim();

            if (string.IsNullOrEmpty(str))
            {
                MessageBox.Show($"{type}不能为空!");
                return;
            }
            var result = new QueryResult();
            var IsOK   = false;

            switch (type)
            {
            case "交易号":
                IsOK = AlipayHelper.QueryNo(str, out result);
                break;

            case "备注":
                IsOK = AlipayHelper.QueryRemark(str, out result);
                break;
            }
            if (IsOK)
            {
                var text = $"[交易号]{result.TradeNo}[备注信息]{result.Remark}[实付金额]{result.Amount1}[付款时间]{result.PaymentOn}\r\n";
                richTextBox1.AppendText(text);
            }
            else
            {
                var text = string.Format("{0}:{1}", "错误", result.Info) + "\r\n";
                richTextBox1.AppendText(text);
            }
        }
Example #2
0
 private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
 {
     //UserName = txtUserName.Text;
     PassWord = textPwd.Text;
     if (string.IsNullOrEmpty(PassWord))
     {
         return;
     }
     if (Regex.IsMatch(e.Url.ToString(), "https://auth.alipay.com/login/index.htm"))
     {
         Thread.Sleep(1000 * 2);
         Task.Factory.StartNew(() =>
         {
             webBrowser1.Invoke(new Action(() =>
             {
                 //var unameinput = webBrowser1.Document.GetElementById("J-input-user");
                 //unameinput.SetAttribute("autocomplete", "on");
                 //unameinput.SetAttribute("value", UserName);
                 var pwdinput = webBrowser1.Document.GetElementById("password_rsainput");
                 pwdinput.SetAttribute("value", PassWord);
                 var subbtn = webBrowser1.Document.GetElementById("J-login-btn");
                 subbtn.InvokeMember("click");
                 Thread.Sleep(1000 * 2);
                 AlipayHelper.IsLogin();
             }));
         });
     }
 }
Example #3
0
        public QueryResult QueryRemark(string s)
        {
            var result = new QueryResult();

            if (string.IsNullOrEmpty(s))
            {
                result.IsSuccess = false;
                result.Info      = "备注为空!";
                return(result);
            }
            AlipayHelper.QueryRemark(s, out result);
            return(result);
        }
Example #4
0
 public Form1()
 {
     InitializeComponent();
     AlipayHelper.Init(webBrowser1, Show);
     Task.Factory.StartNew(() =>
     {
         while (true)
         {
             Thread.Sleep(1000 * 60 * 5);
             Show("检查登录...");
             AlipayHelper.Refresh();
             Thread.Sleep(1000 * 2);
             if (!AlipayHelper.IsLogin())
             {
                 webBrowser1.Navigate("https://auth.alipay.com/login/index.htm");
             }
         }
     });
     HostStar();
 }
Example #5
0
        /// <summary>
        /// 页面加载
        /// </summary>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                SortedDictionary <string, string> sPara = AlipayHelper.GetRequestPost();
                Log4Net.WriteInfoLog("收到支付宝支付回调:" + new JavaScriptSerializer().Serialize(sPara));

                if (sPara.Count > 0)//判断是否有带返回参数
                {
                    bool verifyResult = AlipayHelper.Verify(sPara, Request.Form["notify_id"], Request.Form["sign"], Request.Form["sign_type"]);
                    if (verifyResult)
                    {
                        string outTradeNo  = Request.Form["out_trade_no"];
                        string tradeStatus = Request.Form["trade_status"];

                        if (tradeStatus == "TRADE_SUCCESS" || tradeStatus == "TRADE_FINISHED")
                        {
                            OnLinePayOrder order = new OnLinePayOrder
                            {
                                OrderID    = outTradeNo,
                                PayAddress = GameRequest.GetUserIP(),
                                Amount     = Convert.ToDecimal(Request.Form["total_fee"])
                            };

                            FacadeManage.aideTreasureFacade.FinishOnLineOrder(order);
                        }
                        Response.Write("success");
                    }
                    else
                    {
                        Response.Write("fail");
                    }
                }
                else
                {
                    Response.Write("无通知参数");
                }
            }
        }
Example #6
0
        public async Task <ActionResult> NotifyAsync(string notify_id, string sign, Guid out_trade_no, string trade_no,
                                                     decimal total_fee, string returnUrl = null)
        {
            if (AlipayHelper.VerifyParameter("q12vmic8884u68lgvgczye89ga4bizli", Request.Form) == false)
            {
                return(Content("fail"));
            }
            if (await AlipayHelper.VerifyNotify("2088021994748781", notify_id) == false)
            {
                return(Content("fail"));
            }

            var order = _context.Order.Find(out_trade_no);

            if (order == null)
            {
                return(Content("fail"));
            }
            if (order.PaySuccess)
            {
                return(Redirect(returnUrl));
            }

            //修改是否完成支付状态,获取支付成功后的订单后
            LockedHelp.ThreadLock(order.ID);
            try
            {
                order.TradeNo         = trade_no;
                order.PaySuccess      = true;
                order.EnumOrdelStatus = EnumOrdelStatus.已付款;
                _context.SaveChanges();
            }
            finally
            {
                LockedHelp.ThreadUnLocked(order.ID);
            }

            return(Redirect(returnUrl));
        }