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支付宝在线支付下单流程怎么实现”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
网站栏目:Thinkphp5.0支付宝在线支付下单流程怎么实现-创新互联
分享网址:http://cdiso.cn/article/dcjgsh.html