首页 > php框架 > Laravel > 正文

laravel如何集成第三方支付网关(如支付宝、微信支付)_Laravel第三方支付网关集成方法

裘德小鎮的故事
发布: 2025-10-11 20:00:02
原创
591人浏览过
使用yansongda/pay可快速集成支付宝、微信支付,通过composer安装并发布配置文件,填写app_id、密钥等参数后,利用Pay门面发起支付,处理notify异步通知验证签名并更新订单状态,return回调用于页面提示,建议日志记录、沙箱测试及敏感信息存.env。

laravel如何集成第三方支付网关(如支付宝、微信支付)_laravel第三方支付网关集成方法

在 Laravel 中集成第三方支付网关(如支付宝微信支付)是电商类项目常见的需求。虽然这些平台没有官方的 Laravel 包,但社区提供了成熟且稳定的扩展包,能快速实现支付功能。

选择合适的支付 SDK 包

推荐使用 yansongda/pay,这是目前 Laravel 社区最流行的支付 SDK,支持支付宝、微信支付、银联等主流渠道,兼容 Laravel 服务容器,易于集成。

安装方式:

  • composer require yansongda/laravel-pay

安装完成后,发布配置文件

  • php artisan vendor:publish --provider="Yansongda\LaravelPay\PayServiceProvider"

该命令会在 config/ 目录下生成 pay.php 配置文件。

配置支付宝与微信支付参数

打开 config/pay.php,根据实际平台填写密钥和应用信息。

示例配置(以支付宝为例):

'alipay' => [
    'default' => [
        'app_id' => 'your_app_id',
        'notify_url' => '/pay/alipay/notify',
        'return_url' => '/pay/return',
        'ali_public_key' => 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...',
        'private_key' => 'MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC...',
        'log' => [
            'file' => storage_path('logs/alipay.log'),
            'level' => 'debug'
        ],
        'mode' => 'normal', // 'dev' 或 'normal'
    ],
],
登录后复制

微信支付配置类似,需填写 app_idmch_idkey、证书路径等。

发起支付请求

在控制器中使用 Pay 门面发起支付。

百宝箱
百宝箱

百宝箱是支付宝推出的一站式AI原生应用开发平台,无需任何代码基础,只需三步即可完成AI应用的创建与发布。

百宝箱279
查看详情 百宝箱

示例:创建支付宝网页支付

use YansongdaLaravelPayFacadesPay;

public function pay() {
    $order = [
        'out_trade_no' => time(),
        'total_amount' => '100.00',
        'subject' => '测试商品',
        'product_code' => 'FAST_INSTANT_TRADE_PAY',
    ];

    return Pay::alipay()->web($order);
}
登录后复制

该方法会自动跳转到支付宝收银台页面。

处理异步通知(Notify)

支付结果通过服务器异步通知(notify_url)返回,需验证签名并处理业务逻辑。

示例路由

Route::post('/pay/alipay/notify', [PayController::class, 'alipayNotify']);
登录后复制

控制器方法:

public function alipayNotify() {
    $data = Pay::alipay()->verify();

    if ($data->trade_status == 'TRADE_SUCCESS') {
        // 更新订单状态
        Order::where('no', $data->out_trade_no)->update(['paid' => true]);
    }

    return Pay::alipay()->success();
}
登录后复制

success() 方法会输出支付宝要求的响应内容,防止重复通知。

处理同步回调(Return)

用户支付后会被重定向到 return_url,此处可做展示性提示。

public function alipayReturn() {
    $data = Pay::alipay()->verify();

    // 可再次调用查询接口确认支付状态
    return view('pay.success', compact('data'));
}
登录后复制

常见问题与建议

  • 确保服务器时间准确,避免签名错误
  • notify 接口不要有重定向或 HTML 输出
  • 敏感信息(如密钥)应存于 .env 文件
  • 上线前在沙箱环境充分测试
  • 记录日志便于排查问题

基本上就这些。使用成熟的 SDK 能大幅降低接入成本,关键是配置准确、处理好异步通知和异常情况。

以上就是laravel如何集成第三方支付网关(如支付宝微信支付)_Laravel第三方支付网关集成方法的详细内容,更多请关注php中文网其它相关文章!

支付宝
支付宝

支付宝,全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付服务,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号