/// <summary> /// 刷卡支付 /// 提交被扫支付 /// </summary> /// <param name="dataInfo"></param> /// <returns></returns> public static MicropayResult MicroPay(TenPayV3MicroPayRequestData dataInfo) { var urlFormat = ReurnPayApiUrl("https://api.mch.weixin.qq.com/{0}pay/micropay"); var data = dataInfo.PackageRequestHandler.ParseXML(); var formDataBytes = data == null ? new byte[0] : Encoding.UTF8.GetBytes(data); MemoryStream ms = new MemoryStream(); ms.Write(formDataBytes, 0, formDataBytes.Length); ms.Seek(0, SeekOrigin.Begin);//设置指针读取位置 var resultXml = RequestUtility.HttpPost(urlFormat, null, ms); return(new MicropayResult(resultXml)); }
public static PictureResult UploadImg(string accessToken, string fileName) { var urlFormat = "https://api.weixin.qq.com/merchant/common/upload_img?access_token={0}&filename={1}"; var url = string.IsNullOrEmpty(accessToken) ? urlFormat : string.Format(urlFormat, accessToken, fileName); var json = new PictureResult(); using (var fs = FileHelper.GetFileStream(fileName)) { var jsonText = RequestUtility.HttpPost(url, null, fs); json = Post.GetResult <PictureResult>(jsonText); } return(json); }
/// <summary> /// 用于商户的企业付款操作进行结果查询,返回付款操作详细结果。 /// </summary> /// <param name="dataInfo"></param> /// <param name="timeOut"></param> /// <returns></returns> public static GetTransferInfoResult GetTransferInfo(TenPayV3GetTransferInfoRequestData dataInfo, int timeOut = Config.TIME_OUT) { var urlFormat = ReurnPayApiUrl("https://api.mch.weixin.qq.com/{0}mmpaymkttransfers/gettransferinfo"); var data = dataInfo.PackageRequestHandler.ParseXML(); var formDataBytes = data == null ? new byte[0] : Encoding.UTF8.GetBytes(data); MemoryStream ms = new MemoryStream(); ms.Write(formDataBytes, 0, formDataBytes.Length); ms.Seek(0, SeekOrigin.Begin);//设置指针读取位置 var result = RequestUtility.HttpPost(urlFormat, null, ms, timeOut: timeOut); return(new GetTransferInfoResult(result)); }
/// <summary> /// /// </summary> public static void BulidConfirmAddress(StringBuilder mailContent, Account to, int overWorkID) { string url = string.Format("{0}?accountId={1}&Id={2}", RequestUtility.OverWorkMailConfirmAddress(), SecurityUtil.DECEncrypt(to.Id.ToString()), SecurityUtil.DECEncrypt(overWorkID.ToString())); mailContent.Append( "您可点击 <a href='" + url + "' style='color:#0000FF;text-decoration:underline;'>同意</a> 快速审批<br/>"); mailContent.Append("您也可以点击以下链接快速审批通过:<br/>"); mailContent.Append("<a href='" + url + "' style='color:#0000FF;text-decoration:underline;'>" + url + "</a><br/>"); mailContent.Append("如果您不通过此申请,可登录以下网址进行审批<br/>"); }
/// <summary> ///【异步方法】 用于企业向微信用户个人付款 /// 目前支持向指定微信用户的openid付款 /// </summary> /// <param name="dataInfo">微信支付需要post的xml数据</param> /// <param name="timeOut"></param> /// <returns></returns> public static async Task <TransfersResult> TransfersAsync(TenPayV3TransfersRequestData dataInfo, int timeOut = Config.TIME_OUT) { var urlFormat = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers"; var data = dataInfo.PackageRequestHandler.ParseXML(); var formDataBytes = data == null ? new byte[0] : Encoding.UTF8.GetBytes(data); MemoryStream ms = new MemoryStream(); ms.Write(formDataBytes, 0, formDataBytes.Length); ms.Seek(0, SeekOrigin.Begin);//设置指针读取位置 var result = await RequestUtility.HttpPostAsync(urlFormat, null, ms, timeOut : timeOut); return(new TransfersResult(result)); }
public override async Task <ActionResponse> ExecuteActionAsync(ActionRequest request) { var azureToken = request.DataStore.GetJson("AzureToken", "access_token"); string environmentId = request.DataStore.GetValue("PowerAppEnvironment"); string sqlConnectionId = request.DataStore.GetValue("PowerAppSqlConnectionId"); if (environmentId != null && sqlConnectionId != null) { ActionResponse wrangledFile = await RequestUtility.CallAction(request, "Microsoft-WranglePowerApp"); if (wrangledFile.IsSuccess && wrangledFile.Body != null) { string path = wrangledFile.Body.ToString(); AzureHttpClient ahc = new AzureHttpClient(azureToken); PowerAppResourceStorage resourceStorage = await ahc.Request <PowerAppResourceStorage>(HttpMethod.Post, string.Format(PowerAppUtility.URL_POWERAPPS_GENERATE_RESOURCE_STORAGE, JsonUtility.GetWebToken(azureToken, "oid")), JsonUtility.Serialize <PowerAppEnvironmentWrapper>(new PowerAppEnvironmentWrapper(environmentId))); if (!string.IsNullOrEmpty(path) && resourceStorage != null && !string.IsNullOrEmpty(resourceStorage.SharedAccessSignature)) { string uri = resourceStorage.SharedAccessSignature.Replace("?", "/document.msapp?"); CloudBlockBlob blob = new CloudBlockBlob(new Uri(uri)); using (WebClient wc = new WebClient()) { byte[] file = wc.DownloadData(path); await blob.UploadFromStreamAsync(new MemoryStream(file)); PowerAppMetadata metadata = await ahc.Request <PowerAppMetadata>(HttpMethod.Post, PowerAppUtility.URL_POWERAPPS_PUBLISH_APP, JsonUtility.Serialize <PowerAppPublish>(new PowerAppPublish(uri, $"TwitterTemplate{RandomGenerator.GetDateStamp()}", environmentId, sqlConnectionId))); if (metadata != null) { if (await ahc.IsSuccess(HttpMethod.Post, string.Format(PowerAppUtility.URL_POWERAPPS_SQL_CONNECTION_UPDATE, sqlConnectionId, environmentId), JsonUtility.Serialize <PowerAppSqlConnectionUpdate>(new PowerAppSqlConnectionUpdate(metadata.Name)))) { request.DataStore.AddToDataStore("PowerAppUri", string.Format(PowerAppUtility.URL_POWERAPPS_WEB, metadata.Name)); } } } } } } return(new ActionResponse(ActionStatus.Success)); }
public static PictureResult UploadImg(string accessToken, string fileName) { var urlFormat = WxConfig.ApiMpHost + "/merchant/common/upload_img?access_token={0}&filename={1}"; var url = string.IsNullOrEmpty(accessToken) ? urlFormat : string.Format(urlFormat, accessToken.AsUrlData(), fileName.AsUrlData()); var json = new PictureResult(); using (var fs = FileHelper.GetFileStream(fileName)) { var jsonText = RequestUtility.HttpPost(url, null, fs); json = Senparc.Weixin.HttpUtility.Post.GetResult <PictureResult>(jsonText); } return(json); }
/// <summary> /// 发送审核结束邮件 /// </summary> public void ConfirmOverMail() { //MailBody mailBody = new MailBody(); //mailBody.Subject = string.Format("{0}的请假单审核结束,请查看审核结果", _LeaveRequest.Account.Name); //StringBuilder body = new StringBuilder(); //body.AppendFormat(LeaveRequestMail.BuildBody(_LeaveRequest, _LeaveRequestItem)); //mailBody.Body = body.ToString(); //mailBody.IsHtmlBody = true; //mailBody.MailTo = RequestUtility.GetMail(_LeaveRequest.Account); //List<string> mailToList = new List<string>(); //foreach (Account account in _DiyProcessAccountlist) //{ // Account innaccount = _AccountBll.GetAccountById(account.Id); // mailToList.AddRange(RequestUtility.GetMail(innaccount)); //} //mailBody.MailCc = mailToList; //_MailGateWay.Send(mailBody); bool over = true; foreach (LeaveRequestItem item in _LeaveRequest.LeaveRequestItems) { over &= item.Status.Id == RequestStatus.ApproveCancelFail.Id || item.Status.Id == RequestStatus.ApproveCancelPass.Id || item.Status.Id == RequestStatus.ApproveFail.Id || item.Status.Id == RequestStatus.ApprovePass.Id; } if (over) { MailBody mailBody = new MailBody(); mailBody.Subject = string.Format("审核完毕{0}的请假单", _LeaveRequest.Account.Name); StringBuilder body = new StringBuilder(); body.AppendFormat(LeaveRequestMail.BuildBody(_LeaveRequest)); mailBody.Body = body.ToString(); mailBody.IsHtmlBody = true; mailBody.MailTo = RequestUtility.GetMail(_LeaveRequest.Account); mailBody.MailCc = SendMailToMailCC(); foreach (LeaveRequestItem item in _LeaveRequest.LeaveRequestItems) { if (item.Status.Id == RequestStatus.ApprovePass.Id || item.Status.Id == RequestStatus.ApproveCancelFail.Id) { mailBody.MailCc.AddRange(SendMailToHRMailCC()); break; } } _MailGateWay.Send(mailBody); } }
/// <summary> /// 向微信公众平台API发送信息的公共方法 /// </summary> /// <param name="urlFormat">API接口地址格式</param> /// <param name="accessToken">微信公众号访问授权AccessToken</param> /// <param name="data">POST提交的数据</param> /// <param name="querys">除了AccessToken还需要传递的其他参数</param> /// <returns></returns> public static T Post <T>(string accessToken, string urlFormat, object data, params string[] querys) { var url = GetApiUrl(urlFormat, accessToken, querys); SerializerHelper serializerHelper = new SerializerHelper(); var jsonString = serializerHelper.GetJsonString(data); using (MemoryStream ms = new MemoryStream()) { var bytes = Encoding.UTF8.GetBytes(jsonString); ms.Write(bytes, 0, bytes.Length); ms.Seek(0, SeekOrigin.Begin); string result = RequestUtility.HttpPost(url, ms, null); return(GetResult <T>(result)); } }
static void Main(string[] args) { //get String url = "http://10.1.1.243:9980/eagle/metric/list"; //get 1 String result1 = RequestUtility.HttpGet(url); Console.WriteLine(result1); System.Threading.Thread.Sleep(1000); //get 2 String result2 = RequestUtility.HttpGetTimeOut(url); Console.WriteLine(result2); System.Threading.Thread.Sleep(1000); }
/// <summary> /// 统一支付接口 /// 统一支付接口,可接受JSAPI/NATIVE/APP 下预支付订单,返回预支付订单号。NATIVE 支付返回二维码code_url。 /// </summary> /// <param name="dataInfo">微信支付需要post的Data数据</param> /// <param name="timeOut"></param> /// <returns></returns> public static UnifiedorderResult Unifiedorder(TenPayV3UnifiedorderRequestData dataInfo, int timeOut = Config.TIME_OUT) { var urlFormat = "https://api.mch.weixin.qq.com/pay/unifiedorder"; var data = dataInfo.PackageRequestHandler.ParseXML();//获取XML //throw new Exception(data.HtmlEncode()); MemoryStream ms = new MemoryStream(); var formDataBytes = data == null ? new byte[0] : Encoding.UTF8.GetBytes(data); ms.Write(formDataBytes, 0, formDataBytes.Length); ms.Seek(0, SeekOrigin.Begin);//设置指针读取位置 var resultXml = RequestUtility.HttpPost(urlFormat, null, ms, timeOut: timeOut); return(new UnifiedorderResult(resultXml)); }
private void Init() { OverWork OverWork = _IOverWork.GetOverWorkByOverWorkID(_View.ApplicationID); _View.EmployeeName = OverWork.Account.Name; _View.EmployeeID = OverWork.Account.Id; _View.TimeSpan = OverWork.FromDate + " ~ " + OverWork.ToDate; _View.CostTime = OverWork.CostTime.ToString(); _View.OutLocation = OverWork.ProjectName; _View.OperationType = OperationType.Cancel; _View.ApproveStatusSource = RequestUtility.GetCancelChose(); _View.Reason = OverWork.Reason; _View.ApplicationItemList = OverWork.Item; }
private void BuildSubmitMailBody(MailBody mailBody, Account to, bool addConfirmAddress) { string subject = string.Format("请审批{0}的外出申请,", _OutApplication.Account.Name); StringBuilder mailContent = new StringBuilder(); mailContent.Append(OutApplicationMail.BuildBody(_OutApplication)); if (addConfirmAddress) { OutApplicationMail.BulidConfirmAddress(mailContent, to, _OutApplication.PKID); } mailBody.MailTo = RequestUtility.GetMail(to); mailBody.Body = mailContent.ToString(); mailBody.Subject = subject; mailBody.IsHtmlBody = true; }
public void NewsApiTest_Get() { var type = Apis.Material.Enums.MaterialType.video; //aa5fe50648fb489a8083cdd203370470.jpg var result = api.Get(type); var tempResult = (OtherMaterialResult)result; var videoresult = api.GetMaterialById <GetVideoMaterialResult>(tempResult.Items[0].MediaId); var bytes = RequestUtility.HttpUploadData(videoresult.DownUrl, tempResult.Items[0].MediaId); File.WriteAllBytes("E://Test.mp4", bytes); if (!result.IsSuccess()) { Assert.Fail("获取多图文信息失败,返回结果如下:" + result.DetailResult); } }
/// <summary> /// <para>获取 RSA 加密公钥接口</para> /// <para>https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=24_7&index=4</para> /// </summary> /// <param name="dataInfo"></param> /// <returns></returns> public static GetPublicKeyResult GetPublicKey(TenPayV3QueryBankRequestData dataInfo) { //TODO:官方文档没有明确此接口是否支持沙箱 var urlFormat = ReurnPayApiUrl("https://fraud.mch.weixin.qq.com/{0}risk/getpublickey"); var data = dataInfo.PackageRequestHandler.ParseXML();//获取XML var formDataBytes = data == null ? new byte[0] : Encoding.UTF8.GetBytes(data); MemoryStream ms = new MemoryStream(); ms.Write(formDataBytes, 0, formDataBytes.Length); ms.Seek(0, SeekOrigin.Begin);//设置指针读取位置 var resultXml = RequestUtility.HttpPost(urlFormat, null, ms); return(new GetPublicKeyResult(resultXml)); }
public ApiResult GetWxUrlToMobile(int money, string userId) { appid = "wx226d38e96ed8f01e"; mchid = "1375852802"; key = "1de60212dceafe2b4fdb621bd6f04288"; var no = GetRandom(); var total = (money * 100).ToString(); notifyUrl = ApiHost + "/api/Recharge/WxNotify"; var result = new ApiResult <string>(); if (_service.AddComeOutRecord(no, money, 1, int.Parse(userId))) { RequestHandler packageReqHandler = new RequestHandler(null); packageReqHandler.SetParameter("appid", appid); //APPID packageReqHandler.SetParameter("mch_id", mchid); //商户号 packageReqHandler.SetParameter("nonce_str", TenPayV3Util.GetNoncestr()); packageReqHandler.SetParameter("body", "金币充值"); packageReqHandler.SetParameter("out_trade_no", no); //订单号 //packageReqHandler.SetParameter("total_fee", total); //金额,以分为单位 packageReqHandler.SetParameter("total_fee", "1"); //金额,以分为单位 packageReqHandler.SetParameter("spbill_create_ip", Tool.GetIP()); //IP packageReqHandler.SetParameter("notify_url", notifyUrl); //回调地址 packageReqHandler.SetParameter("trade_type", "MWEB"); //这个不可以改。固定为Mweb packageReqHandler.SetParameter("sign", packageReqHandler.CreateMd5Sign("key", key)); string data = packageReqHandler.ParseXML(); var urlFormat = "https://api.mch.weixin.qq.com/pay/unifiedorder"; var formDataBytes = data == null ? new byte[0] : Encoding.UTF8.GetBytes(data); MemoryStream ms = new MemoryStream(); ms.Write(formDataBytes, 0, formDataBytes.Length); ms.Seek(0, SeekOrigin.Begin); var obj = RequestUtility.HttpPost(urlFormat, null, ms); var res = System.Xml.Linq.XDocument.Parse(obj); string mweb_url = res.Element("xml").Element("mweb_url").Value + "&redirect_url=www.izk138.com://pay=1"; result.Data = mweb_url; LogHelper.Info("notifyUrl:" + notifyUrl); return(result); } else { return(new ApiResult(10000, "生成订单失败")); } }
private void Init() { OutApplication outApplication = _IOutApplication.GetOutApplicationByOutApplicationID(_View.ApplicationID); _View.EmployeeName = outApplication.Account.Name; _View.EmployeeID = outApplication.Account.Id; _View.TimeSpan = outApplication.FromDate + " ~ " + outApplication.ToDate; _View.CostTime = outApplication.CostTime.ToString(); _View.OutLocation = outApplication.OutLocation; _View.OperationType = OperationType.Cancel; _View.ApproveStatusSource = RequestUtility.GetCancelChose(); _View.Reason = outApplication.Reason; _View.ApplicationItemList = outApplication.Item; _View.OutType = outApplication.OutType; }
public static MenuResult GetMenu(string accessTokenOrAppId) { return(ApiHandlerWapper.TryCommonApi(accessToken => { var url = string.Format("https://api.weixin.qq.com/cgi-bin/menu/get?access_token={0}", accessToken.AsUrlData()); var jsonString = RequestUtility.HttpGet(url, Encoding.UTF8); MenuResult finalResult; finalResult = JsonConvert.DeserializeObject <MenuResult>(jsonString); if (finalResult.menu == null || finalResult.menu.button.Count == 0) { return null; } return finalResult; }, accessTokenOrAppId)); }
/// <summary> /// 获取Xml结果。 /// </summary> /// <param name="messageHandler"></param> /// <param name="url"></param> /// <param name="token"></param> /// <param name="stream"></param> /// <param name="useWeiWeiHiKey">是否使用WeiWeiHiKey,如果使用,则token为WeiWeiHiKey</param> /// <param name="timeOut">代理请求超时时间(毫秒)</param> /// <returns></returns> public static string RequestXml(this IMessageHandler messageHandler, string url, string token, Stream stream, bool useWeiWeiHiKey = false, int timeOut = AGENT_TIME_OUT) { if (messageHandler != null) { messageHandler.UsedMessageAgent = true; } string timestamp = DateTime.Now.Ticks.ToString(); string nonce = "GodBlessYou"; string signature = CheckSignature.GetSignature(timestamp, nonce, token); url += string.Format("{0}signature={1}×tamp={2}&nonce={3}", url.Contains("?") ? "&" : "?", signature.AsUrlData(), timestamp.AsUrlData(), nonce.AsUrlData()); var responseXml = RequestUtility.HttpPost(url, null, stream, timeOut: timeOut); return(responseXml); }
/// <summary> /// </summary> public int UpdateOverWork(OverWork overWork) { SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_PKID, SqlDbType.Int).Value = overWork.PKID; cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value = overWork.Account.Id; cmd.Parameters.Add(_SubmitDate, SqlDbType.DateTime).Value = overWork.SubmitDate; cmd.Parameters.Add(_From, SqlDbType.DateTime).Value = overWork.FromDate; cmd.Parameters.Add(_To, SqlDbType.DateTime).Value = overWork.ToDate; cmd.Parameters.Add(_CostTime, SqlDbType.Decimal).Value = overWork.CostTime; cmd.Parameters.Add(_Reason, SqlDbType.Text).Value = overWork.Reason; cmd.Parameters.Add(_ProjectName, SqlDbType.NVarChar, 250).Value = overWork.ProjectName; cmd.Parameters.Add(_DiyProcess, SqlDbType.Text).Value = RequestUtility.DiyProcessToString(overWork.DiyProcess); return(SqlHelper.ExecuteNonQuery("OverWorkUpdate", cmd)); }
public ActionResult GetAndUploadImage(string url = "https://sdk.weixin.senparc.com/images/book-cover-front-small-3d-transparent.png") { var fileName = Server.MapPath("~/App_Data/DownloadImage_{0}.jpg".FormatWith(DateTime.Now.Ticks)); using (var ms = new MemoryStream()) { Senparc.CO2NET.HttpUtility.Get.Download(url, ms); ms.Seek(0, SeekOrigin.Begin); //上传流 var uploadUrl = "http://localhost:60716/Request/UploadImage"; RequestUtility.HttpPost(uploadUrl, null, ms); } return(Content("图片已保存到:" + fileName)); }
/// <summary> /// </summary> public int UpdateOutApplication(OutApplication outapplication) { SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_PKID, SqlDbType.Int).Value = outapplication.PKID; cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value = outapplication.Account.Id; cmd.Parameters.Add(_SubmitDate, SqlDbType.DateTime).Value = outapplication.SubmitDate; cmd.Parameters.Add(_From, SqlDbType.DateTime).Value = outapplication.FromDate; cmd.Parameters.Add(_To, SqlDbType.DateTime).Value = outapplication.ToDate; cmd.Parameters.Add(_CostTime, SqlDbType.Decimal).Value = outapplication.CostTime; cmd.Parameters.Add(_Reason, SqlDbType.Text).Value = outapplication.Reason; cmd.Parameters.Add(_OutLocation, SqlDbType.NVarChar, 250).Value = outapplication.OutLocation; cmd.Parameters.Add(_OutType, SqlDbType.Int).Value = outapplication.OutType.ID; cmd.Parameters.Add(_DiyProcess, SqlDbType.Text).Value = RequestUtility.DiyProcessToString(outapplication.DiyProcess); return(SqlHelper.ExecuteNonQuery("OutApplicationUpdate", cmd)); }
private void button3_Click_1(object sender, EventArgs e) { try { var xiaomiDate = new XiaoMiData(); var allSetting = xiaomiDate.GetSetting(); richTextBox1.Text = "get all setting,count:" + allSetting.Count; LogHelper.Info(typeof(Form1), "get all setting,count:" + allSetting.Count); foreach (var setting in allSetting) { //if (setting.WechatId != "13354280516") //{ // continue; //} richTextBox1.Text += "get old access token:wechatId:" + setting.WechatId; LogHelper.Info(typeof(Form1), "get old access token:wechatId:" + setting.WechatId); if (setting.RefreshToken != null) { var url = xiaomiDate.RefreshTokenURL(setting.RefreshToken); LogHelper.Info(typeof(Form1), "get old access token url:" + url); var returnText = RequestUtility.HttpGet(url, null); LogHelper.Info(typeof(Form1), "get new access token::" + returnText); var js = new JavaScriptSerializer(); var returnObj = (Dictionary <string, string>)js.Deserialize(returnText.Replace("&&&START&&&", ""), typeof(Dictionary <string, string>)); if (!returnObj.ContainsKey("error") && returnObj.ContainsKey("access_token") && returnObj.ContainsKey("mac_key") && returnObj.ContainsKey("refresh_token")) { richTextBox1.Text += "update access token:" + returnObj["access_token"]; xiaomiDate.UpdateSettingMacAndToken(returnObj["access_token"], returnObj["mac_key"], returnObj["refresh_token"], setting.WechatId); } else { LogHelper.Error(typeof(Form1), "get new access token error:" + returnText); } } else { LogHelper.Info(typeof(Form1), "current user have not refresh token:"); } } } catch (Exception ex) { LogHelper.Error(typeof(Form1), ex); } }
private static void SendMail(Model.Reimburse reimburse) { Account temp = _AccountBll.GetAccountById(reimburse.ApplierID); MailBody mailBody = new MailBody(); mailBody.MailTo = RequestUtility.GetMail(temp); mailBody.Subject = "您的报销单已经通过审核,请去财务处领取报销费,谢谢。"; StringBuilder emailContentBuilder = new StringBuilder(); emailContentBuilder.Append(temp.Name + ",您好!"); emailContentBuilder.Append("<br/>"); emailContentBuilder.Append("您的报销类型为:"); emailContentBuilder.Append(reimburse.ReimburseCategoriesEnum.Name); emailContentBuilder.Append("、"); emailContentBuilder.Append("消费时间:"); emailContentBuilder.Append(reimburse.ConsumeDateFrom.ToShortDateString()); emailContentBuilder.Append("日"); emailContentBuilder.Append(reimburse.ConsumeDateFrom.Hour.ToString()); emailContentBuilder.Append("时"); emailContentBuilder.Append(reimburse.ConsumeDateFrom.Minute.ToString()); emailContentBuilder.Append("分"); emailContentBuilder.Append("---"); emailContentBuilder.Append(reimburse.ConsumeDateTo.ToShortDateString()); emailContentBuilder.Append("日"); emailContentBuilder.Append(reimburse.ConsumeDateTo.Hour.ToString()); emailContentBuilder.Append("时"); emailContentBuilder.Append(reimburse.ConsumeDateTo.Minute.ToString()); emailContentBuilder.Append("分"); emailContentBuilder.Append("、"); emailContentBuilder.Append("总额:"); emailContentBuilder.Append(reimburse.TotalCost); emailContentBuilder.Append("元"); emailContentBuilder.Append("的报销单已经通过审核,请去财务处领取报销费,谢谢。"); emailContentBuilder.Append(Environment.NewLine); mailBody.Body = emailContentBuilder.ToString(); try { //发给员工邮件 _MailGateWay.Send(mailBody); } catch { throw new Exception("员工领取报销提醒发送失败"); } }
public void PostTest() { var data = "Jeffrey"; Stream stream = new MemoryStream(); var bytes = Encoding.UTF8.GetBytes(data); stream.Write(bytes, 0, bytes.Length); stream.Seek(0, SeekOrigin.Begin); var cookieContainer = new CookieContainer(); var url = "https://localhost:44335/ForTest/PostTest";//使用.NET 4.5的Sample var result = RequestUtility.HttpPost(BaseTest.serviceProvider, url, cookieContainer, stream, useAjax: true); Console.WriteLine(result); Assert.IsNotNull(result); }
/// <summary> /// 给要抄送的人发邮件,主要是人事,所以,在整个外出单审核结束后发送 /// </summary> private List <string> SendMailToMailCC() { List <string> mailToList = new List <string>(); foreach ( Account account in _OutDiyProcessUtility.GetLastMailCC(_OutApplication.DiyProcess)) { Account innaccount = _AccountBll.GetAccountById(account.Id); mailToList.AddRange(RequestUtility.GetMail(innaccount)); } //List<Account> accounts = _GetDiyProcess.GetHRPrincipalByAccountID(_OutApplication.Account.Id); //foreach (Account acc in accounts) //{ // mailToList.AddRange(RequestUtility.GetMail(acc)); //} return(RequestUtility.CleanMailAddress(mailToList)); }
/// <summary> /// </summary> public int InsertOverWork(OverWork overWork) { int pkid; SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_PKID, SqlDbType.Int).Direction = ParameterDirection.Output; cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value = overWork.Account.Id; cmd.Parameters.Add(_SubmitDate, SqlDbType.DateTime).Value = overWork.SubmitDate; cmd.Parameters.Add(_From, SqlDbType.DateTime).Value = overWork.FromDate; cmd.Parameters.Add(_To, SqlDbType.DateTime).Value = overWork.ToDate; cmd.Parameters.Add(_CostTime, SqlDbType.Decimal).Value = overWork.CostTime; cmd.Parameters.Add(_Reason, SqlDbType.Text).Value = overWork.Reason; cmd.Parameters.Add(_ProjectName, SqlDbType.NVarChar, 250).Value = overWork.ProjectName; cmd.Parameters.Add(_DiyProcess, SqlDbType.Text).Value = RequestUtility.DiyProcessToString(overWork.DiyProcess); SqlHelper.ExecuteNonQueryReturnPKID("OverWorkInsert", cmd, out pkid); return(pkid); }
/// <summary> /// 【异步方法】H5支付接口(和“统一支付接口”近似) /// </summary> /// <param name="dataInfo">微信支付需要post的Data数据,TradeType将会强制赋值为TenPayV3Type.MWEB</param> /// <param name="timeOut"></param> /// <returns></returns> public static async Task <UnifiedorderResult> Html5OrderAsync(TenPayV3UnifiedorderRequestData dataInfo, int timeOut = Config.TIME_OUT) { var urlFormat = ReurnPayApiUrl("https://api.mch.weixin.qq.com/{0}pay/unifiedorder"); dataInfo.TradeType = TenPayV3Type.MWEB; var data = dataInfo.PackageRequestHandler.ParseXML();//获取XML //throw new Exception(data.HtmlEncode()); MemoryStream ms = new MemoryStream(); var formDataBytes = data == null ? new byte[0] : Encoding.UTF8.GetBytes(data); await ms.WriteAsync(formDataBytes, 0, formDataBytes.Length); ms.Seek(0, SeekOrigin.Begin);//设置指针读取位置 var resultXml = await RequestUtility.HttpPostAsync(urlFormat, null, ms, timeOut : timeOut); return(new UnifiedorderResult(resultXml)); }
public async Task <IActionResult> PostFile(string byStream = null) { var dt1 = SystemTime.Now; var filePath = Path.GetFullPath("App_Data/cover.png");//也可以上传其他任意文件 var fileDictionary = new Dictionary <string, string>(); if (byStream != null) { //使用Stream传入,而不是文件名 SenparcTrace.SendCustomLog("Post 文件信息", $"使用文件流放入 fileDictionary 中,并将修改文件名。"); using (var fs = System.IO.File.OpenRead(filePath)) { var formFileData = new FormFileData(Path.GetFileName(filePath), fs); formFileData.FileName = $"changed-{formFileData.FileName}";//修改文件名 fileDictionary["image"] = formFileData.GetFileValue(); } } else { SenparcTrace.SendCustomLog("Post 文件信息", $"使用文件物理地址放入 fileDictionary 中,保留原文件名。"); fileDictionary["image"] = filePath; } var url = "https://*****:*****@"<html> <head> <meta http-equiv=Content-Type content=""text/html;charset=utf-8""> <title>CO2NET 文件 Post 测试 - {note}</title> </head> <body> <p>如果在下方看到《微信开发深度解析》图书封面,表示测试成功({note})。可通过 SenparcTrace 日志查看更多过调试信息日志。</p> <p>耗时:{timeCost.TotalMilliseconds} ms,平均:{averageCost} ms</p> <img src=""data:image/png; base64,{result}"" /> </body> </html>"; return(Content(html, "text/html")); }
/// <summary> /// 使用GET请求测试URL和TOKEN是否可用 /// </summary> /// <param name="url"></param> /// <param name="token"></param> /// <param name="timeOut">代理请求超时时间(毫秒)</param> /// <returns></returns> public static bool CheckUrlAndToken(string url, string token, int timeOut = 2000) { try { string timestamp = DateTime.Now.Ticks.ToString(); string nonce = "GodBlessYou"; string echostr = Guid.NewGuid().ToString("n"); string signature = CheckSignature.GetSignature(timestamp, nonce, token); url += string.Format("{0}signature={1}×tamp={2}&nonce={3}&echostr={4}", url.Contains("?") ? "&" : "?", signature.AsUrlData(), timestamp.AsUrlData(), nonce.AsUrlData(), echostr.AsUrlData()); var responseStr = RequestUtility.HttpGet(url, null, timeOut: timeOut); return(echostr == responseStr); } catch { return(false); } }