应用场景
当买家要求退款时,订单中如果包含全场/单品优惠,微信支付将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家帐号上。
含优惠订单退款的计算逻辑
定义
订单金额:订单优惠前的金额
退款金额:发起退款的金额,未扣除优惠部分
实退金额:买家实际收到的退款金额,退款金额减去优惠金额的部分
1. 包含全场优惠
订单金额a(整单享受全场优惠x元),发起退款金额b,实退金额=b-b/a*x。
例如:一笔订单100元(整单享受全场优惠10元),发起退款50元时,会按照比例分摊优惠金额5元(优惠金额=50/100*10),买家收到实退金额为45元。
2. 包含单品优惠
订单金额a,包含商品A m元(A享受x元单品优惠)、商品B n元(B不享受单品优惠)。发起退商品A时,买家收到实退金额=m-x,发起退商品B时,买家收到实退金额=n。
例如:一笔订单100元,买家购买商品A一个10元(商品A享受2元单品优惠),商品B90元。退商品A时,扣除掉2元的单品优惠金额,买家收到实退金额8元;退商品B时,B未享受优惠,买家收到实退金额90元。
3. 包含多个单品共享的单品优惠,退部分优惠单品
订单金额a,包含商品A i个共m元(A享受x元单品优惠)、商品B n元(B不享受单品优惠)。发起退款j(j<=i)个商品A时,买家收到实退金额=m*j/i-x*j/i,发起退款商品B时,买家收到实退金额=n。
例如:一笔订单100元,买家购买商品A 2个共10元(商品A享受2元单品优惠),商品B90元。退1个商品A时,1个商品A原价5元,扣除掉1元的优惠金额,买家收到实退金额4元;退商品B时,B未享受优惠,买家收到实退金额90元。
4. 既包含单品优惠,又包含全场优惠
订单金额a(整单享受全场优惠i元),包含商品A m元(A享受x元单品优惠)、商品B n元(不享受单品优惠)。发起退款商品A时,买家收到实退金额=m-x-(m-x)/(a-x)*i,发起退款商品B时,买家收到实退金额=n-n/(a-x)*i。
例如:一笔订单100元(整单享受全场优惠10元),买家购买商品A一个10元(A享受2元单品优惠),商品B90元。退商品A时,扣除掉2元的单品优惠金额,以及全场优惠分摊金额=(10-2)/(100-2)*10=0.82元,买家收到实退金额7.18元;退商品B时,B未享受单品优惠,扣除全场优惠分摊金额=90/(100-2)*10,买家收到实退金额80.82元。
不支持使用单品部分退款的场景
以下场景在使用单品部分退款时会报错,需检查商家系统的逻辑是否正确:
1)累计退款金额大于订单金额
2)单品累计退款金额大于单品金额
3)退款请求的单品中,如果一款单品有多条记录,会拦截报错。例如单品信息传输单品A退1个、单品A退1个、单品B退1个,会报错。传输单品A退2个、单品B退1个即可
以下场景不支持单品部分退款,建议使用整单退款:
1)2019年1月1日之前的订单不支持单品部分退款。
2)在提交订单时传入的单品信息,如果存在“goods_id相同,单品单价不同”的情况,不支持单品部分退款。
3)在提交订单时,如果订单金额小于单品累加的金额,不支持部分退款。例如订单金额100元,而单品信息中的累加金额大于100元,这个场景不支持部分退款。单品信息中的累加金额需小于等于100元。
4)单笔订单只能用同一个退款接口进行退款。例如订单使用过其他退款接口退过,则无法再使用单品部分退款的接口。
什么场景会退券
当代金券仍在有效期内,且金额全部退还给用户时,会退券;如果只是部分金额退还或已超过有效期,不会给用户退券。
例1:订单100元,全场券10元,整单退时,10元的券会退还给用户;如果只退50元,则券不会退给用户
例2:订单100元,单品A2个共90元,享受减10元的单品优惠,单品B10元。当退2个单品A时,会退还10元的单品优惠;只退1个单品A时,不会退还10元的单品优惠。
预充值与免充值代金券退款规则:
https://developers.weixin.qq.com/community/pay/article/doc/0006e002fbcf2033279bf018051013
不是有单品优惠的时候,不能部分退款吗??
是预充值能退?
2. 没有传good_id
3. 两个单品相加的金额 等于 订单金额
4. 只发起一次退款
综上,为啥不能退嘞... 是不是要单品退款的话 是必传goods_id的?