public function notifyAction() { $pay = new Pay($this->alipayConfig); $checkResult = $pay->notifyVerify(); $echoResult = function ($success, $msg = 'OK') { $result = $success ? 'success' : 'fail'; echo $result; }; if (is_int($checkResult)) { // 错误处理, // 100-xml解析异常,101-签名验证失败,102-返回状态码错误,103-业务结果异常 switch ($checkResult) { case PayState::REQUEST_TYPE_ERROR: $echoResult(false, 'not post request'); break; case PayState::ASYNC_FAIL_SIGN: $echoResult(false, 'sign verify error'); break; case PayState::REQUEST_ERROR: $echoResult(false); break; } $this->savePayLog(0, 0, PayType::ALIPAY, $checkResult, $_POST); return; } $transactionId = $_POST['trade_no']; $outTradeNo = $_POST['out_trade_no']; // 拆分订单号 $outTradeNoArr = explode('-', $outTradeNo); $outTradeNo = $outTradeNoArr[0]; $totalFee = intval(floatval($_POST['total_fee']) * 100); if (!in_array($_POST['trade_status'], ['TRADE_FINISHED', 'TRADE_SUCCESS'])) { $this->savePayLog($outTradeNo, $transactionId, PayType::ALIPAY, PayState::NOT_HANDLE, $_POST); $echoResult(true); return; } $this->payHandle($echoResult, PayType::ALIPAY, $transactionId, $outTradeNo, $totalFee, $_POST); }
public function alipayAction() { $this->view->disable(); $json = '{"discount":"0.00","payment_type":"1","subject":"\\u6d4b\\u8bd5\\u670d\\u52a13","trade_no":"2015071400001000310056525977","buyer_email":"18623640927","gmt_create":"2015-07-14 11:42:54","notify_type":"trade_status_sync","quantity":"1","out_trade_no":"201507141141234760","seller_id":"2088021056329497","notify_time":"2015-07-14 11:46:33","body":"\\u7f8e\\u5bb9\\u96621","trade_status":"WAIT_BUYER_PAY","is_total_fee_adjust":"Y","total_fee":"0.01","seller_email":"*****@*****.**","price":"0.01","buyer_id":"2088312777840311","notify_id":"94ba10828b1396052ead6066e79c18b83q","use_coupon":"N","sign_type":"RSA","sign":"ZC1NpuPTClv7lZJI+xoeYOnYbEEzcVws2cNalFK46qci0vl1Nj4VBxf6vdssTDcasNePhlQaNms1KuBpY5NVbJSXMz\\/azjmUb\\/h2mB4g45AMZ5b8Gl5pk5eUwdn69Gux\\/z0VsCNcQp+ILxXMYnfD8nBYMnESpuZ5We\\/41LGEbxQ="}'; $params = json_decode($json, true); $payConfig = (include APP_COMMON_PATH . "base-config/pay.php"); $alipayConfig = $payConfig['alipay']; $pay = new Pay($alipayConfig); echo $pay->verifySignRSA($params, $params['sign']) ? 1 : 0; }