Пример #1
0
        /// <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();
        }