/// <summary> /// 扫码支付模式一生成二维码 /// </summary> /// <param name="id">订单号</param> public void NativePayOne(string id) { SortedDictionary <string, object> orderParams = new SortedDictionary <string, object>(); orderParams.Add("appid", ApiModel.AppID); //公众帐号id orderParams.Add("mch_id", ApiModel.MchID); //商户号 orderParams.Add("time_stamp", Common.GetTimeStamp()); //时间戳 orderParams.Add("nonce_str", Common.GetNonceStr()); //随机字符串 orderParams.Add("product_id", id); //商品订单号 orderParams.Add("sign", Pay.GetSign(orderParams, ApiModel.MchAPISecret)); //签名 //预支付URL var url = Pay.GetPayUrlForNativeOne(orderParams); //初始化二维码生成工具 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; qrCodeEncoder.QRCodeVersion = 0; qrCodeEncoder.QRCodeScale = 4; //将字符串生成二维码图片 Bitmap image = qrCodeEncoder.Encode(url, Encoding.Default); //保存为PNG到内存流 MemoryStream ms = new MemoryStream(); image.Save(ms, ImageFormat.Png); //输出二维码图片 Response.BinaryWrite(ms.GetBuffer()); Response.End(); }