TP5.1支付寶遇到的坑


遇到很多坑記錄一下

這里用的是電腦支付

下載dome鏈接:https://docs.open.alipay.com/... 

 

 

 

把demo放到extend目錄,文件夾改名字為:alipay,方便后面操作

 

有人說把需要用的類命名空間,namespace,這個人拉出去槍斃了,真的坑爹啊,命名空間加上后,可能是我linux系統,盡然找不到類了,拉出去槍斃,槍斃,牆壁!

 

然后在config.php文件夾中配置appid、回調地址一系列參數,如果沒有這個文件重新去官網下載

 

我這里用的require引入

/*支付寶支付*/
    public function pay(){
        header('Content-type:text/html;charset=utf-8');
        require '../extend/alipay/config.php';
        require '../extend/alipay/pagepay/service/AlipayTradeService.php';
        require '../extend/alipay/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php';

        //獲取訂單生成后傳遞過來的訂單編號和金額
        $data=input('param');
        //商戶訂單號,商戶網站訂單系統中唯一訂單號,必填
        $out_trade_no = '201791711599526';
//        $out_trade_no = $data['sn'];
        //訂單名稱,必填
        $subject = "認證";
        //付款金額,必填
        $total_amount = '0.01';
//        $total_amount = $data['money'];
        //商品描述,可空
        $body = "";

        $payRequestBuilder = new \AlipayTradePagePayContentBuilder();
        $payRequestBuilder->setBody($body);
        $payRequestBuilder->setSubject($subject);
        $payRequestBuilder->setTotalAmount($total_amount);
        $payRequestBuilder->setOutTradeNo($out_trade_no);

        $aop = new \AlipayTradeService($this->payconfig);
        /**
         * pagePay 電腦網站支付請求
         * @param $builder 業務參數,使用buildmodel中的對象生成。
         * @param $return_url 同步跳轉地址,公網可以訪問
         * @param $notify_url 異步通知地址,公網可以訪問
         * @return $response 支付寶返回的信息
         */
        $response = $aop->pagePay($payRequestBuilder,$this->payconfig['return_url'],$this->payconfig['notify_url']);
        var_dump($response);
    }

 

異步方法:

    //異步通知回調
    public function getToken(){
        try{
            $info = Request::param();
            $aop = new AopClient;
            $aop->alipayrsaPublicKey = '填寫你的支付寶公鑰';
            $flag = $aop->rsaCheckV1($info,NULL,"RSA2");     //驗簽
            if(!$flag){
                Log::write('驗簽失敗','ALIPAY_THORW');
            }else if($info['trade_status']=='TRADE_SUCCESS'){
                //支付狀態
                if(!Db::table('order')->where('ordernum','=',$info['out_trade_no'])->find()){
                    $insertData = ['create_time'=>time(),'update_time'=>time(),'goodname'=>$info['subject'],'ordernum'=>$info['out_trade_no'],
                        'alipaynum'=>$info['trade_no'],'total_money'=>$info['total_amount'],'status'=>1];
                    Db::table('order')->insert($insertData);}
            }
        }
        catch (Exception $e){
            Log::write($e->getMessage(),'ALIPAY_THORW');
        }
    }

同步方法:

    //網頁付款成功后返回頁面
    public function returnback(){
        echo "<h1>支付成功<h1>";
        halt(Request::param());
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM