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');  #如果你没有把这个文件提出来,就应该是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服务器中的时候,提示找不到SignData Class,你可以把SignData提出来放到AopClient.php最后面
SignData.png

公钥,私钥,支付宝公钥

进入沙箱调试网址,生成公钥、私钥、设置公钥、查看支付宝公钥
生成公钥
设置公钥.png
查看支付宝公钥
然后将私钥放到一个文件夹下(ras_private_key.pem是非JAVA语言的,ras.private_key_pkcs8.pem是JAVA语言的),并创建一个alipay_public_key.pem (名字随便你)
目录文件

这里注意了(看到没,字都特别大,所以一定要注意)

alipay_public_key.pem中切记要把KEY分三行,windows和mac下都没问题,到了Linux上就有问题了!!!至于三行怎么断,随便你怎么断,因为我也是乱断的

分三行

就这样

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容