tp3.2.3對接支付寶pc網站支付


首先下載支付寶pc網站支付的最新sdk代碼

 

 

 

最后在tp的應用目錄里面新建一個控制器、一個方法,編寫這個pay方法的代碼即可接入支付寶pc網站支付

代碼如下:

 

 //支付寶支付測試
    public function pay(){

        $config = array (   
        //應用ID,您的APPID。
        'app_id' => "201XXXXXXXXX",

        //商戶私鑰
        'merchant_private_key' => " ",
        
        //異步通知地址
        'notify_url' => "http://外網可訪問網關地址/alipay.trade.page.pay-PHP-UTF-8/notify_url.php",
        
        //同步跳轉
        'return_url' => "http://外網可訪問網關地址/alipay.trade.page.pay-PHP-UTF-8/return_url.php",

        //編碼格式
        'charset' => "UTF-8",

        //簽名方式
        'sign_type'=>"RSA2",

        //支付寶網關
        'gatewayUrl' => "https://openapi.alipaydev.com/gateway.do",

        //支付寶公鑰,查看地址:https://openhome.alipay.com/platform/keyManage.htm 對應APPID下的支付寶公鑰。
        'alipay_public_key' => "",
       );

       //異步通知地址
        $config['notify_url'] = "";
 
        //同步跳轉
        $config['return_url'] = "";
        
        Vendor('Alipay.pagepay.service.AlipayTradeService');
        Vendor('Alipay.pagepay.buildermodel.AlipayTradePagePayContentBuilder');
        
        //商戶訂單號,商戶網站訂單系統中唯一訂單號,必填
        //$out_trade_no = trim(I('post.WIDout_trade_no'));
         $out_trade_no ='45454545454';
        //訂單名稱,必填
        //$subject = trim(I('post.WIDsubject'));
        $subject ='測試訂單';
        //付款金額,必填
        //$total_amount = trim(I('post.WIDtotal_amount'));
         $total_amount ='12';
        //商品描述,可空
        //$body = trim(I('post.WIDbody'));
        $body ='6666';
        //$ud = session('users.uid');
        $ud = '123';
        $data = array(
                'uid'=>$ud,                              //用戶id
                'win_code'=>$out_trade_no,               //商戶訂單號
                'winsubject'=>$subject,                  //訂單名稱
                'wintotal_amount'=>$total_amount,        //付款金額
                'winbody'=>$body,                        //商品描述
                'state'=>'zfb',                          //支付方式
                'status'=>'0',                           //是否支付
                'ordertime'=>time()                      //交易時間
            );
        //M("pay_record")->add($data); // 保存交易信息
 
        //構造參數
        $payRequestBuilder = new \AlipayTradePagePayContentBuilder();
        $payRequestBuilder->setBody($body);
        $payRequestBuilder->setSubject($subject);
        $payRequestBuilder->setTotalAmount($total_amount);
        $payRequestBuilder->setOutTradeNo($out_trade_no);
 
        $aop = new \AlipayTradeService($config);
        $response = $aop->pagePay($payRequestBuilder,$config['return_url'],$config['notify_url']);
 
        //輸出表單
         var_dump($response);
    }

 

代碼簡單說明,與支付寶相關的參數需要你手動修改為自己的,還有配置信息也可以放到公共配置文件用用C方法調用,還有訂單和金額等信息可以選擇用參數的形式接收而非寫死。

 

特別注意,如果遇到C方法與支付寶里面的C方法沖突的問題,找到支付寶的C方法,給它修改一個名字即可哦。還有網關不要用錯,測試網關和實際上線的網關不是同一個。


免責聲明!

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



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