当前位置:   article > 正文

php微信支付获取订单号,微信支付的notify.php中如何获取订单号(php版)

class paynotifycallback extends wxpaynotify { function __construct(){ } /

不要直接使用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);

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号