支付寶pc端支付回調處理

支付寶電腦支付回調處理,下面是異步通知的處理方法,注意:

  • 程序執行完後必須打印輸出“success”(不包含引號)。如果商戶反饋給支付寶的字符不是success這7個字符,支付寶服務器會不斷重發通知,直到超過24小時22分鐘。一般情況下,25小時以內完成8次通知(通知的間隔頻率一般是:4m,10m,10m,1h,2h,6h,15h);

參考文檔:https://docs.open.alipay.com/270/105902/

public function alipay_notify()
    {
        if (request()->isPost()) {
            import('alipay.pagepay.service.AlipayTradeService');

            $arr = request()->param();
            $alipaySevice = new \AlipayTradeService(config('alipay'));
            $alipaySevice->writeLog(var_export(request()->param(), true));
            $result = $alipaySevice->check($arr);
            if ($result) {//驗證成功
                //商戶訂單號
                $out_trade_no = $arr['out_trade_no'];
                //支付寶交易號
                $trade_no = $arr['trade_no'];
                if ($arr['trade_status'] == 'TRADE_FINISHED' || $arr['trade_status'] == 'TRADE_SUCCESS') {
                    //查詢訂單是否真的已支付
                    import('alipay.pagepay.buildermodel.AlipayTradeQueryContentBuilder');
                    $RequestBuilder = new \AlipayTradeQueryContentBuilder();
                    $RequestBuilder->setOutTradeNo($out_trade_no);
                    $response = $alipaySevice->Query($RequestBuilder);
                    if ($response->trade_status == 'TRADE_SUCCESS' || $response->trade_status == 'TRADE_FINISHED') {
                       
                    }
                }
                echo "success";
            } else {
                //驗證失敗
                echo "fail";
            }
        }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章