企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] >如果你仅仅为了改一个 `支付状态` 字段的话,看完本节的东西你就不用看了!因为你已经完成任务了! >我们先把 Api\Controller\AlipayController.class 拷贝到本地对应目录,先把代码附上 也就是我们要对下边红框内的内容进行操作,如图: ![mark](http://qiniu.newthink.cc/blog/20170915-235331968.png) ## 同步操作 return_url ``` /** * return_url接收页面 */ public function alipay_return(){ // 引入支付宝 vendor('Alipay.AlipayNotify','','.class.php'); $config=$config=C('ALIPAY_CONFIG'); $notify=new \AlipayNotify($config); // 验证支付数据 $status=$notify->verifyReturn(); if($status){ // 下面写验证通过的逻辑 比如说更改订单状态等等 $_GET['out_trade_no'] 为订单号; echo "alipay_return success"; //$this->success('支付成功',U('User/Order/index')); //正式上线跳转到用户订单页 }else{ echo "alipay_return failed"; //$this->success('支付失败',U('User/Order/index')); //正式上线跳转到用户支付失败页 } } ``` >我们在这儿放一份逻辑 ## 异步操作 notify_url ``` /** * notify_url接收页面 */ public function alipay_notify(){ // 引入支付宝 vendor('Alipay.AlipayNotify','','.class.php'); $config=$config=C('ALIPAY_CONFIG'); $alipayNotify = new \AlipayNotify($config); // 验证支付数据 $verify_result = $alipayNotify->verifyNotify(); if($verify_result) { echo "alipay_notify success"; // 下面写验证通过的逻辑 比如说更改订单状态等等 $_POST['out_trade_no'] 为订单号; }else { echo "alipay_notify fail"; } } ``` >我们把处理支付成功后的业务逻辑在这也放一份就可以了 举例如下: ``` <?php namespace Api\Controller; use Common\Controller\HomebaseController; /** * 支付宝 */ class AlipayController extends HomebaseController{ /** * return_url接收页面 */ public function alipay_return(){ // 引入支付宝 vendor('Alipay.AlipayNotify','','.class.php'); $config=$config=C('ALIPAY_CONFIG'); $notify=new \AlipayNotify($config); // 验证支付数据 $status=$notify->verifyReturn(); //print_r($status); // TODO 这里为什么没有返回数据呢? // 注:原来 $status 没有 ! ,因为没有返回数据,所以暂时这样先做! if(!$status){ // 下面写验证通过的逻辑 比如说更改订单状态等等 $_GET['out_trade_no'] 为订单号; // 将“已支付”状态存到数据表中 $transaction_model = M("CourseOrder"); $data['state'] = "1"; // 商品交易状态-待支付(子俊让修改为1) $where['order'] = $_GET['out_trade_no']; $transaction_model->where($where)->save($data); $this->assign('total_fee',$_GET['total_fee']); $this->display('success'); }else{ $this->display('failed'); } } /** * notify_url接收页面 TODO,这个地方目前好像没有操作 */ public function alipay_notify(){ // 引入支付宝 vendor('Alipay.AlipayNotify','','.class.php'); $config=$config=C('ALIPAY_CONFIG'); $alipayNotify = new \AlipayNotify($config); // 验证支付数据 $verify_result = $alipayNotify->verifyNotify(); if($verify_result) { // 下面写验证通过的逻辑 比如说更改订单状态等等 $_POST['out_trade_no'] 为订单号; // 将“已支付”状态存到数据表中 $transaction_model = M("CourseOrder"); $data['state'] = "1"; // 商品交易状态-待支付 $where['order'] = $_GET['out_trade_no']; $transaction_model->where($where)->save($data); echo "success";exit; }else { echo "fail";exit; } } } ``` 如果还想深入了解的话,请继续往下看!