Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

退款回调通知数据无法获取,紧急 #2906

Open
bl93014 opened this issue Aug 27, 2023 · 9 comments
Open

退款回调通知数据无法获取,紧急 #2906

bl93014 opened this issue Aug 27, 2023 · 9 comments
Labels
resolved 已解决

Comments

@bl93014
Copy link

bl93014 commented Aug 27, 2023

01
按照sdk示例的写法,退款回调通知无法及时获取到微信发送过来的body数据

02
sdk里面的代码拿出来单独写居然可以获取到body数据

Senparc.Weixin.TenPayV3 使用版本 0.7.10.4

@JeffreySu
Copy link
Owner

@bl93014 反复测试了一下是可以正常收到信息的,我们的在线 Demo 您可以查看一下(也可以运行试一下):https://sdk.weixin.senparc.com/TenPayApiV3/ProductList

是否方便按照 Issue 的要求格式提供一下部署环境等信息?谢谢!

@bl93014
Copy link
Author

bl93014 commented Sep 5, 2023 via email

@bl93014
Copy link
Author

bl93014 commented Sep 6, 2023

问题重现步骤:
1、RefundAsync 发起退款申请,指定了回调通知地址
2、利用内网穿透工具(natapp)在本机进行退款回调接收调试

发现问题的模块:
Senparc.Weixin.TenPayV3 版本:0.7.10.4

模块对应的.net版本:
netstandard2.1

开发环境:
Visual Studio 2022 .net6

缓存环境:
服务器内存缓存(默认)

系统环境:
Windows10 企业版

由于会涉及到多个商户信息,配置信息采取了接口内部每次注册的方式:
image

最终的错误:
image

麻烦看下是哪里的写法不对,还是怎么回事,谢谢

@JeffreySu
Copy link
Owner

@bl93014 确认一下:上述的 RegisterService.Start() 的代码您是运行在哪里的?是全局一次还是可能运行了多次?

如果是多次需要执行的话,可以不使用 register 对象(这个是为了方便大家在启动的时候一次性注册,所以做了链式编程),如果是在陈旭运行之后还需要注册,可以直接使用:

Senparc.Weixin.TenPay.Register.RegisterTenpayV3(null, _senparcWeixinSetting, "名称标识")

@bl93014
Copy link
Author

bl93014 commented Sep 14, 2023

上一次回复的内容,RegisterService.Start() 的代码是在程序运行之后,多次执行的,只在Program里面注册了一下这个
image

按照您的建议,我改成了下面这样
image

其中 var resHandler = new TenPayNotifyHandler(HttpContext, Senparc.Weixin.Config.SenparcWeixinSetting[key]); 第二个参数我是手动传入了,目前回调接收数据是正常的,但是出现了如下新的问题:

Senparc.Weixin.TenPayV3.Register.RegisterTenpayApiV3(null, _senparcWeixinSetting, key); 采用这种方式注册,SDK内部有些封装的函数内部是取全局的注册信息,导致无法获取到,如下所示:
image

image
上面面会直接取 Config.SenparcWeixinSetting.TenpayV3Setting 对象中的字段,出现异常。GetJsApiUiPackage 这个函数是不是可以考虑多提供一个入参或者怎么解决 Config.SenparcWeixinSetting.TenpayV3Setting 对象里面字段无法取值

麻烦看下是不是我哪里的写法有问题,比如:Senparc.Weixin.Config.SenparcWeixinSetting[key] 这个手动获取传参,谢谢

@JeffreySu
Copy link
Owner

@bl93014 注册的过程最终的目的其实就是在 Config.SenparcWeixinSetting.TenpayV3Setting 里面进行设置,所以你即使手动去配置也是可以的。,就像你说的 Senparc.Weixin.Config.SenparcWeixinSetting[key] 手动传参,也是没问题的。

@bl93014
Copy link
Author

bl93014 commented Oct 9, 2023

嗯,您再看下,Senparc.Weixin.TenPayV3.Register.RegisterTenpayApiV3(null, _senparcWeixinSetting, key); 采用这种方式注册之后,GetJsApiUiPackage 函数里面调用了 CreatePaySign(这个函数内部会直接用到 Config.SenparcWeixinSetting.TenpayV3Setting)

我调用 GetJsApiUiPackage函数,没有办法手动注册设置 Config.SenparcWeixinSetting.TenpayV3Setting,直接取 Config.SenparcWeixinSetting.TenpayV3Setting 对象中的字段,出现异常

image

@JeffreySu
Copy link
Owner

@bl93014 已经发布在 TenPayV3
v1.1.0:TenPaySignHelper.GetJsApiUiPackage() 方法添加 senparcWeixinSettingForTenpayV3 参数

非常感谢!欢迎继续提出宝贵意见和建议!

@JeffreySu JeffreySu added the resolved 已解决 label Oct 9, 2023
@bl93014
Copy link
Author

bl93014 commented Oct 18, 2023

感谢解决😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
resolved 已解决
Projects
None yet
Development

No branches or pull requests

2 participants