Esempio n. 1
0
        public static QrCodeCreateResponse SendQrCodeCreateRequest(int sceneID, string QrType, int ExpireSeconds)
        {
            int retry = 0;
            QrCodeCreateResponse res = null;

            do
            {
                QrCodeCreateRequest reqeust = new QrCodeCreateRequest()
                {
                    AccessToken = GetAccessToken(null),
                    AppIdInfo   = new AppIdInfo()
                    {
                        AppID     = PaymentConfig.WeiXinConfig.AppID,
                        AppSecret = PaymentConfig.WeiXinConfig.AppSecret,
                    },
                    QrCodeCreateMessage = new QrCodeCreateMessage()
                    {
                        SceneId       = sceneID,
                        ExpireSeconds = ExpireSeconds,
                        ActionName    = QrType,
                    }
                };
                IMpClient mp = new MpClient();

                res = mp.Execute(reqeust);
                if (!RefreshAccessToken(res, reqeust.AccessToken))
                {
                    break;
                }
                retry++;
            } while (retry < 2 && res.IsError);
            return(res);
        }
        public static void QrCodeCreateMethod()
        {
            IMpClient mpClient = new MpClient();
            var       request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppId = AppId, AppSecret = AppSecret
                }
            };
            var response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            var msg = new QrCodeCreateMessage()
            {
                SceneId        = 22,
                ExpireSeconds  = 1800,
                ActionName     = "QR_LIMIT_SCENE", //QR_SCENE为临时,QR_LIMIT_SCENE为永久
                LocalStoredDir = "D:\\"
            };

            var createRequest = new QrCodeCreateRequest()
            {
                AccessToken         = response.AccessToken.AccessToken,
                QrCodeCreateMessage = msg,
                SendData            = msg.ToJsonString()
            };

            var createResponse = mpClient.Execute(createRequest);

            ticketKey = createResponse.QrCodeUrl;
            if (createResponse.IsError)
            {
                HttpContext.Current.Response.Write("创建二维码失败,错误信息为:" + createResponse.ErrInfo.ErrCode + "-" + createResponse.ErrInfo.ErrMsg);
            }
            else
            {
                HttpContext.Current.Response.Write("创建二维码成功,二维码链接地址为:" + createResponse.QrCodeUrl + "本地存储路径为:" + createResponse.LocalFilePath);
            }
        }