Exemple #1
0
        /// <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));
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        /// <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));
        }
Exemple #4
0
        /// <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/>");
        }
Exemple #5
0
        /// <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));
        }
Exemple #6
0
        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));
        }
Exemple #7
0
        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);
            }
        }
Exemple #9
0
        /// <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));
            }
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        /// <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;
        }
Exemple #13
0
        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;
        }
Exemple #14
0
        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));
        }
Exemple #16
0
        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, "生成订单失败"));
            }
        }
Exemple #17
0
        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;
        }
Exemple #18
0
        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));
        }
Exemple #19
0
        /// <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}&timestamp={2}&nonce={3}",
                                 url.Contains("?") ? "&" : "?", signature.AsUrlData(), timestamp.AsUrlData(), nonce.AsUrlData());
            var responseXml = RequestUtility.HttpPost(url, null, stream, timeOut: timeOut);

            return(responseXml);
        }
Exemple #20
0
        /// <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));
        }
Exemple #22
0
        /// <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));
        }
Exemple #23
0
 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("员工领取报销提醒发送失败");
            }
        }
Exemple #25
0
        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);
        }
Exemple #26
0
        /// <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));
        }
Exemple #27
0
        /// <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);
        }
Exemple #28
0
        /// <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));
        }
Exemple #29
0
        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"));
        }
Exemple #30
0
        /// <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}&timestamp={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);
            }
        }