支付订单同步回调

2023-11-11

public function pay(){
        $params = input();//接收数据
        //判断订单号支付方式不为空
        $validate = $this->validate($params,[
           'order_sn'=>'require',
           'pay_code|支付方式'=>'require',
        ]);
        if($validate!==true){
            $this->error($validate);
        }
        //获取登录用户ID
        $user_id = session('info');
        //根据用户ID和订单号查询订单信息
        $order = \app\common\model\Order::where('order_sn',$params['order_sn'])
            ->where('user_id',$user_id)->find();
        if(!$order){
            $this->error('订单不存在');//判断订单是否存在
        }

        $order->pay_code = $params['pay_code'];
        $order->pay_name = config('pay_type' . $params['pay_code'] . '.pay_name');
        $order->save();
        //选择支付宝支付进入
        switch ($params['pay_code']){
            case 'wechat';
            break;
            case 'union';
            break;
            case 'alipay';
            default:
            echo "<form id='alipayment' action='/plugins/alipay/pagepay/pagepay.php' method='post' style='display:none'>
    <input id='WIDout_trade_no' name='WIDout_trade_no' value='{$order['order_sn']}'/>
    <input id='WIDsubject' name='WIDsubject' value='品优购订单' />
    <input id='WIDtotal_amount' name='WIDtotal_amount' value='{$order['order_amount']}'/>
    <input id='WIDbody' name='WIDbody' value='品优购订单,测试订单,你付款了我也不发货' />
</form><script>document.getElementById('alipayment').submit();</script>";
                break;
        }
    }
//同步回调方法:查询订单,调用支付宝支付订单,跳转支付成功页面
public function callback(){
    $params = input();
    require_once ("./plugins/alipay/config.php");
    require_once './plugins/alipay/pagepay/service/AlipayTradeService.php';
    $alipaySevice = new \AlipayTradeService($config);
    $result = $alipaySevice->check($params);
    if($result){
        $order_sn = $params['out_trade_no'];
        $order = \app\common\model\Order::where('order_sn',$order_sn)->find();
        return view('paysuccess',['pay_name'=>'支付宝','order_amount'=>$params['total_amount'],
            'order'=>$order]);
    }else{
        return view('payfail',['msg'=>'支付失败']);
    }

}
$config = array (   
      //应用ID,您的APPID。
      'app_id' => "2021000117648683",

      //商户私钥
      'merchant_private_key' => "MIIEpAIBAAKCAQEAv8stuADN08OvmnQr9paLQUsi3ROMeePxSnmbnahuIm6lMf0EidDu9arfeEm7RjkbzNX3fzcLhZrEiDSIB3TiENKIJpH3j9Wp9WYffdczUCgRQiqPA84uLeCt8avhCJ/pdWb45/wARCJJVVgmO07vh+yxywbpw+XucDqmQ2gkXF1nzoTYqBImpXzlWcxpEr3lYqHeu7Ueu0+j0YJnLvhLn0W/MtbpDwG0HmONXGiKDZGE1QZCL/qTuKurZVW68SQCo9Kju4hFGOIGhAyfT0FW6ZCcXBnHEA+TRws+OcQau8e+JNLZebqBAHsG+6S2v43W6sBf3lFr3CMOlPeltC9/XQIDAQABAoIBAEwruWCWkShFU3yYHs20RGIOIS6EEQpnyPC3E2Kt/e+W2ezce+zwGbdfwZjYT5Q4Ih5b7AuOJPlO2jbuBghQF2hu9Lu8xQFO7k0T3fXwfeSbxR7uIBZ20EhQL0UH6juupt2Fo90ebEyjAVTvyV9MnjzxeDsV58lxjBzubhHfTnGPxkicpuQ9p+it79NGFwQ9ZfprnO8y+u2Uen1KDHbDooSFjgZSuiZXpRN2hm/7qRoxwqXiMu/Cdz+pVis1B+KqGYixbs+omKkdD3PS4Ir1SAO0/US9jQSdz25TtufVw+e2JEo0EbnMHk6Rk+r+H+V5hTPSX/KU5E2BPJCBB258ntECgYEA9JozYqt0aGkmqiNlfvX5D1QIh+SGBSNZhFv8VmyzjxOI08b8NeeXYNxci8WXmEwqPWrD85Wnx3rAJHgVEBhVqXmKksRcgqZ5JCLIwUiUyykEZo0WDHsMJOgIMYHOxEzaR19JzDvWCbPxzvjCsNIMCJUzVWCV0cVJn8GwiVs6oTcCgYEAyLsJWfdg1v+TApZMsKZYOtB2QJWkARPvRtLCcEYaeGdOa+oOjFocHlnzjW0Xv+4RbQeeop5cpKSE02caeZfpQaZ+wcJC7dMYlMnQWtdJunERBSASOpSXl/RdDXh0D8KWorapE7cCU2R1DRVQd7+y4PgeBPlMboOJbgV2erv6/gsCgYBnqQnp4PueXCG0rPeQjLGWW2iaHrDlcIu5WjpgbgTSt9ae2Y99UL6IoBrgaUbLlku4Z4zPqDbIhS70xac3gPicsBOYC3uhKuff9pXZw+a7CpEA3P3hICyPX35JbNexvVgsMyfVU+5rgkUSD76CrSHIaWKt5hbYJaIEAFPOgkkglQKBgQC1Ns1pb//3+QCh/Eg9zd6nMh0fjzhhVLrWSF0K+O7atgDBQatin9L0v6Y1jkA7oFQRByj6jFb8uB3FsDXhgfgtsX6Ls7GyfLmbUVqNOACylXKVGu/5/L2ijBQZnh3BQJ23RYn8Z2JtIKrfZdegU+rMWJLZUKrktlEyhzH/+YbNIwKBgQCOLpswbDLlFD0MEIpYKfCcV+FGtMwJgLR0u6Xw8mXbWzGtma9ivGE/KYmhGNuhxDQvXeKb7PCs2cJo8C3Iwv40PmmsRZJgX1I0SYUzbqoqxWYXSje7RJCI7QJ2IYZmGAooqBeaRjfApc2Fl71qUHnJb8XQ8Cfvim7J3jR9LXacHg==",
      
      //异步通知地址
      'notify_url' => "http://www.tpshop.com/home/order/notify",
      
      //同步跳转
      'return_url' => "http://www.tpshop.com/home/order/callback",

      //编码格式
      'charset' => "UTF-8",

      //签名方式
      'sign_type'=>"RSA2",

      //支付宝网关
      'gatewayUrl' => "https://openapi.alipaydev.com/gateway.do",

      //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
      'alipay_public_key' => "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxk85wTlZDzpQzCcZCUn1oY5hHCZ4oHdMLUXCZzKunkojJAtw41S+CBwQcJsyXhlLg3ucdt/1VXQNazj2SFbukanJMBXyHRnVVTvgbYmnx46MxeLJKWG+f8v7+uv6XTdfZb0r2v9xwNteg3AjPM1ebjZN0DAlmzItxTU+O5T9xEg89TZpeGy6TxeaMdhEea7Ht5di3GhsiitolP+uz+1yWO4VLr+u3BeEET/cgWu4vrlV/If+ndxp+Az42IgJr3OQ+jIwBVYRGymm7UyTt+4iFqDC5/HL25POl+SgAWgs+O6P+U5oeEhnkUX4IaQ47Vw4xjaHXn01z3cikavEeKzkVwIDAQAB",
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

支付订单同步回调 的相关文章

随机推荐

  • STM32 端口复用学习

    一 STM32端口复用 1 端口复用定义 STM32有很多的内置外设 这些外设的外部引脚都是与GPIO复用 也就是说 一个GPIO如果可以复用为内置外设的功能引脚 那么当这个GPIO作为内置外设使用的时候 就叫做复用 2 作用 最大限度的利
  • vue 实现计时器组件

    vue 实现计时器组件 结果图 v if 和 v show 的区别 总结来说v if是在不断的销毁和重建 v show 只是改变 display 属性 元素依然存在 dom 中 v if 切换开销大 v show 初始化开销大 time v
  • 人称代词用法大全

    语言发明出来自然是要给人用的 所以跟人相关的词就特别多 划分的很细 我们提到某个具体的人一般就直接说名字 但有时是泛指 或者前面已经提过名字了 后面用个啥简称指代下就清楚了 这就需要代词 代词嘛顾名思义是一个代称 是指代某个人或者某类人 某
  • 搭建使用 VS 开发 Qt 项目的环境

    搭建使用 VS 开发 Qt 项目的环境 个人认为 使用 Qt 工具开发 Qt 项目是最好的方案 在开发的过程出现的 bug 会比较少一些 但是有些同伴可能对 VS 比较钟爱 而 VS 又有此功能 因此想采用 VS 进行开发 本文将本人搭建成
  • nacos源码启动找不到istio包

    现象 源码版本2 1 0 启动时 编译不通过 报错 找不到 istio mcp v1alpha1 MetadataOuterClass Metadata istio networking v1alpha3 ServiceEntryOuter
  • 算法:链表

    单链表 单链表是一种链式存取的数据结构 链表中的数据是以结点来表示的 每个结点存储两个数据 一是该结点本身的值 二是其指向的下一结点的下标 用e i 表示节点i的值 用ne i 表示结点i指向的下一结点的坐标 head表示头结点的下标 id
  • 网关系统架构

    目录 一 API网关业务域 1 业务域 2 统一接入 3 安全防护 4 流量管控 5 协议转换 6 其他业务 1 接口文档管理 2 调试工具和示例 3 SDK自动生成能力 4 API增强 二 API网关核心指标 1 模型 2 安全性 3 高
  • C语言编写的简单计算器程序

    这两天在看一个C语言写的计算器程序 做了不少的功夫 跟着作者一步步的进行完善 了解了许多细节性的东西 在此自己做个总结 加深自己对程序的印象 也算是梳理 在该计算器程序 能进行加减乘除 sin cos exp等操作 同时能进行数值保存功能
  • 2021浙江工商计算机机试1

    1不在数列中的数字 给出一个长度为n的数列 包含1到n的数字 输出1到n中不在数列中的数字 include
  • Android studio64新建APP项目时,报错 junit:junit:4.12

    大家都是要求注释掉 但不想这样 看了很多博客 快绝望的时候 用这个办法成功了 文件 E android app 工程文件目录 下面的 build gradle 文件 在这个文件中加入最后划线3行 保存即可 然后再retry apply pl
  • VS安装配置OpenCV(C++)

    目录 第一章 Opencv安装及其环境变量配置 1 1下载并安装OpenCV 1 2 OpenCV环境变量配置 第二章 Visual Studio 2019 编译器下载安装 第三章 OpenCV开发环境配置 C 3 1创建项目 3 2 添加
  • 全国信息技术标准化技术委员会汉字内码扩展规范(GBK)

    全国信息技术标准化技术委员会 汉字内码扩展规范 GBK Chinese Internal Code Specification 1 0 版 按编码顺序排列 81 丂 丄 丅 丆 丏 丒 丗 丟 丠 両 丣 並 丩 丮 丯 丱 丳 丵 丷 丼
  • 记一次使用EasyExcel出现Convert excel format exception.You can try specifying the ‘excelType‘ yourself

    EasyExcel 3 0 出现 com alibaba excel exception ExcelCommonException Convert excel format exception You can try specifying
  • Vue常用知识点汇总

    1 Vue常见的指令有哪些 有什么用 1 v text 会替换掉元素里的内容 2 v html 可以渲染html界面 3 v clock 防止界面闪烁 4 v bind 界面元素属性值的绑定 简写为 5 v on 事件绑定 简写为 6 v
  • K8s 管理工具 kubectl 详解

    文章目录 一 陈述式管理 1 陈述式资源管理方法 2 k8s 相关信息查看 2 1 查看版本信息 2 2 查看资源对象简写 2 3 查看集群信息 2 4 配置kubectl自动补全 2 5 查看日志 2 6 基本信息查看 2 6 1 查看m
  • SPRING是如何解决循环依赖的?为什么无法解决多例和构造器的循环依赖

    标签 java spring 文章目录 1 什么是循环依赖 2 解决循环依赖思路 3 二级缓存能否解决循环依赖 三级缓存存在的意义 4 多例和构造器为什么无法解决循环依赖 5 如何进行扩展 6 spring在创建bean的时候 在哪里创建的
  • 【C++数据结构】程序性能分析

    程序性能分析 2 1 什么是程序性能 程序性能 所谓程序性能 performance of a program 是指运行这个程序所需要的内存和时间的多少 性能分析 在性能分析 performance analysis 时 采用分析方法 性能
  • 在gitee网页中创建分支后,在vscode中更新分支

    在vscode中更新gitee上创建的分支 在网页创建分支之后 vscode中git pull origin更新在gitee创建的分支 更新之后这里有origin test分支 选中之后 通过git bracn就可以看到线上的分支了
  • 深度理解yolov3损失函数

    深度理解yolov3损失函数 在yolov3中 loss分为三个部分 一个是xywh部分带来的误差 也就是bbox带来的loss 一个是置信度带来的误差 也就是obj带来的loss 最后一个是类别带来的误差 也就是class带来的loss
  • 支付订单同步回调

    public function pay params input 接收数据 判断订单号支付方式不为空 validate this gt validate params order sn gt require pay code 支付方式 gt