ThinkPHP 支付寶 掃碼支付

ThinkPHP3.2.3 集成支付寶的掃碼支付

1.先下載官方Demo,下載后將整個 aop 文件夾放到ThinkPHP/Library/Vendor中
放置位置.png
2.修改文件,將AopClient.php中的 new SignData(); 更改為 new \SignData();;
aop/request/AlipayTradePrecreateRequest放到aop目錄下(這個隨意,我是打算刪掉request目錄,所以才提出來)

3.使用方式

使用方式.png
public function testAction(){
        Vendor('aop.AopClient');  
        Vendor('aop.signData');   
        Vendor('aop.AlipayTradePrecreateRequest');  #如果你沒有把這個文件提出來,就應(yīng)該是aop.request.AlipayTradePrecreateRequest
        $aop = new \AopClient();
        $aop->gatewayUrl = 'https://openapi.alipaydev.com/gateway.do';
        $aop->appId = '2016072300102600';
        $aop->rsaPrivateKeyFilePath = './rsa_private_key.pem';
        $aop->alipayPublicKey='./alipay_public_key.pem';
        $aop->apiVersion = '1.0';
        $aop->postCharset='UTF-8';
        $aop->format='json'; 
        $request = new \AlipayTradePrecreateRequest();
        $data = json_encode(array(
            "out_trade_no" => "wx2016120951519992",
            "total_amount" => "1",
            "subject"      => "測試",
            "body"         => "測試商品100"
        ),JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
        $request->setBizContent($data);
        $request->setNotifyUrl("http://pay.moblm.com/Todo/notify");
        $result = $aop->execute ( $request); 
        $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
        $resultCode = $result->$responseNode->code;
        if(!empty($resultCode)&&$resultCode == 10000){
            $resp = (array)$result->$responseNode;
            Vendor('phpqrcode.phpqrcode'); # 這里開始是生成二維碼
            $url = $resp['qr_code'];
            $errorCorrectionLevel =intval(4) ;//容錯級別 
            $matrixPointSize = intval(8);//生成圖片大小 
            $object = new \QRcode();
            $object->png($url, false, $errorCorrectionLevel, $matrixPointSize, 2); 
        } else {
            echo "失敗";
            exit;
        }
    }
小tip:我只改了new \SignData()過后放到Linux服務(wù)器中的時候,提示找不到SignData Class,你可以把SignData提出來放到AopClient.php最后面
SignData.png

公鑰,私鑰,支付寶公鑰

進入沙箱調(diào)試網(wǎng)址,生成公鑰、私鑰、設(shè)置公鑰、查看支付寶公鑰
生成公鑰
設(shè)置公鑰.png
查看支付寶公鑰
然后將私鑰放到一個文件夾下(ras_private_key.pem是非JAVA語言的,ras.private_key_pkcs8.pem是JAVA語言的),并創(chuàng)建一個alipay_public_key.pem (名字隨便你)
目錄文件

這里注意了(看到?jīng)],字都特別大,所以一定要注意)

alipay_public_key.pem中切記要把KEY分三行,windows和mac下都沒問題,到了Linux上就有問題了!??!至于三行怎么斷,隨便你怎么斷,因為我也是亂斷的

分三行

就這樣

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容