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