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); }
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); }