laravel5.5通过yansongda/pay组件实现支付宝电脑网站支付

Laravel项目实战:Yansongda+EasyWeChat搞定支付宝微信支付(附多端适配代码) 本文详细介绍了在Laravel项目中整合Yansongda和EasyWeChat实现支付宝与微信支付的多端适配方案。通过统一订单服务层设计和设备类型检测策略,开发者可以优雅处理PC端、H5和APP等不同终端的支付需求,并提供支付回调处理与安全加固的实战建议,帮助构建稳定可靠的支付系统。 阅读详情

1,支付宝实名认证的商家账号,签约电脑网站支付
2,登录蚂蚁金服开放平台,创建应用,添加签约产品(电脑网站支付,手机网站支付等)等待审核通过。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
3,配置密钥和授权回调地址。授权回调地址就是你的notify方法的网址,注意前面要加http://
4,下载yansongda/pay支付组件通过composer命令

composer require yansongda/pay -vvv

5, laravel5.5的routes文件夹下的web.php加入

//支付宝支付处理路由
Route::get('alipay','AlipayController@Alipay');  // 发起支付请求
Route::any('notify','AlipayController@AliPayNotify'); //服务器异步通知页面路径
Route::any('return','AlipayController@AliPayReturn');  //页面跳转同步通知页面路径

6.在控制器里加入以下代码

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/2/8
 * Time: 20:19
 */

namespace App\Http\Controllers;

use App\Http\Controllers;
use Illuminate\Http\Request;
//use Illuminate\Support\Facades\Log;
use Yansongda\Pay\Pay;
use Yansongda\Pay\Log;
class alipayController extends Controller{

    protected $config = [
        'app_id' => '',//你创建应用的APPID
        'notify_url' => '',//异步回调地址
        'return_url' => '',//同步回调地址
        '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,设置此参数,将进入沙箱模式
    ];
    public function Alipay()
    {
        $order = [
            'out_trade_no' => time(),
            'total_amount' => '0.1',
            'subject' => 'test subject - 测试',
        ];

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

        return $alipay;// laravel 框架中请直接 `return $alipay`
    }

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

        // 订单号:$data->out_trade_no
        // 支付宝交易号:$data->trade_no
        // 订单总金额:$data->total_amount
    }

    public function AliPayNotify()
    {
        $alipay = Pay::alipay($this->config);

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

            // 请自行对 trade_status 进行判断及其它逻辑进行判断,在支付宝的业务通知中,只有交易通知状态为 TRADE_SUCCESS 或 TRADE_FINISHED 时,支付宝才会认定为买家付款成功。
            // 1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号;
            // 2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额);
            // 3、校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方(有的时候,一个商户可能有多个seller_id/seller_email);
            // 4、验证app_id是否为该商户本身。
            // 5、其它业务逻辑情况

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

        return $alipay->success();// laravel 框架中请直接 `return $alipay->success()`
    }
}

在这里插入图片描述
将私钥文件里面的去除-----BEGIN RSA PRIVATE KEY-----与-----END RSA PRIVATE KEY-----,将剩下的内容合并为一行,需添加到配置文件中

7.以下是踩过的坑

  1. 如果你想更新yansongda/pay 支付组件,在本地composer下载后传上服务器的话一定要记得,把vendor文件夹一并传上服务器替换调以前的vendor文件夹,不然会报错 类找不到,因为你在本地composer更新的话,vendor文件夹下的composer文件夹也会发生变化,为以防万一应把vendor文件夹一并更新

  2. 如果遇到下面这个错误就是你没有屏蔽下面的代码,导致进入沙箱模式

 'mode' => 'dev', // optional,设置此参数,将进入沙箱模式

沙箱模式的支付宝网关 https://openapi.alipaydev.com/gateway.do
线上应用的支付宝网关 https://openapi.alipay.com/gateway.do

在这里插入图片描述3) 如果出现以下的错误,是因为在控制器里的公钥或私钥不正确 注意公钥指的是支付宝公钥不是应用公钥,
在这里插入图片描述
在这里插入图片描述
完结,撒花。。。

参考网址

Laravel项目实战:Yansongda+EasyWeChat搞定支付宝/微信多端支付(附完整代码) 本文详细介绍了如何在Laravel项目中利用Yansongda Pay和EasyWeChat实现支付宝和微信支付的多端整合。通过完整的代码示例,涵盖了从环境配置、支付服务类设计到多端适配、回调处理等关键环节,帮助开发者快速构建安全可靠的支付系统。 阅读详情

相关推荐

laravel-pay:可能是我用过的最优雅的Alipay和WeChat的laravel支付扩展包了

工资 该文档为v2.x版本,如果您想找v1.x版本文档,请点击 运行环境 PHP> = 7.0 作曲家 laravel || 流明> = 5.1 安装 $ composer require yansongda/laravel-pay 添加服务提供商(可选。 如果laravel <5> register ( Yansongda \ LaravelPay \ PayServiceProvider ::cl

Laravel支付集成实战:微信与支付宝对接指南

支付集成是现代Web应用开发中的核心技术之一,特别是在电商和在线服务领域。通过Laravel框架实现支付功能,开发者可以充分利用其服务容器、队列系统和事件机制等特性,构建高可靠性的支付流程。本文以微信支付和支付宝集成为例,详细介绍了从环境配置到实战开发的完整过程,包括JSAPI支付、电脑网站支付、支付结果通知处理等核心功能实现。针对支付系统中的常见问题如超时处理、重复通知和对账机制,提供了经过实战检验的解决方案。同时,文章还涵盖了支付安全最佳实践、测试调试技巧以及性能优化建议,帮助开发者构建稳定高效的支付系

weixin_33970449的博客 590

检索生成(RAG) vs 长文本大模型:实际应用中如何选择?

大模型的上下文理解能力直接影响到 LLMs 在复杂任务和长对话中的表现。本期内容聚焦于两种主流技术:长上下文(Large Context Windows)和检索增强生成(RAG)。这两种技术各有何优势?在实际应用中,我们又该如何权衡选择?文章不仅详细阐述了这两种技术的工作原理,还深入分析了它们在效率、准确性和实施成本等方面的差异。文章特别提到了在执行重复性任务时使用 Context Caching 优化长上下文的优势,然而,缓存策略的效果很大程度上取决于提示词的可预测性。

2401_85782938的博客 1255

laravel 微信支付Yansongda\Pay

1.下载yansongda/pay支付组件通过composer命令 composer require yansongda/pay 2.直接上手 protected $config = [ 'app_id' => '', //APPID 'mch_id' => '', //商户id 'key' => '', //api秘钥 'sandbox' => true, 'notify_url' =

m0_58106937的博客 1958

基于Opencv+Mediapipe的头部姿态检测

在学生课堂专注度检测项目中,可以通过学生头部姿态来确定学生注意力方向,从而判断其是否专注于课堂。

weixin_67879842的博客 2335

现场总线课程设计-基于modbus协议使用QT实现主从站控制通信

【平台:QT】 【协议:modbus(注:由于要求,需要自己来实现modbus库,而非直接调用已有的库)】 【由于复制粘贴,时间原因可能格式有误,如需要具体工程文件以及报告文件请私信博主】 1、 大作业任务: (1)使用附件中工具软件体验MODBUS主从站数据传输过程(可在主从站模拟工具里面观察各功能码对应数据帧内容并对其进行分析) (2)使用串口调试助手,手工发出MODBUS主、从站该发出的数据,并观察对方发出的数据 (3)实现MODBUS主、从站功能,描述实现过程(语言不限于使用VC

weixin_44469597的博客 4065

laravel微信支付宝使用Yansongda\Pay三方类

Yansongda\Pay文档地址 本文章说明:最近在写支付宝和微信支付用到了Yansongda\Pay这个laravel三方类所以做个总结 总的来说这个三方类对于一些常用业务来说很好用,可以节省好多用来封装延签的时间 1、安装 composer require yansongda/pay -vvv 2、直接上手 支付宝 <?php namespace App\Http\Controllers; use Yansongda\Pay\Pay; use Yansongda\Pay\Log; cl.

qq_43789643的博客 5633

基于卷积神经网络的人脸表情识别(JAFFE篇)

1.win10/11操作系统2.python3.7以上3.tensorflow2.4以上版本(2.0其它版本需要微调)4.内存12G,显卡4G以上(没有独显倒是也能跑...)(这个可爱的妹子就是JAFFE数据集中的图片)

小林同学的计算机学习 5913

Laravel5.5 支付宝支付

配置 商家账号服务申请很麻烦,为了快速测试 可以用 沙箱测试版 app, 不过目前 只支持 安卓手机 测试的服务,也要实名认证和身份扩展后才可以,也就填写一些个人信息,很简单,这里不做详细介绍 蚂蚁金服开放平台 蚂蚁金服沙箱测试版 说明 private_key 私钥 private_key 是商家应用私钥,获取方法说明,我是下载 Mac 版的(RSA 签名工具下载地址),生成秘钥的格式应该选 PKCS1 (非 JAVA 使用) , 但我这里一直生成失败,不知道 是不是因为黑苹果的原因 T_T,所以这里我是这

u012600104的博客 911

agent-browser OpenClaw 的最佳搭档

agent-browser 是专为 AI Agent 设计的浏览器自动化工具,目前被公认为 OpenClaw 的最佳配套方案。这份技术文档完整记录了其架构、协议、性能调优与常见问题处理,非常适合想让OpenClaw 真正“上手”互联网的开发者与老用户。

liu_zhiyi的博客 1781

图像处理之边缘检测[微分算子、Canny算子和LOG算子]

LOG算子是在经典算子的基础上发展起来的边缘检测算子,根据信噪比求得检测边缘的最优滤波器。边缘总是以强度突变的形式出现,可以定义为图像局部特性的不连续性,如灰度的突变和纹理结构的突变等。图像的边缘包含了物体形状的重要信息,它不仅在分析图像时大幅度地减少了要处理的信息量,而且还保护了目标的边界结构。对于复杂的图像,采用Roberts算子不能较好地得到图像的边缘,而需要采用更加复杂的3X3的算子比如Prewitt算子。对于离散的图像f(x,y),边缘检测算子是用图像的垂直和水平差分来逼近梯度算子,即。

qq_44111805的博客 9833

如何用优雅的PHP支付SDK解决多支付渠道集成难题?

在数字化转型的浪潮中,支付功能已成为各类应用的核心基础设施。然而,面对支付宝、微信支付、银联、抖音支付等多个支付渠道的复杂集成,PHP开发者常常陷入重复造轮子的困境——每个支付平台都有不同的API规范、签名算法和回调机制,代码重复率高,维护成本陡增。yansongda/pay项目正是为解决这一痛点而生,它为PHP开发者提供了一套统一、优雅的支付SDK解决方案,让多支付渠道集成变得简单高效。 ##

gitblog_00357的博客 611

45、使用 sqlread 函数将数据从数据库表导入 MATLAB

本文详细介绍了如何使用 MATLAB 中的 `sqlread` 函数从不同类型的数据库(如 Microsoft SQL Server 和 SQLite)中导入数据。文章涵盖了 `sqlread` 的基本语法、输入输出参数、使用示例以及注意事项,并通过多个实例演示了自定义导入选项、元信息检索和数据类型转换等内容。此外,还总结了导入数据库数据的通用流程及最佳实践建议,帮助用户更高效地进行数据分析和处理工作。

bash7scripter的博客 133

实战演练:PHP支付SDK的现代化集成方案深度解析

在当今数字化支付时代,PHP开发者面临着一个共同的挑战:如何高效集成支付宝、微信支付、抖音支付、银联和江苏银行等多种支付渠道?yansongda/pay项目为这个难题提供了优雅的解决方案。这款开源支付SDK扩展包以其灵活的插件架构和统一的API设计,让复杂的支付集成变得简单而高效。 ## 🎯 支付集成的核心痛点与解决方案 ### 传统支付集成的常见困境 在开发支付功能时,开发者经常面临以下

gitblog_00231的博客 393

DDR5 JEDEC标准简析:一次读懂DDR5的核心规范!

JEDEC,全称是,中文名称是「电子元件工程联合委员会」,它是全球权威的存储接口标准制定机构。我们常见的 DDR2、DDR3、DDR4、DDR5 都是它搞出来的。📌 JEDEC 就像存储接口界的“裁判+编剧”——规定谁该怎么跑,怎么演,怎么配合。

weixin_43199439的博客 2571

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

PHP使用Laravel-Pay组件快速接入微信JSAPI支付(微信公众号支付)

使用Laravel-Pay组件快速接入支付(1:微信支付篇) 本文为系列文章,接下来分别会讲解如何接入微信 与 支付宝 支付并完成支付的保姆式教程 本篇文章:介绍微信支付需要准备的基础条件,第2篇文章演示具体编码过程。 文章目录使用Laravel-Pay组件快速接入支付(1:微信支付篇)前言一、前期准备与花费明细(仅供参考)二、使用步骤1.引入库2.读入数据总结 前言 本篇介绍微信 H5、JSAPI(公众号)、APP、小程序支付、Native支付(手机扫网站二维码进行支付)、需要的基础资料 一、前期

特别剑的博客 2033

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【亲测免费】 Laravel 微信通知扩展教程:基于 yansongda/laravel-notification-wechat

Laravel 微信通知扩展教程:基于 yansongda/laravel-notification-wechat 本教程旨在指导您如何理解和使用yansongda/laravel-notification-wechat这一Laravel框架下的微信通知服务组件。此组件允许开发者通过微信模板消息轻松实现通知功能。 1. 项目目录结构及介绍 yanSongDa的这个laravel-notificat...

gitblog_00308的博客 612

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

laravel-第三方支付扩展-yansongda-(wecaht+Ali)

github地址 https://github.com/yansongda/pay 部分文档 https://pay.yansongda.cn/docs/v2/wechat/pay.html

Demo-Yang的博客 1156

laravel 微信公众号支付-----yansongda/laravel-pay

git地址:http://packagist.p2hp.com/packages/yansongda/laravel-pay 具体使用说明请传送至https://github.com/yansongda/pay 快速实现微信公众号支付功能:https://www.jianshu.com/p/9c322b1a5274 运行环境 php >= 7.0 composer lara...

weixin_38615720的博客 6862

探索 Laravel API 的魅力:一个高效的框架实践

探索 Laravel API 的魅力:一个高效的框架实践 在这个数字化的时代,API(应用程序接口)已经成为了连接不同服务和应用的重要桥梁。而项目,由开发者 yansongda 创建,是一个基于 Laravel 框架的 RESTful API 实现,旨在帮助开发人员更高效地构建稳定、安全且易于维护的 API 服务。 项目简介 Laravel-API 是一个精心设计的起点模板,它包含了基础的认证、错...

gitblog_00025的博客 871

微信小程序 + Laravel 实现支付宝支付

1、注册支付宝开放平台 并 配置好筛箱环境https://open.alipay.com/platform/appDaily.htm?tab=accounthttps://open.alipay.com/platform/appDaily.htm?tab=account 2、利用composer下载扩展包 composer require yansongda/pay:^2.10 -vvv 3、可以参考以下网址进行开发https://pay.yansongda.cn/docs/v2/quick..

Dragon 1488

Yansongda沙箱支付

支付宝沙箱支付

学php的代码小白的博客 732

Laravel,Lumen,ThinkPHP,Hyperf 项目里集成微信,支付宝

Laravel,Lumen,ThinkPHP,Hyperf 项目里集成微信,支付宝

ltbweber的博客 1390

【限时免费】 yansongda/pay 在 Laravel Octane 环境下的服务容器问题解析

yansongda/pay 在 Laravel Octane 环境下的服务容器问题解析 【免费下载链接】pay 可能是我用过的最优雅的 Alipay/WeChat/Unipay/江苏银行 的支付 SDK 扩展包了 项目地址: ht...

gitblog_01420的博客 466

yansongda/pay 支付遇到的坑

最近做了一个微信公众号支付 , 使用的是laravel 8 框架 , 使用的是yansongda 2.0 版本,通过composer 下载( composer require yansongda/pay:~2 ),一切就绪后咋们就开始吧! 我遇到的坑就是回调路由无效,当时支付了很多笔,也支付成功了,但是设置的回调方法一点作用都没用,根本不走设置的回调路由这个方法,另外也在微信商户平台也设置过回调路由地址了,并且请求参数回调路由可以走的通,到底怎么回事呢,我们来看看: 下面是当时设置的路由(因为使用的是g

weixin_44099311的博客 9463
上一篇: laravel5.5整合webuploader实现多文件上传功能
下一篇: laravel5.5之中间件详解
苦艾酒丶
博客等级 码龄9年 41粉丝 99原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值