收藏
回答

云开发微信支付中查询退款(CloudPay.queryRefund)返回结果全是空数组,怎么判断?

根据接口文档,使用CloudPay.queryRefund()查询退款状态,returnCode和resultCode都是“SUCCESS”的情况下,返回数据不符合预期,存在2个问题:

1、返回的字段和接口文档中的返回字段不同,比如接口文档中提到退款状态字段是refund_status_$n,但返回中没有该字段

2、猜想接口文档可能和实际情况未同步,根据新的字段的名称语义猜测返回中的refundStatusList字段代表每笔退款的退款状态,该字段为空数组(1笔退款通过商户后台查询明明已经退款成功了)。

接口文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloudservice/wxcloud/reference-sdk-api/open/pay/CloudPay.queryRefund.html

问题:这种情况下,如何判断退款是否成功?

回答关注问题邀请回答
收藏

1 个回答

  • 四.
    四.
    星期一 16:15

    查询时使用的单号 transaction_id 、 out_trade_no 、out_refund_no都试过,返回的结果是一样的,字段都是空数组

    星期一 16:15
    有用
    回复 1
    • 四.
      四.
      星期一 17:42
      找到解法了,我一开始的想法是在退款回调通知里自己使用CloudPay.queryRefund查询退款结果来更新订单信息(因为按照处理支付回调通知的经验,回调通知里的信息有时无法判断状态),所以出现了上面的困惑。

      被微信的文档误导(如图1),我以为支付和退款的回调是同一个文档,后来才发现退款回调是单独的(见文档https://pay.weixin.qq.com/doc/v2/merchant/4011935223),于是换个思路,直接根据退款回调信息里的refundStatus来判断退款状态,就绕过了CloudPay.queryRefund带来的问题。

      微信的文档中记录的字段和实际情况有出入,实际的通知内容可以通过云开发控制台查看,入口如图2
      星期一 17:42
      回复
登录 后发表内容