Thinkphp5.0整合支付宝在线下单
thinkphp5.0支付宝在线支付下单整个流程,包括创建订单、支付成功回调更新订单状态、最终跳转到商户订单详情页
源码介绍
支付宝在线支付控制器代码
public function alipay() {//发起支付宝支付
$order_no = date("YmdHis") . rand(100000, 999999);
if (request()->isPost()) { //支付表单提交,并唤起支付宝在线支付
//调用 applicationindexmodelPay.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;
声明:
素材码,一个精品商业网站源码分享的个人网站 www.phprr.com
1. 本站所有资源来源于网络,均不允许转载,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 如发现会员恶意传播或用于违法用途,本站有权封禁账号,并积极配合有关部门调查
4. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
5. 本站提供的源码、模板、插件等等其他资源(除商业源码分类),都不包含技术服务请大家谅解!
6. 如有链接无法下载、失效或广告,请联系管理员处理!
7. 本站资源售价和会员费只是赞助,收取费用仅维持本站的日常运营所需!
8. 如遇到加密压缩包,默认解压密码为"www.phprr.com",如遇到无法解压的请联系管理员!
9.本站客服QQ:357058607
10.如您发现本站分享的源码,侵犯了您的权益,请联系:357058607#qq.com (将#换成@)
素材码,一个精品商业网站源码分享的个人网站 www.phprr.com
1. 本站所有资源来源于网络,均不允许转载,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 如发现会员恶意传播或用于违法用途,本站有权封禁账号,并积极配合有关部门调查
4. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
5. 本站提供的源码、模板、插件等等其他资源(除商业源码分类),都不包含技术服务请大家谅解!
6. 如有链接无法下载、失效或广告,请联系管理员处理!
7. 本站资源售价和会员费只是赞助,收取费用仅维持本站的日常运营所需!
8. 如遇到加密压缩包,默认解压密码为"www.phprr.com",如遇到无法解压的请联系管理员!
9.本站客服QQ:357058607
10.如您发现本站分享的源码,侵犯了您的权益,请联系:357058607#qq.com (将#换成@)
警告!
(1)本站禁止一切违法行为的用户,一经发现永久封号,且不予退款。(2)本站源码仅供参考和钻研,如有技术,部分源码可利用于二次开发。