laravel支付宝sdk接入

自己学习使的 仅供参考

一、打开蚂蚁金服开放平台 找到研发服务->沙箱应用
设置沙箱应用保证可以使用
在这里插入图片描述
二、找到sdkdemo下载放到本地环境并改名为alipay配置里面的config 注释有详细的讲解仔细看
三、(这里是我的习惯)放到laravel的app下
四、去config下面新建一个alipay.php将本地修改好的config放到中间
在这里插入图片描述
五、复制alipay/pagepay里面的pagepay.php代码到自己的支付方法里面需要修改(发生错误的顺序没分先后)
1、出现一个AopCline的一个each的错误(这个一般是laravel5.以上才会发生)
修改为

	foreach ($para_temp as $key=>$val) {if (false === $this->checkEmpty($val)) {//$val = $this->characet($val, $this->postCharset);$val = str_replace("'","&apos;",$val);//$val = str_replace("\"","&quot;",$val);$sHtml.= "<input type='hidden' name='".$key."' value='".$val."'/>";}}

2.出现一个encrypt或者decrypt冲突的错误(因为laravel自带encrypt和decrypt方法)修改alipay/aop/AopEncrypt.php的方法名即可 如:
在这里插入图片描述

*** 加密方法* @param string $str* @return string*/function alipay_encrypt($str,$screct_key){//AES, 128 模式加密数据 CBC$screct_key = base64_decode($screct_key);$str = trim($str);$str = addPKCS7Padding($str);$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_CBC),1);$encrypt_str =  mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_CBC);return base64_encode($encrypt_str);
}/*** 解密方法* @param string $str* @return string*/function alipay_decrypt($str,$screct_key){//AES, 128 模式加密数据 CBC$str = base64_decode($str);$screct_key = base64_decode($screct_key);$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_CBC),1);$encrypt_str =  mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_CBC);$encrypt_str = trim($encrypt_str);$encrypt_str = stripPKSC7Padding($encrypt_str);return $encrypt_str;}

3.会出现一个AlipayTradePagePayContentBuilder()错误 找到这个位置前面加个\

到这里基本就结束了 附上自己测试代码

   //支付方法public function pay($order_id){require_once app_path("Packages/alipay/pagepay/service/AlipayTradeService.php");require_once app_path("Packages/alipay/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php");$config = config("alipay");//商户订单号,商户网站订单系统中唯一订单号,必填$out_trade_no = date('YmdHis').rand(50,200).Str::random(10);//订单名称,必填$subject = trim("go团队测试");//付款金额,必填$total_amount = rand(10,100);//商品描述,可空$body = "";//构造参数$payRequestBuilder = new \AlipayTradePagePayContentBuilder();$payRequestBuilder->setBody($body);$payRequestBuilder->setSubject($subject);$payRequestBuilder->setTotalAmount($total_amount);$payRequestBuilder->setOutTradeNo($out_trade_no);$aop = new \AlipayTradeService($config);/*** pagePay 电脑网站支付请求* @param $builder 业务参数,使用buildmodel中的对象生成。* @param $return_url 同步跳转地址,公网可以访问* @param $notify_url 异步通知地址,公网可以访问* @return $response 支付宝返回的信息*/$response = $aop->pagePay($payRequestBuilder,$config['return_url'],$config['notify_url']);//输出表单var_dump($response);}

4、同步跳转

    //同步跳转public function success(){//引入配置文件$config = config('alipay');//引入ALipayTradeService文件require_once app_path("Packages/alipay/pagepay/service/AlipayTradeService.php");//接到支付宝同步跳转所返回的所有值 都将验签使用$arr = $_GET;//实例化AlipayTradeService 前面加个\ 传配置文件过去$alipaySevice = new \AlipayTradeService($config);//调用验签方法         这里特别说明一下 如果验签失败。请去AlipayTradeService文件中找到check方法做一下修改$ischeck = $alipaySevice->check($arr);//判断验签是否成功if($ischeck){//成功跳转到订单成功页面 用于提示用户return view("order.success");}else{//验签失败echo "fail";}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547274.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

npm上传自己的项目

npm安装就不介绍了&#xff0c;自行度娘。本文介绍npm上传 先初始化&#xff1a;npm init 根据提示填完系统介绍信息&#xff08;package.json&#xff09;&#xff1b; 再登录npmjs&#xff1a; npm login 效果如图&#xff1a; 输入注册的用户名、密码、邮箱&#xff0c;…

融于心而表于行 之 程序的执行问题

2.4 程序的执行问题Linux的多用户说完了&#xff0c;还需要进行下一个话题&#xff0c;那就是多任务的问题。所谓多任务&#xff0c;就是同一时刻能够执行多个程序。这个问题其实对于大多数Windows用户它都不是个问题&#xff0c;因为我们经常会一边浏览网页&#xff0c;一边用…

WebStorm文件类型关联设置

无意中创造了一个没有扩展名的文件&#xff0c;我选择了错误的文件类型关联。是js类型的&#xff0c;我却选成了文本&#xff0c;Ws每次编辑类型就成了txt文本&#xff0c;这个问题让我很苦恼&#xff0c;以下是我的解决方案。 错选的弹出框如下&#xff1a; 解决方案如下&…

WebStorm按Tab建快速生成代码模块

WS中&#xff0c;比如调试每次都要写的console.log(xxx);每次都要敲一遍&#xff0c;还有if模块&#xff0c;for循环模块&#xff0c;难道没有快捷键&#xff0c;可以生成代码模块吗&#xff0c;答案是“有”。 操作步骤如下&#xff08;汉化版WS&#xff09;&#xff1a; 1、…

iterm2一键登陆服务器(门神权限不用每次都输密码进行验证)

1、新建文件 vim ~/.ssh/config 在打开的文件中输入以下内容 Host * ControlMaster auto ControlPath ~/.ssh/master-%r%h:%p ControlPersist yes ServerAliveInterval 60 #保持持久链接 每60s 发送一个请求检测2、 新建文件 并赋予可执行权限&#xff…

STM32 cubeMX 光敏电阻AD转化实验

文章代码使用 HAL 库。 文章目录 前言一、光敏电阻介绍二、光敏电阻原理图解析三、ADC采样介绍1. 工作原理&#xff1a;2. ADC精度&#xff1a; 四、STM32 cubeMX配置ADC采样五、代码编写总结 前言 实验开发板&#xff1a;STM32F051K8。所需软件&#xff1a;keil5 &#xff0c;…

tls握手浅析

首先上图&#xff1a; tcp三次握手完毕 tls&#xff1a; 1、client hello client random 支持的tls 支持的算法 2、server hello server random 选择的tls协议 选择的算法 证书 公钥 3、client 公&#x1f511;加密后的。 premaster secret server 私钥解密得到 premas…

第二题:坦克游戏1.0(方法:动态规划)

stO 在此给某位靠打01背包处理射程并AC的大神跪了 Orz 问题描述&#xff1a; henry公司最近推出了一款新的坦克游戏。在游戏中&#xff0c;你将操纵一辆坦克&#xff0c;在一个NM的区域中完成一项任务。在此的区域中&#xff0c; 将会有许多可攻击的目标&…

linux 使用systemctl 设置java进程开机启动,管理springboot开机进程

该过程默认已经安装jdk。java程序启动方式有多重&#xff0c;列出如下几种。 1、java -jar demo.jar 使用该命令程序在控制台输出启动&#xff0c;当按下CtrlC和关闭终端时&#xff0c;程序会终止。输出日志&#xff0c;在后面加上 > 文件名&#xff0c;如&#xff1a;java…

Opencv 深度学习识别性别和检测年龄

目录 1基于CNN的性别分类建模原理 1.1 人脸识别 1.2 性别预测 1.3 年龄预测 1.4 结果 2 代码 参考 本教程中&#xff0c;我们将讨论应用于面部的深层学习的有趣应用。我们将估计年龄&#xff0c;并从单个图像中找出该人的性别。模型由GilLevi和TalHassner训练&#xff0…

结构体和联合体

结构体&#xff1a; 8个为一个内存地址 依次向下 联合体&#xff1a; 共用一块内存地址 调试可以gcc -g -o输出编译。然后gdb执行 d打断点。n下一行。p输出。查看每一个所占的内存地址 宏定义和使用 #define 宏名称 “实现什么东西” 大小端 可以自行判断自己电脑 摘自…

Log4j的应用实例

建一张表&#xff0c;如下&#xff1a; create table log4j( logId int not null auto_increment,--流水号 createDate varchar(45) default null,--日志生成时间 thread varchar(45) default null,--当前线程 level varchar(45) default null,--当前日志的级别 …

AgileEAS.NET SOA 中间件平台.Net Socket通信框架-完整应用例子-在线聊天室系统-代码解析...

一、AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台.Net Socket通信框架-介绍一文之中我们对AgileEAS.NET SOA中间Socket/Tcp框架进行了总体的介绍&#xff0c;我们知道 AgileEAS.NET SOA中间件Socket/Tcp框架是一套Socket通信的消息中间件&…

小程序如何跳转到各大电商小程序进行CPS赚钱

小程序系统广告门槛高&#xff0c;流量主费用低&#xff0c;个人开发者难以变现。电商CPS也是一种不错的变现方式&#xff0c;在自己的小程序内添加购物优惠导航入口。自己小程序的用户通过导航跳转到电商平台&#xff0c;进行购物&#xff0c;购物完成结算后&#xff0c;作为开…

安装composer以及laravel框架

Linux系统下安装laravel框架 在linux系统下安装laravel&#xff1a; 1.下载到windows系统下&#xff0c;使用FTP(FileZilla是一种快速、可信赖的FTP客户端以及服务器端开放源代码程式&#xff0c;具有多种特色、直接的接口。FileZilla在2002年11月获选为当月最佳推荐专案.)上传…

JVM系列(一)--JVM运行时数据区

随着时间的推移&#xff0c;我觉得有必要将一些之前相对模糊但是对自身技术提高会有帮助的原理、概念、实现进行一下系统的整理&#xff0c;所以就从JVM系列开始吧。本系列主要参考《Java虚拟机规范(第二版)》、周志明先生写的《深入理解Java虚拟机》&#xff0c;具体虚拟机主要…

ceph iscsi安装

ceph iscsi安装 2020-02-24 #安装包 下载包https://github.com/ceph/ceph-iscsi安装ceph-iscsi配置文件安装rbd-target-api所在的ceph-iscsi-cli包 3.1安装依赖python-configshell&#xff0c;网上 3.2安装包里的python-rtslib&#xff08;先卸载老版本&#xff09; 3.3安装…

Tensorflow C3D完成视频动作识别

本文是视频动作识别领域经典的C3D网络的简易实现&#xff0c;可以作为动作识别的入门。论文为<Learning Spatiotemporal Features with 3D Convolutional Networks>(ICCV 2015)。 框架&#xff1a;Tensorflow (1.6)python(2.7)slim 数据集&#xff1a;UCF101. Center f…

去除表中重复的数据

2019独角兽企业重金招聘Python工程师标准>>> 表数据如下&#xff1a; 查询表中重复的数据&#xff1a; SELECT * FROM t_class WHERE classname IN (SELECT classname FROM t_class GROUP BY classname HAVING COUNT(classname) > 1) 结果如下&#xff1a; 显示…

基于动态骨骼的动作识别方法ST-GCN

解读&#xff1a;基于动态骨骼的动作识别方法ST-GCN&#xff08;时空图卷积网络模型&#xff09; 2018年04月09日 01:14:14 我是婉君的 阅读数 16076更多 分类专栏&#xff1a; 计算机视觉 论文 版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协…