Laravel 支付宝支付

首先下载PHP版本的Demo

官方版本:Demo

个人:Demo

 

 

下载的包放到Laravel框架:

在app/新建libs文件夹,将SDK包放在该目录下

 

 

 

Config配置:

 

 

下载开发助手、配置对应的密钥: 点我

 

 

 找到根目录下的composer.json文件,添加如下配置:

"autoload": {  
        "classmap": [  
            "database",  
            "app/libs/alipay" //这里是自定义包的文件位置,我将我项目中的该SDK包命名为alipay 
        ],  
        "psr-4": {  
            "App\\": "app/"  
        }  
    },

 

执行以下命令:

composer dump-autoload     //当在包中加入新的类,需要更新autoloader  

 

路由:

Route::get('zhifubao','AlipayController@zhifubao');

 

 

控制器:

 public function zhifubao(){

        //引入demo包的两个文件   //绝对路径 找到两个文件
        require_once "F:/phpstudy_pro/WWW/fsp/".'app/libs/alipay/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php';
        require_once "F:/phpstudy_pro/WWW/fsp/".'app/libs/alipay/pagepay/service/AlipayTradeService.php';

        $out_trade_no = date('Ymd',time()).md5(rand(100,999));        //公共方法生成唯一订单号
        //$out_trade_no = rand(1,1999).time();          //公共方法生成唯一订单号
        $subject = '夏日缤纷皮肤';                     //商品名称
        $total_amount = 78;                         //商品价格
        $body = 'test test!';                       //订单描述
        $timeout_express="1m";                      //订单超时时间  1m  一分钟

        //不论是支付还是退款,这些参数都要先使用buildmodel中的对象生成,文件在pagepay\buildermodel目录下,都有什么请求参数可以看文档,文档上写的都有
        //构造参数
        $payRequestBuilder = new \AlipayTradePagePayContentBuilder();
        $payRequestBuilder->setBody($body);
        $payRequestBuilder->setSubject($subject);
        $payRequestBuilder->setTotalAmount($total_amount);
        $payRequestBuilder->setOutTradeNo($out_trade_no);

        //下面实例化这个类,调用里面的支付接口。这个类在pagepay\service下面,这个文件里面有多个接口,比如:支付,查询,退款
        $payResponse = new \AlipayTradeService($payRequestBuilder);


        $result=$payResponse->pagePay($payRequestBuilder,config('alipay.return_url'),config('alipay.notify_url'));//里面需要传参数
    }

 

 

 测试必须用官方沙箱账号:

 

 

 

 

 

 

 

 

 

 

 

 

 

出现以上报错解决方法:

在Alipay SDK中,一共有需要修改三个文件的内容:

aop/AopEncrypt.php

aop/AopClient.php

lotusphp_runtime/Cookie/Cookie.php

 在文件中查找encrypt/decrypt替换为alipayEncrypt/alipayDecrypt即可。

 

 

 

 

 

 

 

posted @ 2020-11-23 14:04  满眼都是她  阅读(267)  评论(0)    收藏  举报