订单查询
对应文件管理中example文件夹下的orderquery.php文件
1,头文件引入
必须引入的头文件,以SDK的路径为例子
require_once "../lib/WxPay.Api.php";
可选的头文件引入,该头文件只是微信支付用于记录操作日志
require_once 'log.php';
2,查询条件
每条订单可以由商户订单号,这个我们在每次下单一次生成一次的号码确定之外,还可以由微信订单号唯一确定,那么查询订单的时候也需要这两个参数之中的一个,由于微信订单的获取比较麻烦,所以一般我们采用商户订单号来进行查询,微信订单号和商户订单号最少填一个,微信订单号优先。
3,采用商户订单号查询
首先我们要这这个页面里面获取到要查询的商户订单号,例如通过get的形式来获取。
$tradeId = $_GET["out_trade_no"];
然后就能调用接口函数来进行查询了。
if(isset($tradeId) && $tradeId != "")
{
$input = new WxPayOrderQuery();
$input->SetOut_trade_no($tradeId); // 设置好要查询的订单
$order = WxPayApi::orderQuery($input)); // 进行查询
var_dump($order); // 打印出订单信息
}
常用的订单信息:
if($order['err_code_des'] =="order not exist"){
// 订单不存在
}else{
$money = $order['total_fee']; //所付款数,单位分
if($order['trade_state'] =="SUCCESS"){
//支付成功
}else if($order['trade_state'] =="REFUND"){
//已退款
}else if($order['trade_state'] =="NOTPAY"){
//用户还没支付
}else if($order['trade_state'] =="CLOSED"){
//订单关闭
}else if($order['trade_state'] =="REVOKED"){
//已撤销(刷卡支付)
}else if($order['trade_state'] =="USERPAYING"){
//用户支付中
}else if($order['trade_state'] =="PAYERROR"){
//支付失败(其他原因,例如银行返回失败)
}
}
4,采用微信订单号查询
$wxId = $_GET["transaction_id"];if(isset($wxId) && $wxId != "")
{
$input = new WxPayOrderQuery();
$input->SetOut_trade_no($wxId); // 设置好要查询的订单
$order = WxPayApi::orderQuery($input)); // 进行查询
var_dump($order); // 打印出订单信息
}
订单不存在的情况是什么原因?
输入了不存在的微信订单号或者商户订单号。