laravel8 支付宝沙箱支付

laravel8 支付宝沙箱支付,第1张

laravel8 支付宝沙箱支付

一 : 下载第三方插件

composer require yansongda/pay:^2.10 -vvv

二 : 使用命令行新建控制器

php artisan make:controller Api/PayController

三 : 控制器内头部需要调用的类

use YansongdaPayPay;
use YansongdaPayLog;

四 : 更改私有的配置文件

下面的配置代码中只需要更改app_id、notify_url、return_url、ali_public_key、private_key即可

protected $config = [
        'app_id' => '',
        'notify_url' => 'http://127.0.0.1/laravle8/public/api/pay/notify',  				//将网址改成你的路由
        'return_url' => 'http://127.0.0.1/laravle8/public/api/pay/return',   //网站就是你自己域名
        'ali_public_key' => '',
        // 加密方式: **RSA2**
        'private_key' => '',
        'log' => [ // optional
            'file' => './logs/alipay.log',
            'level' => 'info', // 建议生产环境等级调整为 info,开发环境为 debug
            'type' => 'single', // optional, 可选 daily.
            'max_file' => 30, // optional, 当 type 为 daily 时有效,默认 30 天
        ],
        'http' => [ // optional
            'timeout' => 5.0,
            'connect_timeout' => 5.0,
            // 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html)
        ],
        'mode' => 'dev', // optional,设置此参数,将进入沙箱模式
    ];

   

1:可以根据支付宝沙箱这个链接中获取APPID

2:回调路由根据自己所需更改即可

3:应用公钥和应用私钥

应用公钥就是支付宝公钥:

应用私钥:

五 : 支付

	
    public function index(Request $request)
    {
        //接收订单id
        $id = $request->get('id');

        //查询订单数据
        $order = ApiOrder::where('id',$id)->get()->toArray();

        //查询商品数据
        $goods = ApiGoods::where('id',$order[0]['gid'])->get()->toArray();

        //组装支付信息
        $order = [
            'out_trade_no' => $order[0]['name'],//订单号
            'total_amount' => $order[0]['total_price'],//价格
            'subject' => $goods[0]['name'],//描述 可以为商品名称
        ];

        //支付
        $alipay = Pay::alipay($this->config)->web($order);

        return $alipay;//
    }

六 : 修改订单表的状态

	
    public function return()
    {
        //验签
        $data = Pay::alipay($this->config)->verify(); // 是的,验签就这么简单!

        //获取订单信息
        $order = ApiOrder::where('name',$data->out_trade_no)->get()->toArray();

        //组装订单表数据
        $data = [
            'name' => $order[0]['name'],
            'gid' => $order[0]['gid'],
            'status' => 1,
            'uid' => $order[0]['uid'],
            'total_price' => $order[0]['total_price']
        ];

        //返回
        ApiOrder::where('name',$data['name'])->update($data);
        return ['code' => 200,'msg' => '支付成功','data' => ''];
    }

七 : 后台,无需更改

	public function notify()
    {
        //支付成功后会走到这个方法里面
        $alipay = Pay::alipay($this->config);

        try{
            $data = $alipay->verify(); // 是的,验签就这么简单!

            Log::debug('Alipay notify', $data->all());
        } catch (Exception $e) {
            // $e->getMessage();
        }

        return $alipay->success()->send();
    }

八 :在小程序端的页面中使用web-view进行支付 *** 作

支付

END

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5684213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存