简介
蚂蚁金服开放平台基于支付宝的海量用户,将强大的支付、营销、数据能力,通过接口等形式开放给第三方合作伙伴,帮助第三方合作伙伴创建更具竞争力的应用。

通过接入蚂蚁金服开放平台,第三方合作伙伴可以获得更多的流量、用户和收益,而第三方合作伙伴提供的服务也让用户获得了更丰富的体验,平台生态更加繁荣,最终实现多方共赢
开发文档 和介绍网站: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 支付宝沙箱支付相关推荐

  1. 基于SpringBoot vue的电脑商城平台源码和论文含支付宝沙箱支付

    演示视频: 基于SpringBoot vue的电脑商城平台源码和论文含支付宝沙箱支付演示视频 支付宝沙箱: package com.java.controller;import java.util.* ...

  2. 【支付宝沙箱支付】麻瓜教程——申请----代码----修改测试----问题解决

    文章目录 支付宝沙箱环境 沙箱概述: 支付宝沙箱支付操作 `1.搜索进入支付宝开放平台` `2.登录,进入控制台` `3.进入沙箱` `4.进入支付宝开发助手下载所需的工具(度娘搜索就有)` `5.然 ...

  3. 一文叫你学会用JavaWeb开发共享图书馆系统(附加支付宝沙箱支付接入)

    前提: 学习书籍: 黑马程序员的<Java Web程序设计任务教程>: 如果没有本文的资源均可以评论留言,我可以免费发给你们学习. 下载安装Eclipse 2021.MySQL 5.5.T ...

  4. SpringBoot+Vue整合支付宝沙箱支付

    SpringBoot+Vue2整合实现支付宝沙箱支付 原创不易,转载请注明!!原创不易,转载请注明!!原创不易,转载请注明!!原创不易,转载请注明!!原创不易,转载请注明!! 在进行电脑网站开发时我们 ...

  5. 支付宝沙箱支付可能遇见的问题

    问题1:付款时显示订单已付款 原因: 向支付宝提交的订单号重复,且之前的订单号已支付过 解决办法: 换个订单号就行 问题2: 触发点击事件时界面显示404NotFound 原因1:支付宝网关填写有错误 ...

  6. Asp.Net支付宝沙箱支付(也可用手机扫描支付)详细教程

    要想完成支付宝沙箱支付就必须先完成这些设置后才能往后走 一.首先先注册 1.点击下面的网址,点击右上角的立即入驻,然后用支付宝账号扫码登陆.然后填写信息,登陆. 支付宝开放平台 然后进入平台找到沙箱后 ...

  7. 基于SpringBoot vue的茶叶商城平台源码和论文含支付宝沙箱支付

    此项目是前后端分离的 后台项目:shop 前端项目:Vue-shop 后端项目启动步骤: 1.先把sql导入数据库 2.把后台项目导入编辑器 3.修改数据库配置 4.启动项目   前端项目启动步骤: ...

  8. springboot整合支付宝沙箱支付

    springboot整合支付宝沙箱支付 1.简介 支付宝开发平台地址:https://open.alipay.com/develop/sandbox/app 对于学生来说,目前网上确实没有比较统一而且 ...

  9. 阿里云支付宝沙箱支付

    阿里云支付宝沙箱支付 项目文件是maven项目 第一步pom.xml引入jar包 <!-- 沙箱支付依赖--><dependency><groupId>com.al ...

  10. Spring Boot 集成支付宝 沙箱支付

    1.沙箱环境简介&基础开发配置 1.进入支付宝官网,扫码进入,网址:https://open.alipay.com/platform/home.htm 2.找到开发服务进入下面的研发服务 3. ...

最新文章

  1. QIIME 2用户文档. 22Python命令行模式(2019.7)
  2. 2020年全球工业机器人行业市场现状及竞争格局分析
  3. Realm发布Realm .NET,扩展支持.NET技术栈
  4. 7系列高速收发器总结 GTP IP核使用篇
  5. vue radio双向绑定_Vue 双向绑定
  6. PHP之安装Pear
  7. 高一被清华姚班录取,一个重度网瘾少年到理论计算机科学家的蜕变
  8. 计算机多人远程桌面连接,配置网络:实现多个远程桌面连接
  9. 移动硬盘提示RAW的资料找到办法
  10. HDU4730 We Love MOE Girls
  11. .pcd文件转换为.ply文件
  12. MySql数据结构、索引优化原则(Java劝退师)
  13. 盲盒App就是一元购吗?
  14. Redis 存入key乱码问题
  15. 数据库——数据插入、修改、删除
  16. 无法给变量添加属性导致出问题
  17. 暗示的力量如此可怕!父母请永远不要对孩子说的“三个字”
  18. shell 循环语句
  19. Excel中汉字转拼音的完美方案
  20. vue移动端实现日历

热门文章

  1. 阿里云和域名怎么备案?
  2. Scratch软件安装的详细步骤
  3. 输入法 - 字母宽 窄 切换 - 全角 半角 的含义
  4. 三维立体图的原理和欣赏方法
  5. 摹客 PS 插件,支持自定切图尺寸!
  6. 【Mac】13个 Mac 必装软件,效率提升700%,堪称神器!
  7. Matlab中tic和toc用法
  8. Win10下OMNeT 5.X 遇到Simulating tictoc-tictoc1-“ has encountereda problemFinished with Error问题
  9. 月薪1万在中国是什么水平?答案揭露残酷的收入真相
  10. ORBSLAM2 理论部分_高斯金字塔(二)