Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 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;
 }