Example #1
0
        /// <summary>
        /// 使用 Native 支付
        /// </summary>
        /// <param name="productId"></param>
        /// <param name="hc"></param>
        /// <returns></returns>
        public async Task <IActionResult> NativePayCode(int productId, int hc)
        {
            var products = ProductModel.GetFakeProductList();
            var product  = products.FirstOrDefault(z => z.Id == productId);

            if (product == null || product.GetHashCode() != hc)
            {
                return(Content("商品信息不存在,或非法进入!2004"));
            }

            //使用 Native 支付,输出二维码并展示
            MemoryStream fileStream = null;//输出图片的URL
            var          price      = (int)(product.Price * 100);
            var          name       = product.Name + " - 微信支付 V3 - Native 支付";
            var          sp_billno  = string.Format("{0}{1}{2}", TenPayV3Info.MchId /*10位*/, SystemTime.Now.ToString("yyyyMMddHHmmss"),
                                                    TenPayV3Util.BuildRandomStr(6));

            var notifyUrl = TenPayV3Info.TenPayV3Notify.Replace("/TenpayV3/", "/TenpayRealV3/");

            TransactionsRequestData requestData = new(TenPayV3Info.AppId, TenPayV3Info.MchId, name, sp_billno, new TenpayDateTime(DateTime.Now.AddHours(1)), null, notifyUrl, null, new() { currency = "CNY", total = price }, null, null, null, null);

            BasePayApis basePayApis = new BasePayApis();
            var         result      = await basePayApis.NativeAsync(requestData);

            //进行安全签名验证
            if (result.VerifySignSuccess == true)
            {
                fileStream = QrCodeHelper.GerQrCodeStream(result.code_url);
            }
            else
            {
                fileStream = QrCodeHelper.GetTextImageStream("Native Pay 未能通过签名验证,无法显示二维码");
            }
            return(File(fileStream, "image/png"));
        }
Example #2
0
        public ActionResult GetFileTest()
        {
            IAopClient client = new DefaultAopClient("https://openapi.alipaydev.com/gateway.do",
                                                     "2016101300673467",
                                                     "MIIEogIBAAKCAQEAgV46jh5KmqbMbOFuFBQxnN6f0OngDpSr+Jkphwd7L6zC7N4yB0vF3EoLj/ahrgCEwTFy6oJz+tRif0hlt41KSMJCgJhiM/axrzyzDL7kGF0/ISwy5fZec8n5TGoS5cwNQ5koPO+ZsqGWd8rB7xIgpZ12APCwghUT1yDvxrAUEj78KBUhZfZTxRPZI5coat/fnVkC0EUR1DNzRjps3mDjleLb4g9fRgAxr/y8aUViOcnDZajZyA9RqZtRPWJOk80+rDGXV2/Z7r0EFokDe448PiV0bOK4Ggmmz+ADAsOvrZoGVUcfqo+1jr0KLOOSKdp9Bs6ft84tO3QMGMgFOqH8vwIDAQABAoIBABWd8DzlNOQosQoUlTdHtI6Y6K2ZFvZ4w0+0ECtfBaeOv7ei3Us4zyQjP1FcDeIsdgJuR9yF1el46ciJCW4lbt8/jqs8S1SRiVlV1DlyAF1N34mkgBDLHTdN7ZlmNCgv85tzETU1eEJQG/uCZuuS5N+nsxsvHN9vtDQDbe2OaJwvqmgxjqHvCLbP9v9U41aGyCveYFmnfEM/+2xufRMt9BzpE867ujmFOKyfqRj8fRHER2dlAGpLz9G2gOL5Eo0ve8KVxfFU3U93HRMCp6Yso0haM7nE0aNgYgl+gWMK+WdPOe/6f5MLVRyn9ePJWt2BIeEq2moZuuosE7B/QDID4PkCgYEA2Hqw4QU6/Z/u4Wl7cwgkdBTtZyGpXwCwjsnrFBqKHlJUowyl9HRqG1o7mqbGhS3iOc2UHA+BhNpRxYy0nl4vQUYzWWfkhq/PvYnuD2TzB3ybGd04iu/mY8hzM9VlsT4ojA3uL3QkO6I1pkLh9OyFglctvIs8KDJo4TP7a5T/6UUCgYEAmPxWCttT7O3vjlZQqjOr854l5Kn1xYKxF8PGaqfzHq79vHkhfNYiY/8cqKcJlJh8F+uG5Q6lRIiihwDuo+45MKmKL9ZHQpgBk9SKztpbflK/BR6UAXH/aloMr7j3IBFoJP7AiBpMtWsW6VTtJOwS9DoehkCN4bEZniDVF9o6tDMCgYBxA6xv7TEc02/8kfr21NtjFsHRw4sOo+eIw/VL64cLyWOSM7o34sa6POM9G7AsOwYNszuNYrL1Tpy+C3UH8Jeu9h08obZ2cjZ79xQnSUZvNCgs2ob4UcHveehauR975r14UJV2hKWd1FM511TrbsdMgoLIGdBwE9EZMPAi/AiWGQKBgHyNE9AK+KzwmhQcGdg38UqJ+vfLl5iR6nQao7O5wKm+dj23sJfeDmmzDTYRqC8eZglja5OY9NxzET8wdxlnnZAMt8Byh9mjv8UHSWtXQx35aCNW3dC/at6/KYz23dtx0IQuE7m7D7Cz2xdkWR2yRUwo9Sj/7YNNmDmxKUweE6UZAoGAPAkO10ddoGpNZ1VsIQPfYx/zn9UpIvax9HDkMYkAxMQdmG3h/yLH3x4c6QkytQE2VcLafQRAKc9il9WlgzUoOrzvO3W95XIck5dq16Re5ZZJCzc4jYnUmJ79AG0gJ3GDRBRWFpp/AxJWlMx7nMyNchj9kGQghgdVehWdV/eHmGM=",
                                                     "json",
                                                     "1.0",
                                                     "RSA2",
                                                     "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4PO7TRZraDCfHVc+xh6xO3pqthcju3GEd/V0bI+v+GU7BWjdNfQhZmqgCVmGFERf8CQFtX5IQk1+FlH3kwimwyl/TM0R+GwJxl8mIkBn6OSCR+WLMfhiYR9J/vCmUlzur9ByB2VuQk/QWAKFMsVUwhUaWNPWxCEN4nBlmgiss8vDgm+npNBfUJoiT/d/0SW2/jJEzFNWjT0P+MB/BKFCXHlW+2eU12uUZHblZ2yw0pDVnP6jUVd5Y4wrtb4TKrLWxgnCaiki4AsuD9AjTMD4kQ33+Dln9JYCyEyhLRDLWldJs9dw+arL95IkUzvfhAf1CWZo0TYBwlBUom6wmzFbewIDAQAB",
                                                     "GBK", false);
            //"2019082766434970",
            //    "MIIEpQIBAAKCAQEAsdm9hrmwgGt3FsiUFDr4wZMWMxLXt5mvJUNBMJacYyxbkCkXu+PNk+1ItN6EFdbIjoqLRlKXT4nGZmcSs7RhbWlDSG4Qd/PaAVZmtjEKiNEwCBIoQ2LyhCGuD5c6bA2K1e/HkgEhXnHPDlCJXf0BrkavPaOHYxG3iCQEXRDxGfDjaK3DSu1vPLEqxsMqPDieTDc81pXGQZeH7cW5iGIo4gX0ac+Bmc9vRz5uUbsfkitTvyx49tO9ROGp5XhlrmqMuslFbYpvx8KNcCr+eVVcaHPOpUXRCHXECBpF+jD0ZvMRg5f43dTaOiXtSdMayfeV2BVSN5vkPYUoNPp8amoVFQIDAQABAoIBAATWrrBWpvWndtL43AZ84D2r+cOj9Jh7Jue1n7Vps5GDKG6Qn6Ot++7VWtAI6cEKWeR+4nEkWBeC4RHyJfEbrDbk0T7MN8h7que0aRD13pqATnU5wTysGXr8y5aC/8TmzWsqndxcCYNfR0nVaRdUhdIu/B+KLmnElqCukivSBS02c9o39nNY2WsxTVabKUaoso7IBmM8dFdEBY7AjlEJQfPBUQldTllm8uRXcKItaHh7/WYQ4MeAf1612eao5LKVR9N+XkDEIz+wys48W58bT/McruvIPjLI3S6MLG6loo34czH7YDbLLtarAUaPGs6YFTRXE2s0+eNrCWHRRrMdmAECgYEA7tmsESQwaEOhu4xPYK4qYqVFVSV8Ve2NP6hvr9fQBlgilshBpVwR0MX41TlFG76qdkBSStky333AoNIf2OzjpZNBA0rAVfnHY3tqJwzeJfsOYUmniY6nepBdorgh94b8DdaeurEre7vwqvFMTBGwmDsR4oIOidY49UiSQ8d+ggECgYEAvp7Tp6ApmyO+PI7yujfE1VsNTeHLiVnf87xYnMW87EOjyl2XqiycspBxiVtcy7PZnQVYaFqcAMf1cYb0ti6BiCNXMOMg0eWFpUknYHllsB7pXu7n8Aheu0QkKRlFzkTBlFcs5yRG7V/vfP0DPL53jI54xj8LHS69FIF9ikazaxUCgYEA7hpogZ4F86qYLBKvfr2g2z3OZBc+X5q0WGVdEXqekfSCZrWzW1jxGaKBcG3rCsGDxOZSIvNq14jQ4oEV5nYgagrloJaALjUWI4IATHVzb4Fa0HlQXryrEG+iKHhOxCb4VgNBsPK1Wl/8hyyM1rg7x0X7ikYEoDvCBCMYTCEvaAECgYEAsaCzPoqi+qxOA4R5b0m0o9RbC24TCoSzih7CvCQPLmLBaDvarnsv8b1j70kxqaiIaienAGce5CNw9j96HaIslj3IbAfad31YEnOeu+mj9oB3mz0o6KYEEKEoyRuBzvqHIMIzV5iYd25kbqYetCYQpOvGY4YvxxvcmhUodQf4/RkCgYEA2SM3mgOz+jaBs96JVtTeLeEFIaKmnceD8u+wuuVfulY2aDDkEwYPfHXBqu4EqZjpcDg2l2EBsLRy7Ot7K2EaGJV0s7H1AP/13kziKCl9WwDoDg4Dk7ZRzj378YFehX4b9T3SQ36WMkgFHB9zOcRP5Rf7HO4inN6UqILHSTuTOY4=",
            //    "json",
            //    "1.0", 2088631146114221
            //    "RSA2",
            //    "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA05z4aIvz0V9DyE/YS72CuCVbb9ncn5EJHGijdQ+qokDXR1e0SNIbZeitNKUL1bfqapjYIDIPON49VHtPFBWz2osSITsv9+lIQUhb/nBvTAhLL2Yebx6/NPC3a+meqm5e53Fu8W6WYvpQGI7zcGMiJaDs19xZHyTGJf0dTVn7+r2/XWA37801W8rADnikIyKm4gu1AiWWtpuVy+bimc6fcFq5dHOnHGlcK+kx+Bm4yRN3aDE8kG2EszLV850KaZwvHlUGdiW3mVixpfbQJV8ei2n0HIwLVGVvt1hjwNGgvrNAuBBc2ACAkk45gg77+pTiHR1XzxyjiXEelGUfFN09wQIDAQAB",
            //    "GBK", false);
            AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();

            request.BizContent = "{" +
                                 "\"out_trade_no\":\"201523423420101001\"," +
                                 "\"seller_id\":\"2088102179325219\"," +
                                 "\"total_amount\":0.1," +
                                 "\"subject\":\"Iphone6 16G\"," +
                                 "\"timeout_express\":\"90m\"," +
                                 "\"qr_code_timeout_express\":\"90m\"" +
                                 "  }";
            AlipayTradePrecreateResponse response = client.Execute(request);

            ViewBag.Src = response.QrCode;
            return(File(QrCodeHelper.GenQrCode(response.QrCode, 200).ToArray(), @"image/jpeg"));
        }
Example #3
0
        public ActionResult GetFile()
        {
            IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do",
                                                     "2019082766434970",
                                                     "MIIEpQIBAAKCAQEAsdm9hrmwgGt3FsiUFDr4wZMWMxLXt5mvJUNBMJacYyxbkCkXu+PNk+1ItN6EFdbIjoqLRlKXT4nGZmcSs7RhbWlDSG4Qd/PaAVZmtjEKiNEwCBIoQ2LyhCGuD5c6bA2K1e/HkgEhXnHPDlCJXf0BrkavPaOHYxG3iCQEXRDxGfDjaK3DSu1vPLEqxsMqPDieTDc81pXGQZeH7cW5iGIo4gX0ac+Bmc9vRz5uUbsfkitTvyx49tO9ROGp5XhlrmqMuslFbYpvx8KNcCr+eVVcaHPOpUXRCHXECBpF+jD0ZvMRg5f43dTaOiXtSdMayfeV2BVSN5vkPYUoNPp8amoVFQIDAQABAoIBAATWrrBWpvWndtL43AZ84D2r+cOj9Jh7Jue1n7Vps5GDKG6Qn6Ot++7VWtAI6cEKWeR+4nEkWBeC4RHyJfEbrDbk0T7MN8h7que0aRD13pqATnU5wTysGXr8y5aC/8TmzWsqndxcCYNfR0nVaRdUhdIu/B+KLmnElqCukivSBS02c9o39nNY2WsxTVabKUaoso7IBmM8dFdEBY7AjlEJQfPBUQldTllm8uRXcKItaHh7/WYQ4MeAf1612eao5LKVR9N+XkDEIz+wys48W58bT/McruvIPjLI3S6MLG6loo34czH7YDbLLtarAUaPGs6YFTRXE2s0+eNrCWHRRrMdmAECgYEA7tmsESQwaEOhu4xPYK4qYqVFVSV8Ve2NP6hvr9fQBlgilshBpVwR0MX41TlFG76qdkBSStky333AoNIf2OzjpZNBA0rAVfnHY3tqJwzeJfsOYUmniY6nepBdorgh94b8DdaeurEre7vwqvFMTBGwmDsR4oIOidY49UiSQ8d+ggECgYEAvp7Tp6ApmyO+PI7yujfE1VsNTeHLiVnf87xYnMW87EOjyl2XqiycspBxiVtcy7PZnQVYaFqcAMf1cYb0ti6BiCNXMOMg0eWFpUknYHllsB7pXu7n8Aheu0QkKRlFzkTBlFcs5yRG7V/vfP0DPL53jI54xj8LHS69FIF9ikazaxUCgYEA7hpogZ4F86qYLBKvfr2g2z3OZBc+X5q0WGVdEXqekfSCZrWzW1jxGaKBcG3rCsGDxOZSIvNq14jQ4oEV5nYgagrloJaALjUWI4IATHVzb4Fa0HlQXryrEG+iKHhOxCb4VgNBsPK1Wl/8hyyM1rg7x0X7ikYEoDvCBCMYTCEvaAECgYEAsaCzPoqi+qxOA4R5b0m0o9RbC24TCoSzih7CvCQPLmLBaDvarnsv8b1j70kxqaiIaienAGce5CNw9j96HaIslj3IbAfad31YEnOeu+mj9oB3mz0o6KYEEKEoyRuBzvqHIMIzV5iYd25kbqYetCYQpOvGY4YvxxvcmhUodQf4/RkCgYEA2SM3mgOz+jaBs96JVtTeLeEFIaKmnceD8u+wuuVfulY2aDDkEwYPfHXBqu4EqZjpcDg2l2EBsLRy7Ot7K2EaGJV0s7H1AP/13kziKCl9WwDoDg4Dk7ZRzj378YFehX4b9T3SQ36WMkgFHB9zOcRP5Rf7HO4inN6UqILHSTuTOY4=",
                                                     "json",
                                                     "1.0",
                                                     "RSA2",
                                                     "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA05z4aIvz0V9DyE/YS72CuCVbb9ncn5EJHGijdQ+qokDXR1e0SNIbZeitNKUL1bfqapjYIDIPON49VHtPFBWz2osSITsv9+lIQUhb/nBvTAhLL2Yebx6/NPC3a+meqm5e53Fu8W6WYvpQGI7zcGMiJaDs19xZHyTGJf0dTVn7+r2/XWA37801W8rADnikIyKm4gu1AiWWtpuVy+bimc6fcFq5dHOnHGlcK+kx+Bm4yRN3aDE8kG2EszLV850KaZwvHlUGdiW3mVixpfbQJV8ei2n0HIwLVGVvt1hjwNGgvrNAuBBc2ACAkk45gg77+pTiHR1XzxyjiXEelGUfFN09wQIDAQAB",
                                                     "GBK", false);
            AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();
            var rand = this.GetRandomMumber(17);

            request.BizContent = "{" +
                                 "\"out_trade_no\":\"" + (201523423420101001 + long.Parse(rand)) + "\"," +
                                 "\"seller_id\":\"2088631146114221\"," +
                                 "\"total_amount\":0.1," +
                                 "\"subject\":\"Iphone6 16G\"," +
                                 "\"timeout_express\":\"90m\"," +
                                 "\"qr_code_timeout_express\":\"90m\"" +
                                 "  }";
            AlipayTradePrecreateResponse response = client.Execute(request);

            ViewBag.Src = response.QrCode;
            return(File(QrCodeHelper.GenQrCode(response.QrCode, 200).ToArray(), @"image/jpeg"));
        }
Example #4
0
        public ActionResult Place(Code code)
        {
            try
            {
                int x      = (int)Math.Round(Convert.ToDouble(Request["x"].ToString()));
                int y      = (int)Math.Round(Convert.ToDouble(Request["y"].ToString()));
                int width  = (int)Math.Round(Convert.ToDouble(Request["width"].ToString()));
                int height = (int)Math.Round(Convert.ToDouble(Request["height"].ToString()));

                code.Rectangle = new Rectangle(x, y, width, height);
                code           = DataAccessor.CodeRepository.UpdateCode(code);

                QrCodeHelper.CreateCode(code);
                QrCodeHelper.CreateThumbnail(code);

                if (!IsAuthenticated())
                {
                    CookieHelper.AddAnonymousCodeId(Request, Response, code.CodeId);
                }

                return(RedirectToAction("Dashboard", "Generator"));
            }
            catch (QRBaException ex)
            {
                Danger(ex.Message);
                return(View(code));
            }
        }
Example #5
0
        /// <summary>
        /// 生成分享图片
        /// </summary>
        /// <returns></returns>
        public BusinessBaseViewModel <FileUploadViewModel> CreateRedPacketShareImg(RedPacketShareImgRequestModel requestModel)
        {
            var res = new BusinessBaseViewModel <FileUploadViewModel>()
            {
                BusinessData = new FileUploadViewModel()
            };

            if (requestModel.QrContent.IsNullOrWhiteSpace())
            {
                res.ErrorMessage = "二维码内容不能为空";
                return(res);
            }
            if (requestModel.FileName.IsNullOrWhiteSpace())
            {
                res.ErrorMessage = "FileName不能为空";
                return(res);
            }
            if (requestModel.FileName.IndexOf('.') > 0)
            {
                requestModel.FileName = requestModel.FileName.Substring(0, requestModel.FileName.LastIndexOf('.'));
            }
            string rootPath     = ConfigHelper.GetAppsettingValue(TianYuConsts.SystemFileUploadRootPath);
            var    tmpPath      = requestModel.Type == 1 ? "RedPacketShareImg" : "RedPacketShareImgMini";
            string subPath      = Path.Combine(tmpPath, string.Format("{0}.jpg", requestModel.FileName));
            string saveFilePath = Path.Combine(rootPath, subPath);

            if (!Directory.Exists(Path.Combine(rootPath, tmpPath)))
            {
                Directory.CreateDirectory(Path.Combine(rootPath, tmpPath));
            }
            if (!File.Exists(saveFilePath))
            {
                try
                {
                    //生成图片
                    var backImg = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigHelper.GetAppsettingValue(TianYuConsts.RedShareBackImg));
                    QrCodeHelper.EncoderShareImg(requestModel.Type, requestModel.QrContent, backImg, saveFilePath, requestModel.UserName, requestModel.UserImg);
                }
                catch (Exception ex)
                {
                    LogHelper.LogError("FileController.CreateRedPacketShareImg", ex.ToString());
                    res.Status       = ResponseStatus.BusinessError;
                    res.ErrorMessage = ex.Message;
                    return(res);
                }
            }
            //已经存在则不再生成
            res.BusinessData.UploadResult = new List <FileUploadItemViewModel>()
            {
                new FileUploadItemViewModel()
                {
                    IsSuccess      = true,
                    FileUrl        = subPath.ToImageUrl(),
                    ServerFilePath = subPath
                }
            };
            res.Status = ResponseStatus.Success;
            return(res);
        }
Example #6
0
        public ActionResult QrCodeForSigin(int activityId)
        {
            ////1.定义签到页面地址
            string siginUrl = $"{WebConfig.Web_Host}/Home/SignIn/Signin?activityId={activityId}";

            //2.生成二维码
            return(File(QrCodeHelper.BuildQrCode(siginUrl), "image/jpeg"));
        }
        /// <summary>
        /// 获取二维码图片
        /// </summary>
        /// <param name="tenantId"></param>
        /// <param name="appAccountId"></param>
        /// <param name="type"></param>
        /// <param name="code"></param>
        /// <param name="size"></param>
        /// <returns></returns>
        public byte[] GenerateQrCodePicture(int tenantId, string appAccountId, int type, string code, int size)
        {
            ArgumentHelper.AssertNotNullOrEmpty(code, "code is null or empty");
            AppConnectLogHelper.DebugFormat("调用GenerateQrCodePicture方法:tenantId:{0},code:{1}", tenantId, code);
            var scanUrl = UrlHelper.AddParameter(AppConnectHostConfig.Cache[0] + HostConst.QrCodeScanLogin, "code", code);

            AppConnectLogHelper.DebugFormat("scanUrl:{0}", scanUrl);
            return(QrCodeHelper.Generate(scanUrl, size));
        }
Example #8
0
        public void Test_GetQrCode_ContentSingleText_Should_GenerateQrCode()
        {
            const string content = "apollo";

            var result             = QrCodeHelper.GetQrCode(content);
            var deserializedResult = GetQrCodeContent <string>(result);

            deserializedResult.Should().Be(content);
        }
Example #9
0
        public void UT_JpegCompressionTestEx()
        {
            Bitmap            bmp = (Bitmap)Bitmap.FromFile(@"C:\temp\background_E3zjaD.jpg");
            ImageCodecInfo    jpgEncoder;
            EncoderParameters encoderParams;

            QrCodeHelper.GetJpegParams(50, out jpgEncoder, out encoderParams);
            bmp.Save("background-level-50.jpg", jpgEncoder, encoderParams);
        }
Example #10
0
 public async void Catch_Clicked(object sender, EventArgs e)
 {
     var caught_user = (await QrCodeHelper.ReadQrCode(this)).Text;
     await WebSocketClient.Instance.SendMessageAsync(new HunterAction()
     {
         @event = "catch", lobby = GameLogic.Instance.LobbyName, username = GameLogic.Instance.SelfUserName,
         caught = caught_user
     });
 }
Example #11
0
 /// <summary>
 /// Constructeur
 /// </summary>
 /// <param name="don">Objet Don pour initialiser les labels de la fenêtre</param>
 public FenetreRecuDon(Don don)
 {
     InitializeComponent();
     lblDate.Content         = don.DateHeureTransaction.ToString("dd/MM/yy");
     lblHeure.Content        = don.DateHeureTransaction.ToString("HH:mm");
     lblModePaiement.Content = don.ModePaiementTransaction.ToString();
     lblMontant.Content      = don.Montant.ToString() + "$";
     lblNom.Content          = don.NomAuteur;
     //lblNoTransaction.Content += " " + transaction.NoTransaction.ToString();
     imgQrCode.Source = QrCodeHelper.getQrBitmap(don.ToString());
 }
Example #12
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="id"></param>
        /// <param name="pixels"></param>
        /// <returns></returns>
        public ActionResult Generate(int id, int pixels)
        {
            var data = LocalDataProvider.Current.FindSolutionById(id);
            var url  = Url.Action("Detail", new { id = id });

            url = Request.Url.GetLeftPart(UriPartial.Authority) + url;
            var          iconPath = Server.MapPath("/Content/images/logo.jpg");
            MemoryStream ms       = QrCodeHelper.RenderQrCode(url, "H", pixels, iconPath);

            return(File(ms.ToArray(), "image/jpeg", DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".jpeg"));
        }
Example #13
0
        public override async Task OnConnectedAsync()
        {
            // Just test sending message to client
            await Clients.All.ReceiveSomething("Notification", $"{Context.ConnectionId} is connected");

            await Clients.Client(Context.ConnectionId).ReceiveSomething("Friendly neighbourhood", $"Call `http://localhost:11978/api/some/client/{Context.ConnectionId}/type_something`");

            // Generate QR Code to client for all connections
            var url = $"http://localhost:11978/api/some/login/{Context.ConnectionId}";
            await Clients.Client(Context.ConnectionId).GetQrCode(url, QrCodeHelper.Generate(url));
        }
Example #14
0
        public FileResult QrCode()
        {
            var url = Request.Url.Scheme + "://" + Request.Url.Host + ":" + Request.Url.Port + Url.Action("download");
            var img = QrCodeHelper.GenerateQrCode(url, 5);

            using (var ms = new System.IO.MemoryStream())
            {
                img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                return(File(ms.ToArray(), "image/jpeg"));
            }
        }
Example #15
0
        public void ProcessRequest(HttpContext context)
        {
            var key = HttpContext.Current.Request.QueryString["key"];

            if (!string.IsNullOrEmpty(key))
            {
                var ercode = QrCodeHelper.GetQrCodeImage(key);

                HttpContext.Current.Response.OutputStream.Write(ercode.GetBuffer(), 0, (int)ercode.Length);
            }
        }
Example #16
0
        private async Task <bool> CheckIfImageFile(IFormFile file)
        {
            byte[] fileBytes;
            using (var ms = new MemoryStream())
            {
                await file.CopyToAsync(ms);

                fileBytes = ms.ToArray();
            }

            return(QrCodeHelper.GetImageFormat(fileBytes) != QrCodeFormat.unknown);
        }
Example #17
0
        // GET: Mob/Home
        /// <summary>
        ///
        /// </summary>
        /// <param name="id">ShareCode</param>
        /// <returns></returns>
        public async Task <ActionResult> Index(string id, int size = 9)
        {
            MemberHelper helper = new MemberHelper();
            Member       member = await helper.GetByShareCodeAsync(id);

            string strIconPath = member == null ? "" : member.Avatar;

            string strContent = HttpContext.Request.Url.Scheme + "://" + HttpContext.Request.Url.Authority + "/Mob/Home/Index/" + id;

            Bitmap bitMap = QrCodeHelper.Create(strContent, size, strIconPath);

            return(File(TypeHelper.Bitmap2Byte(bitMap), "image/Jpeg"));
        }
Example #18
0
        public void UT_JpegCompressionTest()
        {
            Bitmap            bmp = (Bitmap)Bitmap.FromFile(@"Images\image_1.jpg");
            ImageCodecInfo    jpgEncoder;
            EncoderParameters encoderParams;

            QrCodeHelper.GetJpegParams(10, out jpgEncoder, out encoderParams);
            bmp.Save("level-10.jpg", jpgEncoder, encoderParams);
            QrCodeHelper.GetJpegParams(50, out jpgEncoder, out encoderParams);
            bmp.Save("level-50.jpg", jpgEncoder, encoderParams);
            QrCodeHelper.GetJpegParams(90, out jpgEncoder, out encoderParams);
            bmp.Save("level-90.jpg", jpgEncoder, encoderParams);
        }
Example #19
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <returns></returns>
        public ActionResult ImageQrCodeEncode()
        {
            MemoryStream ms   = new MemoryStream();
            string       code = "http://www.webpsj.com/home/Authorize";
            //Server.MapPath("~/");  //this.Server.MapPath("~/"); //System.Web.Hosting.HostingEnvironment.MapPath("~/"); 获取根目录的方法
            //string filePath = @"D:\MyWork\MyWebApi\MyWebApi\Content\img\1.png";
            //Image centerImage = Image.FromFile(System.Web.Hosting.HostingEnvironment.MapPath("~/") + "Content/img/1.png");
            Bitmap qr = QrCodeHelper.Encode(code);

            qr.Save(ms, ImageFormat.Jpeg);
            byte[] buffurPic = ms.ToArray();
            return(File(buffurPic, "image/jpeg"));
        }
Example #20
0
        public static string CreateQrCode(string scanUrl, out string squarePicUrl)
        {
            squarePicUrl = null;
            try
            {
                string logo_png = HttpContext.Current.Server.MapPath("~/qrcode_logo.png");
                Bitmap bmp      = QrCodeHelper.CreateQrCode(scanUrl, logo_png);
                //int borderOffset = 30;

                //int h = bmp.Height + borderOffset * 2;
                //int w = h * 9 / 5;
                //Bitmap tmpBmp = new Bitmap(w, h);

                //int offsetX = (tmpBmp.Width - tmpBmp.Height) / 2 + borderOffset;
                //int offsetY = borderOffset;
                //Graphics g = Graphics.FromImage(tmpBmp);
                //g.FillRectangle(Brushes.White, 0, 0, tmpBmp.Width, tmpBmp.Height);
                //g.DrawImage(bmp, offsetX, offsetY, bmp.Width, bmp.Height);
                int      w      = bmp.Width;
                int      h      = bmp.Height;
                Bitmap   tmpBmp = new Bitmap(w + 10, h + 10);
                Graphics g      = Graphics.FromImage(tmpBmp);
                g.FillRectangle(Brushes.White, 0, 0, tmpBmp.Width, tmpBmp.Height);
                g.DrawImage(bmp, 5, 5, w, h);

                string filename = "/pics/qrcode/" + DateTime.Today.ToString("yyyyMM") + "/" + DateTime.Today.ToString("dd") + "/" + Guid.NewGuid().ToString("N") + ".png";
                string fullpath = HttpContext.Current.Server.MapPath("~" + filename);
                string dir      = System.IO.Path.GetDirectoryName(fullpath);
                if (!System.IO.Directory.Exists(dir))
                {
                    System.IO.Directory.CreateDirectory(dir);
                }
                tmpBmp.Save(fullpath);

                string squareFullpath = fullpath.Replace(".png", "_square.png");
                bmp.Save(squareFullpath);

                squarePicUrl = filename.Replace(".png", "_square.png").Replace("\\", "/");

                return(filename.Replace("\\", "/"));
            }
            catch (Exception ex)
            {
                LogHelper.WriteError("二维码管理", "生成QRCode图片失败", ex);
            }
            finally
            {
                GC.Collect();
            }
            return(null);
        }
Example #21
0
        /// <summary>
        /// 显示支付二维码,跳转至手机详情页再进行支付
        /// </summary>
        /// <param name="productId"></param>
        /// <param name="hc"></param>
        /// <returns></returns>
        public IActionResult ProductPayCode(int productId, int hc)
        {
            var products = ProductModel.GetFakeProductList();
            var product  = products.FirstOrDefault(z => z.Id == productId);

            if (product == null || product.GetHashCode() != hc)
            {
                return(Content("商品信息不存在,或非法进入!2004"));
            }

            //使用 JsApi 方式支付,引导到常规的商品详情页面
            string url        = $"http://sdk.weixin.senparc.com/TenPayRealV3/JsApi?productId={productId}&hc={product.GetHashCode()}&t={SystemTime.Now.Ticks}";
            var    fileStream = QrCodeHelper.GerQrCodeStream(url);

            return(File(fileStream, "image/png"));
        }
Example #22
0
        public HttpResponseMessage GetQrCode(string out_trade_no)
        {
            LogHelper.Log.Debug("GetQrCode:" + out_trade_no);

            var order = CacheHelper.Get <OrderDTO>(out_trade_no);

            System.IO.MemoryStream MStream1 = new System.IO.MemoryStream();
            QrCodeHelper.BuildQrCode(order.Order_QRUrl, MStream1, "~/wdi.ico");
            var resp = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new ByteArrayContent(MStream1.ToArray())
            };

            resp.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
            return(resp);
        }
Example #23
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string filePath = System.Web.HttpRuntime.AppDomainAppPath + "images\\base64.jpg";

            if (File.Exists(filePath))
            {
                //return;
            }
            else
            {
                QrCodeHelper.StrToImg(@"123+abc+网上的例QrcodeVersion的范围值是0-40,0的含义是表示压缩的信息量将会根据实际传入值确定,只有最高上限的控制,而且图片的大小将会根据信息量自动缩放。1-40的范围值,则有固定的信息量上限,而且图片的大小会固定在一个大小上,不会根据信息量的多少而变化。");
                // Bitmap mp = Qrcodehelper.StrToImg(@"123+abc+网");
            }
            string s = QrCodeHelper.ImgToStr(filePath);

            Label1.Text = s;
        }
Example #24
0
        public void Test_GetQrCode_ContentMultipleText_Should_GenerateQrCode()
        {
            var content = new QrCodeMockData
            {
                Id    = 123456,
                Name  = "Apollo",
                Date  = DateTime.UtcNow.AddDays(15),
                Price = new decimal(25.65)
            };

            var result             = QrCodeHelper.GetQrCode(content);
            var deserializedResult = GetQrCodeContent <QrCodeMockData>(result);

            deserializedResult.Id.Should().Be(content.Id);
            deserializedResult.Name.Should().Be(content.Name);
            deserializedResult.Date.Should().Be(content.Date);
            deserializedResult.Price.Should().Be(content.Price);
        }
Example #25
0
        // GET api/<controller>
        /// <summary>
        /// 线下客户端获取微信登录二维码
        /// </summary>
        /// <returns></returns>
        public JsonResult <string> Get(string lockCode)
        {
            JsonResult <string> result = new JsonResult <string>();

            result.code = 0;
            result.msg  = "OK";
            string uuid      = Utils.GetWeChatUUID();
            string long_url  = WeChateSiteHelper.getCRContent(uuid);
            string cqContent = WeChatAccessTokenAPI.GetShortURL(long_url);

            if (string.IsNullOrEmpty(cqContent))
            {
                cqContent = long_url;
            }
            string fileName = string.Format("{0}.png", uuid);
            string filePath = FileHelper.GetPicFilePath(fileName);

            if (QrCodeHelper.CreateImgCode(cqContent, filePath))
            {
                result.code      = 1;
                result.Result    = FileHelper.GetPicFileURL(fileName);
                result.ResultMsg = uuid;

                ThreadPool.QueueUserWorkItem(new WaitCallback(p => {
                    //图片记录进缓存,定期清理
                    string key = CacheKey.GetQrCodeKey(DateTime.Now);
                    RedisBase.List_Add <string>(key, filePath);
                    RedisBase.List_SetExpire(key, DateTime.Now.AddDays(2));

                    //记录日志
                    WeChatLogin login = new WeChatLogin();
                    login.State       = 0;
                    login.UUID        = uuid;
                    login.LoginData   = DateTime.Now.ToString("yyyy-MM-dd");
                    login.CreateTime  = DateTime.Now;
                    login.LockCode    = lockCode;
                    SaveWeChatLogin(login);
                }), null);
            }


            return(result);
        }
Example #26
0
        private async void ConnectAsHost(string username)
        {
            await WebSocketClient.Instance.ConnectToServerAsync();

            WebSocketClient.Instance.RegisterForMessage <LoginResponse>(HandleLoginResponse);
            WebSocketClient.Instance.RegisterForMessage <PlayerJoinedResponse>(HandlePlayerJoined);
            WebSocketClient.Instance.RegisterForMessage <TimerResponse>(HandleTimerResponse);

            await WebSocketClient.Instance.SendMessageAsync(new LoginMessage()
            {
                @event = "login", username = username
            });

            GameLogic.Instance.Self = new Player()
            {
                PlayerName = username
            };
            QrCodeHelper.CreateQrCode(username);
        }
Example #27
0
        public void UT_QrCodeTest()
        {
            Random rand      = new Random();
            int    accountId = rand.Next();
            int    codeId    = rand.Next();
            var    url       = UrlHelper.GetUrl(accountId, codeId);

            byte[]    data;
            const int count = 5;

            for (int i = 0; i < count; i++)
            {
                foreach (var file in new DirectoryInfo("Images").GetFiles("image_*.jpg"))
                {
                    using (Bitmap bmp = (Bitmap)Bitmap.FromFile(file.FullName))
                    {
                        int x, y, width, height;
                        do
                        {
                            x     = rand.Next() % (bmp.Width * 3 / 4);
                            y     = rand.Next() % (bmp.Height * 3 / 4);
                            width = rand.Next() % bmp.Width / 4;
                            //height = rand.Next() % bmp.Height / 4;
                            height = width;
                        }while (x + width >= bmp.Width || y + height >= bmp.Height || width < 80 || width > 400);

                        var temp = QrCodeHelper.Draw(url, bmp, new Rectangle(x, y, width, height));

                        Bitmap clip = new Bitmap(width, height);
                        using (Graphics g = Graphics.FromImage(clip))
                        {
                            g.DrawImage(temp, new Rectangle(0, 0, width, height), new Rectangle(x, y, width, height), GraphicsUnit.Pixel);
                        }
                        data = QrCodeHelper.ImageToByteArray(clip);

                        File.WriteAllBytes("temp.png", data);
                        string barcodeText = QrCodeHelper.Decode(data);
                        Assert.AreEqual(url, barcodeText);
                    }
                }
            }
        }
Example #28
0
        /// <summary>
        /// 获取问卷你调查地址二维码
        /// </summary>
        /// <param name="surveyId"></param>
        /// <returns></returns>
        public ResultVO GetSurveyQrCode(string staticUrl)
        {
            ResultVO result = new ResultVO()
            {
                Result = 0
            };

            try
            {
                var tmpBitmap = QrCodeHelper.GeneratorQrImage(staticUrl);
                var tmpBytes  = ConvertHelper.BitmapToBytes(tmpBitmap, System.Drawing.Imaging.ImageFormat.Gif);
                var Base64Str = Convert.ToBase64String(tmpBytes);

                result.Data   = Base64Str;
                result.Result = 1;
            }
            catch (Exception ex)
            {
                result.ErrorMsg = ex.Message;
            }
            return(result);
        }
        public async Task <IHttpActionResult> BindingWeChartCQ()
        {
            JsonResult <string> result = new JsonResult <string>();

            result.code = 0;
            result.msg  = "OK";
            await Task.Run(() => {
                string uuid      = Utils.GetWeChatUUID();
                string long_url  = WeChateSiteHelper.getCRContent(uuid);
                string cqContent = WeChatAccessTokenAPI.GetShortURL(long_url);
                if (string.IsNullOrEmpty(cqContent))
                {
                    cqContent = long_url;
                }
                string fileName = string.Format("{0}.png", uuid);
                string filePath = FileHelper.GetPicFilePath(fileName);
                if (QrCodeHelper.CreateImgCode(cqContent, filePath))
                {
                    result.code      = 1;
                    result.Result    = FileHelper.GetPicFileURL(fileName);
                    result.ResultMsg = uuid;

                    //图片记录进缓存,定期清理
                    string key = CacheKey.GetQrCodeKey(DateTime.Now);
                    RedisBase.List_Add <string>(key, filePath);
                    RedisBase.List_SetExpire(key, DateTime.Now.AddDays(2));

                    ApiUserManager userManager = new ApiUserManager(ActionContext);
                    string bindkey             = string.Format("bind_{0}", uuid);
                    RedisBase.Item_Set(bindkey, userManager.User);
                    RedisBase.ExpireEntryAt(bindkey, DateTime.Now.AddHours(1));
                }
            });

            return(Ok(result));
        }
        public async Task <IHttpActionResult> EvaluationResultShare(string id)
        {
            JsonResult <string> result = new JsonResult <string>();

            result.code = 1;
            result.msg  = "OK";
            await Task.Run(() => {
                string filename = string.Format("ER{0}.png", id);
                string filepath = Path.Combine(SystemSet.ResourcesPath, SystemSet.QrCodePic, filename);
                if (!File.Exists(filepath))
                {
                    string dir = Path.GetDirectoryName(filepath);
                    if (!Directory.Exists(dir))
                    {
                        Directory.CreateDirectory(dir);
                    }
                    string qrcode = ShareQrCodeContent.EvaluationResultShareQrCodeContent(id);
                    QrCodeHelper.CreateImgCode(qrcode, filepath);
                }
                result.Result = string.Format("{0}/{1}/{2}", SystemSet.WebResourcesSite, SystemSet.QrCodePic, filename);
            });

            return(Ok(result));
        }