上一篇我们已经学会了如何使用微信支付的退款接口发起退款请求,并且能判断退款成功与否,为了安全起见,最好的操作还是在收到退款返回消息后,不管成功与否都去查询一下,一切以查询出来的数据为准。所以,今天讲的退款查询就十分重要了,当然,如果你和我一样付款给我就别想退款,那么你可以忽略这一块。嘿嘿·······
提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态。
注意:如果单个支付订单部分退款次数超过20次请使用退款单号查询
接口链接:https://api.mch.weixin.qq.com/pay/refundquery
是否需要证书:不需要
请求参数我就不说了,老规矩,自己看文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_5
PHP查询退款订单源码
复制
//退款 public function refund($order){ $apiparams=[ 'appid'=>self::appid, 'mch_id'=>self::mch_id, 'out_trade_no'=>$order, 'nonce_str'=>Util::getNonceStr(), 'out_refund_no'=>Util::getNonceStr(), 'total_fee'=>1, 'refund_fee'=>1 ]; $apiparams['sign']=$this->GetSign($apiparams); $xml=Util::ArrToXml($apiparams); $result=Util::postXmlCurl($xml,'https://api.mch.weixin.qq.com/secapi/pay/refund',true); $arr=Util::XmlToArr($result); if($arr['return_code']=='SUCCESS'){ file_put_contents('./log.txt',$result); return 'success'; }else{ file_put_contents('./error.txt',$result); return false; } }
里面需要的参数自己换成自己的,不清楚有哪些参数的,或者不清楚如何使用的,请从第一篇文章看起,这个方法里面有些方法源码在微信支付PHP开发教程三统一下单实例一文中,自行复制粘贴,我就不再贴出了。
退款订单的查询结果会输出到log.txt文件中,如果你想要解析返回的xml数据,请使用前面源码中的XmlToArr
方法转换成数组使用,数组很简单吧,应该会用的。
评论 (3)