thinkphp6.0 集成Alipay 手机和电脑端支付的方法
本文由 BI8EJM 原创,转载请注明出处!
第一步
下载 Alipay 的PHP SDK :https://docs.open.alipay.com/54/103419/
第二步
解压下载都到的压缩包:
解压后得到的文件内容如图
第三步、上传得到的目录中的 aop 文件夹到 thinkphp 6.0 的 extend 目录,如下图:
第四步、修改 AopClient.php 文件,加入命名空间 aop 具体修改如下图
在第二行位置,也就是最开始的位置,加入代码:
namespace aop;
第五步、修改 PC 支付文件 AlipayTradePagePayRequest.php 同样是加入命名空间 namespace aop\request ,具体如下:
在第二行位置,也就是最开始的位置,加入代码:
namespace aop\request;
第六步、使用PC支付接口,生成支付链接
PS:接口方法这不是统一定义、而是在购买控制器中直接定义的,如要统一可以创建公共控制器或其他方法统一。
1.在 确认订单的控制器 ,我这里是 Buy 中引入支付方法。
use aop\AopClient;
use aop\request\AlipayTradePagePayRequest;
2.创建私有方法 $alipay_config ,替换下面红色的内容部分,为你的信息,具体信息在你的支付宝开发者平台获取,地址:https://openhome.alipay.com/platform/appManage.htm#/apps
private $alipay_config = array(
'app_id' => '你的app_id',
'notify_url'=>"https://xxx.com/xxx/ 这是你的异步通知地址",
'merchant_private_key' => '你的私钥',
'gatewayUrl' => "https://openapi.alipay.com/gateway.do",
'public_key' => "你的公钥",
);
3.配置、引入 aop
$aop = new AopClient();
$aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
$aop->appId = $this->alipay_config['appid'];
$aop->method = 'alipayTradePagePay';
$aop->charset = 'utf-8';
$aop->signType = 'RSA2'; $aop->alipayrsaPublicKey = $this->alipay_config['public_key'];
$aop->rsaPrivateKey = $this->alipay_config['private_key'];
4.生成 biz_content 内容,具体内容可根据自己需求增删,具体文档参考:https://docs.open.alipay.com/api_1/alipay.trade.page.pay/
参数解释:
out_trade_no :订单号,阿里要求是唯一的。
product_code :销售产品码,与支付宝签约的产品码名称。注:目前仅支持 FAST_INSTANT_TRADE_PAY
total_amount :支付金额
subject :订单名称
timeout_express : 支付过期时间,订单创建后多久过期,这里 设置 30m 意思是,订单创建后 30 分钟后过期,过期了这个就不能支付了,这里只是alipay这里不能支付,不要搞晕了。
$biz_content = json_encode([
'out_trade_no'=> rand(11111111,99999999),
'product_code'=> 'FAST_INSTANT_TRADE_PAY',
'total_amount'=> 99.9,
'subject'=> 'BI8EJM Alipay 测试',
'timeout_express'=>'30m',
]);
5. 引入 PC 支付 并显示 支付链接
$payRequest= new AlipayTradePagePayRequest(); $payRequest->setReturnUrl(url('index/index'));
$payRequest->setNotifyUrl($this->alipay_config['notify_url']);
$payRequest->setBizContent($biz_content);
$response = $aop->sdkExecute($payRequest);
echo '<a href="'.'https://openapi.alipay.com/gateway.do?'.$response.'">
至此,支付链接生成就完毕了。
第七步、测试打开支付链接
点击:立即支付 成功跳转到支付页面
第八步、异曲同工。
这里仅仅展示了 PC 的支付,说好的手机支付呢?手机支付一样,你只需要在手机支付接口文件中,指定命名空间,然后引入手机支付方法即可,希望你能顺利完成。
thinkphp6.0 集成Alipay 手机和电脑端支付的方法的更多相关文章
- Android手机同步电脑端google chrome书签
我先声明:文中FQ 都是博客园自动将中文(fan qiang)转换为FQ的,并不是我本来写的就是FQ~~ 手机和电脑都必须要能登录google(Xee:几乎所有做开发的人都每天的生活都离不开谷歌了,可 ...
- 手机访问电脑端Wampserver2.4-x64服务
我用的Wampserver2.4-x64 1. 先确保你的手机和电脑连在同一个局域网内. 2. Window + R, 然后输入 ipconfig,然后获取ip地址, 长这样: 192.168.XX. ...
- iphone手机怎么录屏 两种方法任你挑选
iphone手机怎么录屏呢?苹果手机拥有独特的Airlay镜像投屏,AirPlay的工作原理是当iPhone或IPAD与支持AirPlay技术的硬件,比如Apple TV等设备处在同一个wife的情况 ...
- 通过Rabbitmq从ipone手机传输imu和相机数据到电脑端
https://github.com/tomas789/iOSmsg_client https://github.com/tomas789/iOSmsg 通过xcode工具把iosmsg打包发布到ip ...
- app手机端连接tomcat电脑端服务器
1.你要在电脑端开启并启动tomcat 2.启动nginx,然后需要在nginx中配置好端口号,每一个app的模块端口号是不一样的,需要你进行更改 3.如下图代表app连接的端口: 4.关于sql过滤 ...
- 手机变为电脑的摄像头,使像素高清起来-使用DroidCam
你是不是已经在嫌弃电脑自带的摄像头的渣渣像素呢? 今天给大家安利一个方法:将手机摄像头设置为电脑的摄像头,让像素高清起来,对于搞图像的同志们真是福音啊,尤其是做人脸识别的时候. 方法有很多种,我推荐我 ...
- 判断Http请求由手机端发起,还是有电脑端发起
某些情形,我们需要判断Http请求是来自手机端还是电脑端,关键是取得User-Agent的信息,进行筛选判断即可. 核心类如下: public static boolean isMobileDevic ...
- 电脑端支付宝支付 -前端获取支付宝返回的form 以及submit 调用支付扫码页面
前端调取支付宝支付接口(后台进行封装,没有直接调取支付宝接口),调用返回的数据中,将会有一串的form表单数据返回,我们需要将此表单在当前调用页面submit下,以跳转到支付扫码页: 支付宝返回的fo ...
- js 判断当前操作系统是ios还是android还是电脑端
js判断客户端是否是IOS或者是Android //如果返回true 则说明是Android function is_weixin() { var ua = window.navigator.user ...
随机推荐
- Linux之vim详解
第一次使用vim,啥都不懂,输入也不能输入,退出也不会退出,特别的尴尬....后来慢慢的接触学习,发现vim真的挺好用的,不过上手有点慢,多用就对了,用多了我相信你也会喜欢这个文本编辑工具的 一.vi ...
- 干货 | Elasticsearch、Kibana数据导出实战
1.问题引出 以下两个导出问题来自Elastic中文社区. 问题1.kibana怎么导出查询数据? 问题2:elasticsearch数据导出 就像数据库数据导出一样,elasticsearch可以么 ...
- 啥?修改下 URL 就能高速下载网盘资源和百度文库?
下载百度资源和百度文库资料是大家常有的需求,不过多数方法都需要下载些软件什么的才能实现. 今天给大家介绍一个简单方法,修改下 URL 就能直接在浏览器中高速下载网盘资源和百度文库资料. [下载百度网盘 ...
- Go输入输出格式化Printf
package main import ( "fmt" "os" ) type point struct { x, y int } func main() { ...
- pip安装第三方库
不是所有的第三方Python包都能通过pip来安装,只能是发布在pypi.org上面的才能通过pip安装. pypi是什么? pypi是一个仓库,上面存放了大量的Python第三方软件包,是由Pyth ...
- Nacos(一):Nacos介绍
前言 6月份阿里开源的Nacos出了1.0.1版本,从去年7月份第一个release版本到现在一直在默默关注 官方的版本规划为:Nacos从0.8.0开始支持生产可用,1.0版本可大规模生产可用,2. ...
- [开源] FreeSql.AdminLTE 功能升级
前言 FreeSql 发布至今已经有9个月,功能渐渐完善,自身的生态也逐步形成,早在几个月前写过一篇文章<ORM 开发环境之利器:MVC 中间件 FreeSql.AdminLTE>,您可以 ...
- session一致性的解决方案
更多内容,欢迎关注微信公众号:全菜工程师小辉.公众号回复关键词,领取免费学习资料. 什么是session? 服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文,这个相 ...
- iframe中使用模态框提交表单后,iframe加载父页面的解决方法
在iframe中使用模态框提交表单后,会出现iframe加载整个父页面的问题,如下图: 解决方法: 在form表单中添加target属性 _parent 这个属性会使目标文档载入父窗口或者包含来超链接 ...
- mongodb 启动 WARNING: soft rlimits too low, transparent_hugepage/enabled is 'always'. never
今天启动mongodb的时候,之前一直没注意,今天发现又warning,想整一整. 下面是告警 2019-09-05T12:00:55.271+0800 I CONTROL [initandliste ...