重要:本文最后更新于2019-06-07 08:47:57,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗。
上一篇我们已经学会了如何使用微信支付的退款接口发起退款请求,并且能判断退款成功与否,为了安全起见,最好的操作还是在收到退款返回消息后,不管成功与否都去查询一下,一切以查询出来的数据为准。所以,今天讲的退款查询就十分重要了,当然,如果你和我一样付款给我就别想退款,那么你可以忽略这一块。嘿嘿·······
提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,用零钱支付的退款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方法转换成数组使用,数组很简单吧,应该会用的。