zoukankan      html  css  js  c++  java
  • 微信退款全款退,退一部分,分开退一次以上区别跳坑[订单金额或退款金额与之前请求不一致]

    订单整单退款跟只退一次的情况,我之前写的都是类似这种,out_trade_no跟out_refund_no都放订单号,但是这次出现了一个订单退款一次以上的问题,官方错误信息为[订单金额或退款金额与之前请求不一致,请核实后再试]

    //微信退款
                $wechatData = array(
                    'out_trade_no' => $data['ordernum'],
                    'out_refund_no'=> $data['ordernum'],
                    'total_fee' => $data['so_sum_price'],
                    'refund_fee' => $refund_money
                ); 
    

    贴上官方文档说明,人家还重点标红了:

    应用场景
    
    当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家,微信支付将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家帐号上。
    
    注意:
    
    1、交易时间超过一年的订单无法提交退款
    
    2、微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。申请退款总金额不能超过订单金额。 一笔退款失败后重新提交,请不要更换退款单号,请使用原商户退款单号
    
    3、请求频率限制:150qps,即每秒钟正常的申请退款请求次数不超过150次
    
        错误或无效请求频率限制:6qps,即每秒钟异常或错误的退款申请请求不超过6次
    
    4、每个支付订单的部分退款次数不能超过50次
    
    5、如果同一个用户有多笔退款,建议分不同批次进行退款,避免并发退款导致退款失败
    

     一个订单退款一次以上,就不能再拿之前退款的out_refund_no参数了,我这边就改成了下面的,就好了,我们业务只有整单退,跟部分商品退款,所以我就拼接了订单里商品的唯一标识(同一订单不存在重复问题)

    //微信退款
    		$wechatData = array(
    	            'out_trade_no' => $data['ordernum'],
    	            'out_refund_no'=> $data['ordernum'].$sog_id,
    	            'total_fee' => $data['so_sum_price'],
    	            'refund_fee' => $refund_money
    	        ); 
    
  • 相关阅读:
    XP系统无法安装net framework 4.0 解决方法
    StructureMap DI & IoC 工具介绍
    Castle ActiveRecord学习实践(7)级联
    Error.popStackFrame 函数
    抽象泄漏(leaky abstraction)
    [Exception]IIS6:The entry "*" has already been added的解决方法
    ASP.NET 设计模式 读书摘记2
    PHP模块开发(一) PHP环境搭建
    PHP函数HTTP 相关函数
    PHP函数FTP文件传输函数
  • 原文地址:https://www.cnblogs.com/gyrgyr/p/13500762.html
Copyright © 2011-2022 走看看