赞
踩
不要直接使用demo中的notify.php,重写notify.php,继承WxPayNotify(可参考微信api),具体如下:
require_once "WxPay.Api.php";
require_once 'WxPay.Notify.php';
class PayNotifyCallBack extends WxPayNotify
{
//查询订单
public function Queryorder($transaction_id)
{
$input = new WxPayOrderQuery();
$input->SetTransaction_id($transaction_id);
$result = WxPayApi::orderQuery($input);
if (array_key_exists("return_code", $result)
&& array_key_exists("result_code", $result)
&& $result["return_code"] == "SUCCESS"
&& $result["result_code"] == "SUCCESS"
) {
return true;
}
return false;
}
//重写回调处理函数
public function NotifyProcess($data, &$msg)
{
$notfiyOutput = array();
if (!array_key_exists("transaction_id", $data)) {
$msg = "输入参数不正确";
return false;
}
//查询订单,判断订单真实性
if (!$this->Queryorder($data["transaction_id"])) {
$msg = "订单查询失败";
return false;
}
//$data中各个字段在return_code为SUCCESS的时候有返回 SUCCESS/FAIL
//此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断
//成功后写入自己的数据库
if ($data['return_code'] == 'SUCCESS' && $data['result_code'] == 'SUCCESS') {
//自己的业务逻辑
$out_trade_no = $data['out_trade_no'];
$transaction_id = $data['transaction_id'];
$bank_type = $data['bank_type'];
$fee_type = $data['fee_type'];
$time_end = $data['time_end'];
$amount = $data['total_fee'];
}
return true;
}
}
$notify = new PayNotifyCallBack();
$notify->Handle(false);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。