public string CreateQR_ForR(AlipayF2FPrecreateResult precreateResult, ETool_QR qr)
        {
            Bitmap        bt;
            string        filePath, virtualPath;
            string        enCodeString  = precreateResult.response.QrCode;
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();

            qrCodeEncoder.QRCodeEncodeMode   = QRCodeEncoder.ENCODE_MODE.BYTE;
            qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;
            qrCodeEncoder.QRCodeScale        = 3;
            qrCodeEncoder.QRCodeVersion      = 8;
            bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
            string filename = System.DateTime.Now.ToString("yyyyMMddHHmmss") + "0000" + (new Random()).Next(1, 10000).ToString()
                              + ".jpg";

            filePath = "/Content/QR/Tools/" + filename;

            Bitmap bkImg = new Bitmap(160, 180);


            Graphics g = Graphics.FromImage(bkImg);

            //获取水印位置设置
            ArrayList loca = new ArrayList();
            int       x    = 0;
            int       y    = 0;

            x = 5;
            y = 6;
            //   x = bkImg.Width / 2 - waterimg.Width / 2 - 90;
            //   y = MainImg.Height / 2 - 260;
            loca.Add(x);
            loca.Add(y);


            g.DrawImage(bt, new Rectangle(int.Parse(loca[0].ToString()), int.Parse(loca[1].ToString()), 149, 149));

            string     s  = "输入金额:" + qr.InputAmt;
            FontFamily ff = new FontFamily("黑体");
            Font       f  = new Font(ff, 10);
            SolidBrush b  = new SolidBrush(Color.Black);

            g.DrawString(s, f, b, 5, 155);
            //  Bitmap finImg = ImgHelper.ImageWatermark(bkImg, bt);

            virtualPath = filePath;



            filePath = System.Web.HttpContext.Current.Server.MapPath(filePath);
            bkImg.Save(filePath);

            bkImg.Dispose();
            bt.Dispose();
            return(virtualPath);
        }
Exemple #2
0
        public string PayF2F_ForR(EAliPayApplication app, string SellerId, string amount, ETool_QR qr, out ResultEnum status)
        {
            string result = "";

            IAlipayTradeService serviceClient = F2FBiz.CreateClientInstance(app.ServerUrl, app.AppId, app.Merchant_Private_Key, app.Version,
                                                                            app.SignType, app.Merchant_Public_key, app.Charset);

            _handler = new F2FPayHandler();

            AlipayTradePrecreateContentBuilder builder = _handler.BuildPrecreateContent_ForR(app, "", amount);

            AlipayF2FPrecreateResult precreateResult = serviceClient.tradePrecreate(builder);

            status = precreateResult.Status;

            switch (precreateResult.Status)
            {
            case ResultEnum.SUCCESS:
                result = _handler.CreateQR_ForR(precreateResult, qr);

                break;

            case ResultEnum.FAILED:
                result = precreateResult.response.Body;

                break;

            case ResultEnum.UNKNOWN:
                if (precreateResult.response == null)
                {
                    result = "配置或网络异常,请检查后重试";
                }
                else
                {
                    result = "系统异常,请更新外部订单后重新发起请求";
                }

                break;
            }

            return(result);
        }