Beispiel #1
0
        public TaskStatus Handle(IHttpProxy httpProxy)
        {
            var code = httpProxy.QueryString["code"];

            if (code != null)
            {
                var tranid   = httpProxy.QueryString["state"];
                var filepath = Helper.GetSaveFilePath() + "\\" + tranid;
                var dict     = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, string> >(System.IO.File.ReadAllText(filepath, System.Text.Encoding.UTF8));
                try
                {
                    System.IO.File.Delete(filepath);
                }
                catch { }
                string appId     = dict["appId"];
                string secret    = dict["secret"];
                string returnUrl = dict["returnUrl"];
                if (returnUrl.Contains("?"))
                {
                    returnUrl += "&";
                }
                else
                {
                    returnUrl += "?";
                }

                try
                {
                    var url      = $"https://api.weixin.qq.com/sns/oauth2/access_token?appid={System.Web.HttpUtility.UrlEncode(appId, Encoding.UTF8)}&secret={System.Web.HttpUtility.UrlEncode(secret, Encoding.UTF8)}&code={System.Web.HttpUtility.UrlEncode(code, Encoding.UTF8)}&grant_type=authorization_code";
                    var content  = Helper.GetWebContent(url, 8);
                    var tokenObj = Newtonsoft.Json.JsonConvert.DeserializeObject <weixin_token>(content);
                    if (tokenObj.errmsg != null)
                    {
                        returnUrl += $"err={System.Web.HttpUtility.UrlEncode(tokenObj.errmsg, Encoding.UTF8)}";
                    }
                    else
                    {
                        returnUrl += $"openid={System.Web.HttpUtility.UrlEncode(tokenObj.openid, Encoding.UTF8)}&access_token={System.Web.HttpUtility.UrlEncode(tokenObj.access_token, Encoding.UTF8)}";
                    }
                }
                catch (Exception ex)
                {
                    var err = ex;
                    while (err.InnerException != null)
                    {
                        err = err.InnerException;
                    }
                    returnUrl += $"err={System.Web.HttpUtility.UrlEncode(err.Message, Encoding.UTF8)}";
                }
                httpProxy.Redirect(returnUrl);
            }
            return(TaskStatus.Completed);
        }
Beispiel #2
0
        public TaskStatus Handle(IHttpProxy httpProxy)
        {
            var out_trade_no = httpProxy.QueryString["out_trade_no"];

            string returnurl;

            ReturnUrlDict.TryRemove(out_trade_no, out returnurl);
            if (returnurl.Contains("?") == false)
            {
                returnurl += "?";
            }
            else
            {
                returnurl += "&";
            }
            httpProxy.Redirect($"{returnurl}tradeId={System.Net.WebUtility.UrlEncode(out_trade_no)}");

            return(TaskStatus.Completed);
        }
        public TaskStatus Handle(IHttpProxy httpProxy)
        {
            var out_trade_no = httpProxy.QueryString["out_trade_no"];
            var returnurl    = httpProxy.QueryString["returnUrl"];

            if (returnurl.Contains("?") == false)
            {
                returnurl += "?";
            }
            else
            {
                returnurl += "&";
            }

            AlipayBarcode api       = new AlipayBarcode();
            var           payStatus = api.GetPayState(new PayParameter {
                TradeID = out_trade_no
            });

            httpProxy.Redirect($"{returnurl}tradeId={System.Net.WebUtility.UrlEncode(out_trade_no)}&payStatus=" + payStatus);

            return(TaskStatus.Completed);
        }