Core.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace Payment\Lib;
  3. use Dever;
  4. class Core
  5. {
  6. /**
  7. * update order status
  8. */
  9. protected function updateOrder($order_id, $cash, $desc = '')
  10. {
  11. $db = Dever::db('payment/order');
  12. $info = $db->one(array('order_id' => $order_id, 'status' => 1));
  13. if ($info) {
  14. $param['where_id'] = $info['id'];
  15. $param['status'] = 2;
  16. $msg = '支付成功';
  17. if ($desc) {
  18. $lang = Dever::lang($desc);
  19. $param['status'] = 3;
  20. $param['status_desc'] = $desc;
  21. $msg = '支付失败||' . $desc;
  22. }
  23. $this->log($msg, $info);
  24. $db->update($param);
  25. if (isset($lang)) {
  26. return $this->out($lang);
  27. }
  28. } else {
  29. return $this->out('invalid_order');
  30. }
  31. }
  32. /**
  33. * update order param
  34. */
  35. protected function updateOrderParam($order_id, $param)
  36. {
  37. $db = Dever::db('payment/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($param);
  42. $db->update($param);
  43. }
  44. }
  45. /**
  46. * create order
  47. */
  48. protected function createOrder($uid, $account, $product_name, $amount, $currency, $type_id, $type_name)
  49. {
  50. $db = Dever::db('payment/order');
  51. $order_id = Dever::order($account);
  52. $info = $db->one(array('order_id' => $order_id));
  53. if ($info) {
  54. return $this->createOrder();
  55. } else {
  56. $add['status'] = 1;
  57. $add['uid'] = $uid;
  58. $add['account'] = $account;
  59. $add['product_name'] = $product_name;
  60. $add['amount'] = $amount;
  61. $add['currency'] = $currency;
  62. $add['order_id'] = $order_id;
  63. $add['type'] = $type_id;
  64. $add['id'] = $db->insert($add);
  65. $msg = '发起支付';
  66. $this->log($msg, $add);
  67. }
  68. return $order_id;
  69. }
  70. /**
  71. * 获取回调url
  72. */
  73. protected function url($type)
  74. {
  75. $project = Dever::project('payment');
  76. return $project['url'] . 'daemon/notify/'.$type.'.php';
  77. }
  78. /**
  79. * 写日志
  80. */
  81. protected function log($msg, $data = array())
  82. {
  83. if ($data) {
  84. $data = Dever::json_encode($data);
  85. $msg .= '||' . $data;
  86. }
  87. Dever::log($msg, 'pay');
  88. }
  89. /**
  90. * result
  91. *
  92. * @return mixed
  93. */
  94. protected function out($msg)
  95. {
  96. $result = array();
  97. $result['status'] = 2;
  98. $refer = Dever::session('refer');
  99. if ($msg == 'ok') {
  100. $result['status'] = 1;
  101. }
  102. $result['msg'] = Dever::lang($msg);
  103. if (!$refer) {
  104. Dever::alert($msg);
  105. }
  106. return $result;
  107. }
  108. }