orderAction.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. class orderClassAction extends apiAction
  3. {
  4. public function initAction()
  5. {
  6. $this->display= false;
  7. }
  8. /**
  9. * 支付订单回调处理完成后才处理
  10. */
  11. public function bcallAction()
  12. {
  13. $cobj = c('check');
  14. $ordernum = $this->get('ordernum');
  15. if(!$ordernum || $cobj->onlynoen($ordernum))return 'err';
  16. $flow = m('flow')->initflow('finorder');
  17. $rs = $flow->getone("`ordernum`='$ordernum'");
  18. if(!$rs)return 'notfound';
  19. $ispay = (int)$rs['ispay'];
  20. $id = $rs['id'];
  21. if($ispay == 1)return '订单已支付完成1';
  22. if($ispay == 3)return '订单已标失败1';
  23. $barr = c('rockpay')->orderQuery($ordernum);
  24. if(!$barr['success'])return $barr['msg'];
  25. $data = $barr['data'];
  26. $order_no = $data['order_no'];
  27. $statuscn = $data['statuscn'];//付款状态
  28. if($statuscn != 'success')return 'zt:'.$statuscn.''; //不是成功的
  29. $uarr['orderno'] = $order_no;
  30. $uarr['paytype'] = $data['paytype'];
  31. $uarr['paydt'] = $data['findt'];
  32. $flow->update($uarr, $id);
  33. $flow->loaddata($id, false);
  34. $flow->changeOrder(1);
  35. return 'ok';
  36. }
  37. /**
  38. * 回调处理,状态变的时候会推送到这个地址
  39. */
  40. public function bcstateAction()
  41. {
  42. $cobj = c('check');
  43. $ordernum = $this->get('ordernum');
  44. $statuscn = $this->get('statuscn');
  45. $paytype = $this->get('paytype');
  46. if(!$ordernum || !$statuscn || $cobj->onlynoen($ordernum) || $cobj->onlynoen($statuscn) || $cobj->onlynoen($paytype))return 'err';
  47. $flow = m('flow')->initflow('finorder');
  48. $rs = $flow->getone("`ordernum`='$ordernum'");
  49. if(!$rs)return 'notfound';
  50. $ispay = (int)$rs['ispay'];
  51. $id = $rs['id'];
  52. if($ispay == 1)return '订单已支付完成2';
  53. if($ispay == 3)return '订单已标失败2';
  54. $ispay = -1;
  55. if($statuscn == 'ping')$ispay = 4; //付款中
  56. if($statuscn == 'wait')$ispay = 2; //已付待确认
  57. if($statuscn == 'perr')$ispay = 3; //失败
  58. if($paytype)$flow->update(array(
  59. 'paytype' => $paytype
  60. ), $id);
  61. if($ispay > -1){
  62. $flow->loaddata($id, false);
  63. $flow->changeOrder($ispay);
  64. }
  65. return 'ok,'.$ispay.'';
  66. }
  67. }
粤ICP备19079148号