tp6 支付宝沙箱支付
简介:
蚂蚁金服开放平台基于支付宝的海量用户,将强大的支付、营销、数据能力,通过接口等形式开放给第三方合作伙伴,帮助第三方合作伙伴创建更具竞争力的应用。
通过接入蚂蚁金服开放平台,第三方合作伙伴可以获得更多的流量、用户和收益,而第三方合作伙伴提供的服务也让用户获得了更丰富的体验,平台生态更加繁荣,最终实现多方共赢
开发文档 和介绍网站:https://docs.open.alipay.com
1注册一个沙箱号 网站https://open.alipay.com/platform/home.htm
使用真的支付宝扫描 进去 注册 沙箱支付宝
一、同步回调
1.支付宝支付需配置alipay/config.php配置文件:添加商户私钥,支付宝公钥,同步,异步跳转地址,网关
//去支付public function pay(Request $request){//判断是否登录$uid = Cache::get('userinfo');if($uid==null){return redirect('login');}$data = $request->all();//判断是否重复提交$order = OrderModel::findOrder($data['order_sn']);if($order['order_status']==1){return fail("订单不能重复提交");}//判断订单是否延时$time = Cache::get('time');if(time()-strtotime($time)>300){return fail("订单超时,请重新下单");}if($data['payWay']==null){return fail(500,"请选择支付方式");}$goods_price = rtrim($data['goods_price'],"点");try {\app\admin\model\Order::where('order_sn',$data['order_sn'])->find();}catch (Exception $exception){throw new Exception("订单编号异常");}//判断支付方式switch ($data['payWay']){case 'alipay':{echo '<form id="alipayment" action="/plugins/alipay/pagepay/pagepay.php" method=post><input type="hidden" id="WIDout_trade_no" name="WIDout_trade_no" value="' . $data['order_sn'] . '"/><input type="hidden" id="WIDsubject" name="WIDsubject" value="' . $data['goods_id'] . '"/><input type="hidden" id="WIDtotal_amount" name="WIDtotal_amount" value="' . $goods_price . '"/><input type="hidden" id="WIDbody" name="WIDbody" value="1"/></form><script>document.getElementById("alipayment").submit();</script>';}}}
2.同步用于支付宝支付,路由用get方式提交
//同步回调
Route::get('rollBack','Order/rollBack');
3.支付流程:引入回调地址->验证参数->正确判断订单号是否存在->不存在返回失败->存在判断是否有误->修改订单状态
//同步回调public function rollBack(){try {$param = input();require_once("./plugins/alipay/config.php");require_once("./plugins/alipay/pagepay/service/AlipayTradeService.php");$alipaySevice = new \AlipayTradeService($config);$result = $alipaySevice->check($param);//验证成功if ($result) {//商户订单号$out_trade_no = $_GET['out_trade_no'];//查询订单是否存在$order = OrderModel::where('order_sn',$out_trade_no)->find()->toArray();if(!$order){return fail();}//订单号一致if($order['order_sn']==$out_trade_no){//若数据库状态为1,则已支付if($order['order_status']==1){return fail("订单已支付");}else{//否则修改数据库的状态$res = OrderModel::where('id',$order['id'])->update(['order_status'=>1]);}//状态修改成功,则返回成功if($res){Log::record($result);return redirect('success');}return fail();}} else {return redirect('fail');}}catch (Exception $exception){return fail($exception->getMessage());}}
二、异步回调
1.异步回调用户修改订单状态(要用post方式)
//异步回调
Route::post('notify','Order/notify');
2.控制器中
//异步回调public function notify(){$result = true;//记录日志Log::record(json_encode(\request()->post()));if($result) {//商户订单号$out_trade_no = $_POST['out_trade_no'];//查找订单号那条数据$order = OrderModel::where('order_sn',$out_trade_no)->find()->toArray();if(!$order){return fail();}//交易状态$trade_status = $_POST['trade_status'];//订单状态$status = $order['order_status'];if($_POST['trade_status'] == 'TRADE_FINISHED') {if($status == 1){return fail("订单已支付");}else{//修改数据库中的状态$res = OrderModel::where('id',$order['id'])->update(['order_status'=>1]);}//判断修改后的状态if($res){return success();}else{return fail();}}return fail();}else {//验证失败return fail();}}
3.postman中测试
tp6 支付宝沙箱支付相关推荐
- 基于SpringBoot vue的电脑商城平台源码和论文含支付宝沙箱支付
演示视频: 基于SpringBoot vue的电脑商城平台源码和论文含支付宝沙箱支付演示视频 支付宝沙箱: package com.java.controller;import java.util.* ...
- 【支付宝沙箱支付】麻瓜教程——申请----代码----修改测试----问题解决
文章目录 支付宝沙箱环境 沙箱概述: 支付宝沙箱支付操作 `1.搜索进入支付宝开放平台` `2.登录,进入控制台` `3.进入沙箱` `4.进入支付宝开发助手下载所需的工具(度娘搜索就有)` `5.然 ...
- 一文叫你学会用JavaWeb开发共享图书馆系统(附加支付宝沙箱支付接入)
前提: 学习书籍: 黑马程序员的<Java Web程序设计任务教程>: 如果没有本文的资源均可以评论留言,我可以免费发给你们学习. 下载安装Eclipse 2021.MySQL 5.5.T ...
- SpringBoot+Vue整合支付宝沙箱支付
SpringBoot+Vue2整合实现支付宝沙箱支付 原创不易,转载请注明!!原创不易,转载请注明!!原创不易,转载请注明!!原创不易,转载请注明!!原创不易,转载请注明!! 在进行电脑网站开发时我们 ...
- 支付宝沙箱支付可能遇见的问题
问题1:付款时显示订单已付款 原因: 向支付宝提交的订单号重复,且之前的订单号已支付过 解决办法: 换个订单号就行 问题2: 触发点击事件时界面显示404NotFound 原因1:支付宝网关填写有错误 ...
- Asp.Net支付宝沙箱支付(也可用手机扫描支付)详细教程
要想完成支付宝沙箱支付就必须先完成这些设置后才能往后走 一.首先先注册 1.点击下面的网址,点击右上角的立即入驻,然后用支付宝账号扫码登陆.然后填写信息,登陆. 支付宝开放平台 然后进入平台找到沙箱后 ...
- 基于SpringBoot vue的茶叶商城平台源码和论文含支付宝沙箱支付
此项目是前后端分离的 后台项目:shop 前端项目:Vue-shop 后端项目启动步骤: 1.先把sql导入数据库 2.把后台项目导入编辑器 3.修改数据库配置 4.启动项目 前端项目启动步骤: ...
- springboot整合支付宝沙箱支付
springboot整合支付宝沙箱支付 1.简介 支付宝开发平台地址:https://open.alipay.com/develop/sandbox/app 对于学生来说,目前网上确实没有比较统一而且 ...
- 阿里云支付宝沙箱支付
阿里云支付宝沙箱支付 项目文件是maven项目 第一步pom.xml引入jar包 <!-- 沙箱支付依赖--><dependency><groupId>com.al ...
- Spring Boot 集成支付宝 沙箱支付
1.沙箱环境简介&基础开发配置 1.进入支付宝官网,扫码进入,网址:https://open.alipay.com/platform/home.htm 2.找到开发服务进入下面的研发服务 3. ...
最新文章
- QIIME 2用户文档. 22Python命令行模式(2019.7)
- 2020年全球工业机器人行业市场现状及竞争格局分析
- Realm发布Realm .NET,扩展支持.NET技术栈
- 7系列高速收发器总结 GTP IP核使用篇
- vue radio双向绑定_Vue 双向绑定
- PHP之安装Pear
- 高一被清华姚班录取,一个重度网瘾少年到理论计算机科学家的蜕变
- 计算机多人远程桌面连接,配置网络:实现多个远程桌面连接
- 移动硬盘提示RAW的资料找到办法
- HDU4730 We Love MOE Girls
- .pcd文件转换为.ply文件
- MySql数据结构、索引优化原则(Java劝退师)
- 盲盒App就是一元购吗?
- Redis 存入key乱码问题
- 数据库——数据插入、修改、删除
- 无法给变量添加属性导致出问题
- 暗示的力量如此可怕!父母请永远不要对孩子说的“三个字”
- shell 循环语句
- Excel中汉字转拼音的完美方案
- vue移动端实现日历
热门文章
- 阿里云和域名怎么备案?
- Scratch软件安装的详细步骤
- 输入法 - 字母宽 窄 切换 - 全角 半角 的含义
- 三维立体图的原理和欣赏方法
- 摹客 PS 插件,支持自定切图尺寸!
- 【Mac】13个 Mac 必装软件,效率提升700%,堪称神器!
- Matlab中tic和toc用法
- Win10下OMNeT 5.X 遇到Simulating tictoc-tictoc1-“ has encountereda problemFinished with Error问题
- 月薪1万在中国是什么水平?答案揭露残酷的收入真相
- ORBSLAM2 理论部分_高斯金字塔(二)