saveData($xml); //验证签名,并回应微信。 //对后台通知交互时,如果微信收到商户的应答不是成功或超时,微信认为通知失败, //微信会通过一定的策略(如30分钟共8次)定期重新发起通知, //尽可能提高通知的成功率,但微信不保证通知最终能成功。 if ($notify->checkSign() == FALSE) { $notify->setReturnParameter("return_code", "FAIL");//返回状态码 $notify->setReturnParameter("return_msg", "签名失败");//返回信息 } else { $notify->setReturnParameter("return_code", "SUCCESS");//设置返回码 } $returnXml = $notify->returnXml(); echo $returnXml; if ($notify->checkSign() == TRUE) { if ($notify->data["return_code"] == "FAIL") { exit(); } $recharge_serial = $notify->data["out_trade_no"]; $pay = (new Recharge())->where("serial",$recharge_serial)->first(); if (!$pay) exit(); if ($pay->paid_at) exit(); $transaction_id = $notify->data["transaction_id"]; $update = [ "paid_at" => date("Y-m-d H:i:s"), "payment_serial" => $transaction_id ]; $result = $pay->update($update); //充值成功后处理 if ($result) { event(new RechargeSucceed($pay)); } } } }