Closed primexiao closed 4 months ago
Go 版本:go1.17.5 darwin/amd64
wechatpay-go 版本:v0.2.14
问题说明:
接口: 商家明细单号查询明细单API
微信官方文档:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter4_3_6.shtml
问题描述: 调用此接口的返回结果中并没有 mchid 字段,但接收结构体 transferbatch.TransferDetailEntity 的 MarshalJSON 方法中判断必须要 mchid 字段,导致 json encode 过程出错,详细见: https://github.com/wechatpay-apiv3/wechatpay-go/blob/7628bde2c8d1ade0c5b42529b61f00b5fcc152fc/services/transferbatch/models.go#L1078
建议: 应该取消对 Mchid 是否为空的判断。
initiate_time 字段也有这个问题,返回值 core.APIResult.Response.Body 没有找到 initiate_time 字段(但这个字段在官方文档的返回结构里面有)
不好意思,我们内部检查后发现应该是接口返回存在问题,会尽快对接口进行修复。
这个问题我们之前没有发现,是你对返回值 TransferDetailEntity
有再次序列化的需求才遇到的吗?
不好意思,我们内部检查后发现应该是接口返回存在问题,会尽快对接口进行修复。
这个问题我们之前没有发现,是你对返回值
TransferDetailEntity
有再次序列化的需求才遇到的吗?
(抱歉太久没看这里…)
是的,当时确实是想针对返回值 TransferDetailEntity
再进行结构化组装。不过后来发现里面限制比较多
不过, 看起来直接拿 core.APIResult
的 Response 更适合进一步定制化的需求 : )
退款的refund 也有这个问题 对 退款通知refund 序列化报错 , 说是channel为nil
Go 版本:go1.17.5 darwin/amd64
wechatpay-go 版本:v0.2.14
问题说明:
建议: 应该取消对 Mchid 是否为空的判断。