查询退款
对应文件管理中example文件夹下的refundquery.php文件
1,头文件引入
必须引入的头文件,以SDK的路径为例子
require_once "../lib/WxPay.Api.php";
可选的头文件引入,该头文件只是微信支付用于记录操作日志
require_once 'log.php';
2,根据微信订单号查询
微信订单号在上面提到,它是微信支付系统自己帮我们生成的,如果要获知的话,目前我们可以在查询订单处获得,或者直接登录微信商户平台查看获得,由微信订单号查退款的灵活度不高,下面是例子代码。
if(isset($_REQUEST["transaction_id"]) && $_REQUEST["transaction_id"] != ""){
$transaction_id = $_REQUEST["transaction_id"];
$input = new WxPayRefundQuery();
$input->SetTransaction_id($transaction_id);
$order = WxPayApi::refundQuery($input);
var_dump($order)$order;
};
3,根据商户订单号查询
商户订单号查询的灵活性高,因为商户订单号是我们自己生成的,在下订单生成的时候,我们在处理下单结果确认支付成功后,就可以把它存到数据库,查询的时候再读取出来。
if(isset($_REQUEST["out_trade_no"]) && $_REQUEST["out_trade_no"] != ""){
$out_trade_no = $_REQUEST["out_trade_no"];
$input = new WxPayRefundQuery();
$input->SetOut_trade_no($out_trade_no);
$order = WxPayApi::refundQuery($input);
var_dump($order)$order;
}
4,根据商户退款单号查询
还记得在退款操作的时候有这么一句设置吗,如下所示,它就是设置商户退款单号的,也是由我们生成,一样要确保它对于每条退款的唯一性。
/** SetOut_refund_no 设置此次退款的商户单号,它不是商户订单号 */
$input->SetOut_refund_no(WxPayConfig::MCHID.date("YmdHis"));
if(isset($_REQUEST["out_refund_no"]) && $_REQUEST["out_refund_no"] != ""){
$out_refund_no = $_REQUEST["out_refund_no"];
$input = new WxPayRefundQuery();
$input->SetOut_refund_no($out_refund_no);
$order = WxPayApi::refundQuery($input);
var_dump($order)$order;
}
5,根据退款单号查询
退款单号的生成和微信订单号一样,也是微信支付系统帮我们生成的。
if(isset($_REQUEST["refund_id"]) && $_REQUEST["refund_id"] != ""){
$refund_id = $_REQUEST["refund_id"];
$input = new WxPayRefundQuery();
$input->SetRefund_id($refund_id);
$order = WxPayApi::refundQuery($input);
var_dump($order)$order;
}
上面的四种退款查询方式,各有所长,我们可以根据我们的实际情况的选择使用,一般来说,微信支付系统帮我们生成的单号的优先级别是大于我们自己生成的。