微信開發之帶參數的二維碼


用的c#開源框架Senparc.Weixin

二維碼圖片下載功能實現如下:

  // CreateQrCodeResult qrCodeResult = QrCodeApi.Create(AppId, 2, i, 604800);//(expireSeconds>0) 臨時二維碼(expireSeconds=0)永久二維碼
                    var accessToken = AccessTokenContainer.TryGetToken(WebConfigurationManager.AppSettings["WeixinAppId"], WebConfigurationManager.AppSettings["WeixinSecret"]);
                    CreateQrCodeResult qrCodeResult = QrCodeApi.CreateByStr(accessToken, i.ToString());// 永久二維碼調用此方法
                    MemoryStream memStream = new MemoryStream();
                    QrCodeApi.ShowQrCode(qrCodeResult.ticket, memStream);
                    long leng = memStream.Length;
                    System.Drawing.Image img = System.Drawing.Bitmap.FromStream(memStream);
                    url = QrCodeApi.GetShowQrCodeUrl(qrCodeResult.ticket);

 帶參數的二維碼值獲取事件如下 訂閱事件與掃描事件:

 

public override IResponseMessageBase OnEvent_ScanRequest(RequestMessageEvent_Scan requestMessage)
        {
            //通過掃描關注
            var responseMessage = CreateResponseMessage<ResponseMessageText>();
            MYT_RequestMessage rm = new MYT_RequestMessage()
            {
                CreateTime = requestMessage.CreateTime,
                FromUserName = requestMessage.FromUserName,
                MsgId = requestMessage.MsgId,
                MsgType = requestMessage.MsgType.ToString(),
                ToUserName = requestMessage.ToUserName,
                Latitude = 0,
                Longitude = 0,
                Precision = 0
            };
            var weixin = new IyouBox.Service.WeiXin.WeiXinQrCode();
            AdvancedAPIs.User.UserInfoJson userInfo = new AdvancedAPIs.User.UserInfoJson();
            Log4NetHelper.WriteCustomLog("通過掃描關注。" + requestMessage.EventKey);
            if (!string.IsNullOrEmpty(requestMessage.EventKey))
            {
                if (weixin.IsQrInfoExit(requestMessage.FromUserName))
                {
                    userInfo = UserApi.Info(appId, rm.FromUserName);
                    weixin.SaveQrInfo(rm, requestMessage.EventKey, userInfo.unionid);
                }
            }
            responseMessage.Content = "通過掃描關注。參數的值為" + requestMessage.EventKey + "UnionId" + userInfo.unionid;
            return responseMessage;
        }

  

 public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage)
        {
            var responseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage);
            Log4NetHelper.WriteCustomLog("訂閱(關注)事件" + requestMessage.EventKey);
            MYT_RequestMessage rm = new MYT_RequestMessage()
            {
                CreateTime = requestMessage.CreateTime,
                FromUserName = requestMessage.FromUserName,
                MsgId = requestMessage.MsgId,
                MsgType = requestMessage.MsgType.ToString(),
                ToUserName = requestMessage.ToUserName,
                Latitude = 0,
                Longitude = 0,
                Precision = 0
            };
            var weixin = new IyouBox.Service.WeiXin.WeiXinQrCode();
            AdvancedAPIs.User.UserInfoJson userInfo = new AdvancedAPIs.User.UserInfoJson();
            if (!string.IsNullOrEmpty(requestMessage.EventKey))
            {
                if (weixin.IsQrInfoExit(requestMessage.FromUserName))
                {
                    userInfo = UserApi.Info(appId, rm.FromUserName);
                    weixin.SaveQrInfo(rm, requestMessage.EventKey, userInfo.unionid);

                }
            }
            responseMessage.Content = GetWelcomeInfo() + "關注事件過來的請求參數值為:" + requestMessage.EventKey + "UnionId" + userInfo.unionid;
            return responseMessage;
        }

  以上就是帶參數的二維碼功能的實現

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM