支付宝支付回调,回调日志记录
1、支付报支付回调方法
public function aliPayNotify() { try { $app = PayService::alipay(); $collect = $app->verify(); $collectData = $collect->all();//获取支付宝回调参数 $this->writeAliPayLog($collectData, true); if ($collectData['trade_status'] != 'TRADE_SUCCESS' && $collectData['trade_status'] != 'TRADE_FINISHED') { return; } //订单处理 } catch (InvalidSignException $e) { $this->writeAliPayLog($e->raw, false); echo "fail"; } }
2、日志写入方法
private function writeAliPayLog($data, $success = true) { $logStr = "-----[APP]-ASYN-异步序列号-" . $this->indexNo . $this->dateTime . "-异步开始->BEGIN:-------" . "\n"; if ($success === false) { $logStr = " ->APP-ASYN------验签是否通过:NO\n"; if (count($data) > 0 && array_key_exists("trade_no", $data)) { $logStr .= " ->APP-DATA-LIST-支付宝交易号:" . $data["trade_no"] . "\n"; $logStr .= " ->APP-DATA-LIST-商户订单号:" . $data["out_trade_no"] . "\n"; } else { $logStr .= " ->APP-ASYN------非法请求:拒绝响应\n"; } } else { $logStr .= " ->APP-ASYN------验签是否通过:OK\n"; // 写入支付完成时间 $logStr .= " ->APP-DATA-LIST-交易时间:" . $this->payTime . "\n"; $logStr .= " ->APP-DATA-LIST-商户订单号:" . $data["out_trade_no"] . "\n"; $logStr .= " ->APP-DATA-LIST-买家支付宝账号:" . $data["buyer_logon_id"] . "\n"; $logStr .= " ->APP-DATA-LIST-交易金额:" . $data["total_amount"] . "\n"; $logStr .= " ->APP-DATA-LIST-实收金额:" . $data["receipt_amount"] . "\n"; $logStr .= " ->APP-DATA-LIST-买家付款的金额:" . $data["buyer_pay_amount"] . "\n"; $logStr .= " ->APP-DATA-LIST-支付宝交易号:" . $data["trade_no"] . "\n";// $logStr .= " ->APP-DATA-LIST-交易状态:" . $data["return_code"] . "\n"; $logStr .= " ->APP-DATA-LIST-交易状态:" . $data["trade_status"] . "\n"; //$logStr .= " ->APP-DATA-LIST-设备类型:" . $data["trade_type"] . "\n"; } $logStr .= " -----[APP]-ASYN-异步序列号-" . $this->indexNo . "-异步完成->END-----------\n"; file_put_contents($this->aliPayNotifyPath, $logStr, FILE_APPEND);//this->aliPayNotifyPath日志地址 }