JeffreySu / WeiXinMPSDK

微信全平台 .NET SDK, Senparc.Weixin for C#,支持 .NET Framework 及 .NET Core、.NET 8.0。已支持微信公众号、小程序、小游戏、微信支付、企业微信/企业号、开放平台、JSSDK、微信周边等全平台。 WeChat SDK for C#.
https://weixin.senparc.com
Apache License 2.0
8.35k stars 4.34k forks source link

小程序二维码无法生成时,未返回正常的异常结果代码 #2335

Open fengshi19888 opened 3 years ago

fengshi19888 commented 3 years ago
问题描述

调用代码WxAppApi.GetWxaCodeUnlimitAsync ,不能正常提示服务器错误。

重现问题步骤(如果可以)

使用如下代码进行,小程序二维码生成调用

using (var ms = new MemoryStream())
 {
 string fileName = Guid.NewGuid().ToString() + ".jpg";
 string path = string.Format("{0}/{1}/{2}", _fileSaveOptions.FlatFromImageSavePath, "QrCode", fileName);
      string savePath = _fileSaveOptions.DeafaultSavePath + _fileSaveOptions.FlatFromImageSavePath + "\\QrCode\\" + fileName;
                FileInfo fileInfo = new FileInfo(savePath);
                Directory.CreateDirectory(fileInfo.DirectoryName);
                WxJsonResult result = await WxAppApi.GetWxaCodeUnlimitAsync(_senparcWeixinSetting.WxOpenAppId, ms, scene, page);
                ms.Seek(0, SeekOrigin.Begin);

                var image = Image.FromStream(ms);
                if (image != null)
                {
                    Directory.CreateDirectory(savePath);
                    image.Save(savePath);
                }
}

如果服务器返回错误,则不能正常提示错误信息。

建议解决方案



##### 发现问题的模块
- [ ] Senparc.Weixin.WxOpen 版本:3.10.200.1

##### 模块对应的 .net 版本

- [x] .net core 3.x

##### 开发环境
- [x] Visual Studio 2019
kinglionsoft commented 3 years ago

获取文件流前,还是需要验证errcode

{"errcode":40169,"errmsg":"invalid length for scene, or the data is not json string rid: 60eeb08d-3d8491c6-71bea0f3"}