iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >Thinkphp5.0支付宝在线支付下单流程怎么实现
  • 343
分享到

Thinkphp5.0支付宝在线支付下单流程怎么实现

2023-06-04 08:06:26 343人浏览 安东尼
摘要

本篇内容主要讲解“ThinkPHP5.0支付宝在线支付下单流程怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Thinkphp5.0支付宝在线支付下单流程怎么实现”吧!Thinkphp5.

本篇内容主要讲解“ThinkPHP5.0支付宝在线支付下单流程怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Thinkphp5.0支付宝在线支付下单流程怎么实现”吧!

Thinkphp5.0支付宝在线支付下单流程怎么实现

Thinkphp5.0支付宝在线支付下单整个流程实例,包括创建订单、支付成功回调更新订单状态、最终跳转到商户订单详情页

支付宝在线支付控制器代码

public function alipay() {//发起支付宝支付          $order_no = date("YmdHis") . rand(100000, 999999);         if (request()->isPost()) { //支付表单提交,并唤起支付宝在线支付             //调用 application\index\model\Pay.php             $Pay = new Pay;             $result = $Pay->alipay([                 'notify_url' => request()->domain() . url('index/index/alipay_notify'),                 'return_url' => request()->domain() . url('index/index/alipay_return')."?order_no=".$order_no."&",                 'out_trade_no' => input('post.orderid/s', '', 'trim,strip_tags'),                 'subject' => input('post.subject/s', '', 'trim,strip_tags'),                 'total_fee' => input('post.total_fee/f'), //订单金额,单位为元                 'body' => input('post.body/s', '', 'trim,strip_tags'),             ]);             if (!$result['code']) {                 return $this->error($result['msg']);             }             return $result['msg'];         }         //创建订单         db('order_sucaihuo')->insert(array(             'order_no' => $order_no,             'order_money' => 0.1, //订单金额             'state' => 0, //支付状态 0 未支付, 1已支付             'uid' => 1, //用户uid             'addtime' => time(), //下单时间             'update_time' => 0 //支付时间         ));         $this->view->orderid = $order_no;         return $this->fetch();     }     //支付宝客户端会每隔一段时间请求一次     public function alipay_notify() {//异步订单通知         $Pay = new Pay;         $result = $Pay->notify_alipay();         if ($result == 'success') {              $pay_info = $_REQUEST;             $order_no = $pay_info['out_trade_no'];             $order_info = db('order_sucaihuo')->where('order_no', $order_no)->find();             //若是未付款则更新             if ($order_info['state'] == 0) {                 $data['trade_no'] = $pay_info['trade_no'];                 $data['state'] = 1;                 $data['update_time'] = time();                 db('order_sucaihuo')->where("order_no", $order_no)->update($data);             }         }         //测试支付回调,linux记得开启777写入权限         file_put_contents("notify.txt", $result);         file_put_contents("request.txt", JSON_encode($_REQUEST));    }

订单表

CREATE TABLE IF NOT EXISTS `order_sucaihuo` (   `id` int(11) unsigned NOT NULL,   `uid` int(11) NOT NULL,   `order_no` varchar(30) NOT NULL,   `trade_no` varchar(150) DEFAULT NULL COMMENT '交易号',   `order_money` decimal(10,2) DEFAULT '0.00',   `state` int(2) NOT NULL DEFAULT '0',   `addtime` int(10) NOT NULL,   `update_time` int(10) DEFAULT '0' ) ENGINE=MyISAM AUTO_INCREMENT=6718 DEFAULT CHARSET=utf8;

到此,相信大家对“Thinkphp5.0支付宝在线支付下单流程怎么实现”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Thinkphp5.0支付宝在线支付下单流程怎么实现

本文链接: https://www.lsjlt.com/news/237097.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作