Core.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php namespace Pay\Lib;
  2. use Dever;
  3. class Core
  4. {
  5. /**
  6. * 更新订单状态
  7. */
  8. public function updateOrder($order_id, $cash, $desc = '')
  9. {
  10. $db = Dever::db('pay/order');
  11. $info = $db->one(array('order_id' => $order_id, 'status' => 1));
  12. if ($info) {
  13. $param['where_id'] = $info['id'];
  14. $param['status'] = 2;
  15. $msg = '支付成功';
  16. if ($desc) {
  17. $param['status'] = 3;
  18. $param['status_desc'] = $desc;
  19. $msg = '支付失败||' . $desc;
  20. }
  21. $this->log($msg, $info);
  22. $db->update($param);
  23. $state = Dever::config('base', 'project')->pay_notify;
  24. if ($state) {
  25. $this->log($state, $param);
  26. Dever::load($state, $info['product_id'], $info['uid'], $info['cash'], $order_id, $param['status'], $msg);
  27. }
  28. } else {
  29. $this->log('支付失败', '错误的订单id:' . $order_id);
  30. }
  31. }
  32. /**
  33. * 更新订单的支付信息
  34. */
  35. protected function updateOrderParam($order_id, $data)
  36. {
  37. $db = Dever::db('pay/order');
  38. $info = $db->one(array('order_id' => $order_id, 'status' => 1));
  39. if ($info) {
  40. $param['where_id'] = $info['id'];
  41. $param['param'] = Dever::array_encode($data);
  42. $db->update($param);
  43. }
  44. }
  45. /**
  46. * 创建订单
  47. */
  48. protected function createOrder($uid, $username, $account_id, $product_id, $name, $cash, $type, $order_id = false)
  49. {
  50. $db = Dever::db('pay/order');
  51. if (!$order_id) {
  52. $order_id = Dever::order();
  53. }
  54. $info = $db->one(array('order_id' => $order_id));
  55. if ($info) {
  56. return $this->createOrder();
  57. } else {
  58. $add['status'] = 1;
  59. $add['uid'] = $uid;
  60. $add['username'] = $username;
  61. $add['account_id'] = $account_id;
  62. $add['name'] = $name;
  63. $add['cash'] = $cash;
  64. $add['type'] = $type;
  65. $add['order_id'] = $order_id;
  66. $add['product_id'] = $product_id;
  67. $add['id'] = $db->insert($add);
  68. $msg = '发起支付';
  69. $this->log($msg, $add);
  70. }
  71. return $order_id;
  72. }
  73. /**
  74. * 获取回调url
  75. */
  76. protected function url($type, $account_id)
  77. {
  78. //$project = Dever::project('pay');
  79. //return $project['url'] . 'daemon/notify/'.$type.'.php';
  80. return str_replace('?', '', Dever::url('api.notify?account_id=' . $account_id, 'pay'));
  81. }
  82. /**
  83. * 写日志
  84. */
  85. public function log($msg, $data = array())
  86. {
  87. if ($data) {
  88. $data = Dever::json_encode($data);
  89. $msg .= '||' . $data;
  90. /*
  91. $insert = $data;
  92. $insert['cdate'] = time();
  93. Dever::db('pay/order_log')->insert($insert);
  94. */
  95. }
  96. Dever::log($msg, 'pay');
  97. }
  98. }