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