关于微信小程序云开发,申请退款接口返回“订单不存在”的问题

关于微信小程序云开发,申请退款接口返回“订单不存在”的问题


微信支付的退款接口返回“订单不存在”,有可能是因为传入的商户订单号或微信订单号有误,但本文要讲的是关于接口迭代的问题。
近期在做小程序支付功能或比较关注小程序文档的小伙伴,可能已经知道了在上个月微信开发者工具推出的1.03.2005140版本云支付是支持微信支付的,当然之前的版本也支持,只不过需要自己封装云函数去request接口链接,这里就不多说了。
关于微信小程序云开发,申请退款接口返回“订单不存在”的问题_第1张图片
笔者欣然将工具升级,并将自己封装的微信支付函数干掉,换上云开发自带cloudPay接口。
测试支付没啥问题,但在测试退款接口的时候发现,近些天的订单可以申请退款,但上个月的订单总是退款失败并返回“订单不存在”错误描述。于是,我用订单查询接口去查也是报一样的错误。
我想了想,最近支付这一块的改动无非就是把自封装的调用接口链接的形式换成了直接调用云开发提供的原生接口。于是乎我把之前的代码(还好我删之前备份了)贴回来,测试结果赫然相反,最近支付的订单查询返回“订单不存在”,而上个月的订单都能返回正常的结果。
原因很简单,仔细读文档的小伙伴应该已然发现了,云开发的关于微信支付的几个接口的传参和微信支付开发文档上的是有略微不同的。贴上 云开发微信支付的文档地址
微信支付开发文档的接口一般需要将用户的商户号作为“mch_id”字段的值入参,而云支付的接口则需要将用户的商户号作为“sub_mch_id”字段的值。
在这里插入图片描述
根据返回参数可看到,云开发的接口官方给我们默认了一个mch_id值作为主商户号,而我们传入的用户的商户号在这里其实是作为子商户的。当然这不会影响支付、退款等结果,但是如果你用一个以主商户号为A的条件下下单的订单号,去主商户号为B子商户号为A的条件下查询,当然是不存在的。就是说商户主体不一样了。
所以,要更换接口的小伙伴们要注意,是否该保留原接口,对新旧订单加以区分,以保证以前的订单的查询和退款功能。
第一次发文,希望帮助到大家避开这个坑。

你可能感兴趣的:(小程序开发)