根据接口文档,使用CloudPay.queryRefund()查询退款状态,returnCode和resultCode都是“SUCCESS”的情况下,返回数据不符合预期,存在2个问题:
1、返回的字段和接口文档中的返回字段不同,比如接口文档中提到退款状态字段是refund_status_$n,但返回中没有该字段;
2、猜想接口文档可能和实际情况未同步,根据新的字段的名称语义猜测返回中的refundStatusList字段代表每笔退款的退款状态,该字段为空数组(1笔退款通过商户后台查询明明已经退款成功了)。
问题:这种情况下,如何判断退款是否成功?
查询时使用的单号 transaction_id 、 out_trade_no 、out_refund_no都试过,返回的结果是一样的,字段都是空数组
被微信的文档误导(如图1),我以为支付和退款的回调是同一个文档,后来才发现退款回调是单独的(见文档https://pay.weixin.qq.com/doc/v2/merchant/4011935223),于是换个思路,直接根据退款回调信息里的refundStatus来判断退款状态,就绕过了CloudPay.queryRefund带来的问题。
微信的文档中记录的字段和实际情况有出入,实际的通知内容可以通过云开发控制台查看,入口如图2