wechatpay-go icon indicating copy to clipboard operation
wechatpay-go copied to clipboard

退款的状态解析错误

Open CoMixCo opened this issue 2 years ago • 8 comments

  • Go 版本:1.192
  • wechatpay-go 版本:v0.2.16

/services/refunddomestic/models.go 第880行: Status *Status json:"status" 解析失败,无法获取退款状态 json字段应该是 json:"json_status"

CoMixCo avatar Jan 09 '23 16:01 CoMixCo

应该是 refund_status 吧 这个问题什么时候给更新啊

zhangllee avatar Feb 06 '23 02:02 zhangllee

没人管吗?大家遇到这个问题是怎么解决的呢?

yinmingming avatar May 18 '23 10:05 yinmingming

@zhangllee 很奇怪的是,退款接口返回的里面是status,推送通知过来的又是refund_status,而且通知里推过来的channel是空的,导致解析报错了,服了

jianxing-xu avatar Jul 10 '23 08:07 jianxing-xu

你们怎么处理的?手撸一份?

kokais avatar Aug 11 '23 03:08 kokais

通知里推过来的channel是空的,导致解析报错了

这个有人处理吗?

reechou avatar Aug 18 '23 09:08 reechou

反正我是通过if notifyReq.EventType == "REFUND.SUCCESS" {判断,然后传的【refunddomestic.STATUS_SUCCESS,】给业务层处理。 或者自己手撸一个struct用于接收 /Resource/Plaintext

'''

handler, err := mall.GetWechatPayHandler(mchid)
if err != nil {
	global.GVA_LOG.Warn("微信退款回调处理失败", zap.Error(err))
	return mparam.WxPayCallbackResp{Code: "failed", Message: "处理失败"}, err
}

// 解析异步通知的参数
refund := new(refunddomestic.Refund)
notifyReq, err := handler.ParseNotifyRequest(context.Background(), c.Request, refund)

if err != nil {
	global.GVA_LOG.Warn("微信退款回调处理失败", zap.Error(err))
	return mparam.WxPayCallbackResp{Code: "failed", Message: "验签或解密失败"}, err
}

if notifyReq.EventType == "REFUND.SUCCESS" {

	//  业务处理
	// 解析异步通知的参数
	if err = json.Unmarshal([]byte(notifyReq.Resource.Plaintext), &refund); err != nil {
		global.GVA_LOG.Warn("微信退款回调处理失败", zap.Error(err))
		return mparam.WxPayCallbackResp{Code: "failed", Message: "解析参数失败"}, err
	}

	outRefundNo := strings.TrimPrefix(*refund.OutRefundNo, global.GVA_CONFIG.Wechat.TradeNoPrefix)
	outTradeNo := strings.TrimPrefix(*refund.OutTradeNo, global.GVA_CONFIG.Wechat.TradeNoPrefix)

	// 后续处理 .......................
}

'''

ccfish86 avatar Aug 21 '23 09:08 ccfish86

直到今天,这个问题依旧,是go用户量太小懒得理?这个问题很难解决吗?改个字段名就行了的,愣是不修复,搞到测试半天,测试又麻烦!

Jeremyly avatar Jul 13 '24 05:07 Jeremyly

直到今天,这个问题依旧,是go用户量太小懒得理?这个问题很难解决吗?改个字段名就行了的,愣是不修复,搞到测试半天,测试又麻烦!

这个BUG 但凡你提交个commit,也不至于留到现在

ccfish86 avatar Jul 15 '24 01:07 ccfish86