Api.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. <?php
  2. namespace Active\Src;
  3. use Dever;
  4. use Agent\Lib\Core;
  5. Class Api extends Core {
  6. #活动详情
  7. public function index(){
  8. $id = Dever::input('id');
  9. $data = Dever::db('active/info')->find($id);
  10. $data['banner'] = explode(',', $data['banner']);
  11. $member = Dever::db('agent/member')->find($this->uid);
  12. $data['member_name'] = $member['name'];
  13. $data['member_mobile'] = $member['mobile'];
  14. return $data;
  15. }
  16. #确认信息
  17. public function confirm(){
  18. $id = Dever::input('id');
  19. if(!$id){
  20. Dever::alert('活动id不能为空');
  21. }
  22. $num = Dever::input('num');
  23. if(!$num){
  24. Dever::alert('购买数量不能为空');
  25. }
  26. $remark = Dever::input('remark');
  27. $data = Dever::db('active/info')->find($id);
  28. $insert['active_id'] = $id;
  29. $insert['mid'] = $this->uid;
  30. $insert['num'] = $num;
  31. $insert['price'] = $num * $data['price'];
  32. if($remark){
  33. $insert['remark'] = $remark;
  34. }
  35. $data = Dever::db('active/order')->getNum(array('mid'=>$this->uid,'active_id'=>$id));
  36. // if($data && $data['total'] && $data['tatal'] > $data['num']){
  37. // Dever::alert('您已超过限购数量');
  38. // }
  39. $insert['order_num'] = $this->getOrderId();
  40. $ids = Dever::db('active/order')->insert($insert);
  41. $url = Dever::url();
  42. $refer = 'https://www.churenyiliao.com/';
  43. if (strstr($url, 'uat.')) {
  44. $refer = 'http://guanli.uat.churenyiliao.com/';
  45. }
  46. $refer .= 'data/payback/active.html';
  47. if($ids){
  48. $info = Dever::db('active/order')->find($ids);
  49. $active = Dever::db('active/info')->find($info['active_id']);
  50. $param = array
  51. (
  52. 'project_id' => 6,
  53. 'channel_id' => 1,
  54. 'system_source' => 1,
  55. 'account_id' => 8,
  56. 'uid' => $this->uid,
  57. 'name' => $active['name'],
  58. //'openid' => $data['openid'],
  59. 'cash' => $info['price'],
  60. 'product_id' => $ids,
  61. 'order_id' => $info['order_num'],
  62. 'h5' => 1,
  63. 'refer' => $refer,
  64. );
  65. $result = Dever::load('pay/api.pay', $param);
  66. if($result['order']){
  67. Dever::db('active/order')->update(array('where_id'=>$ids,'url'=>$result['order']));
  68. }
  69. $result['order_num'] = $info['order_num'];
  70. $result['order_id'] = $info['id'];
  71. $jump = Dever::input('jump');
  72. if ($jump == 1) {
  73. Dever::location($result['order']);
  74. }
  75. return $result;
  76. }else{
  77. Dever::alert('提交失败');
  78. }
  79. }
  80. # 支付成功回调 安全加密 设置token
  81. public function success_secure_api_token()
  82. {
  83. $project_id = Dever::input('pay_project_id');
  84. $info = Dever::db('pay/project')->one($project_id);
  85. if ($info) {
  86. return $info['key'];
  87. }
  88. return 'agent_buy_dever_2020';
  89. }
  90. # 支付成功回调 安全加密
  91. public function success_secure_api($param = array())
  92. {
  93. $this->success($param);
  94. }
  95. # 支付成功回调
  96. public function success($param = array())
  97. {
  98. $send = $param ? $param : Dever::preInput('pay_');
  99. $product_id = $send['pay_product_id'];
  100. $order_id = $send['pay_order_id'];
  101. $status = $send['pay_status'];
  102. $cash = $send['pay_cash'];
  103. $msg = $send['pay_msg'];
  104. $order = Dever::db('active/order')->one(array('id' => $product_id, 'clear' => true));
  105. if ($order && $status == 2) {
  106. $update['status'] = 2;
  107. $update['where_id'] = $order['id'];
  108. Dever::db('active/order')->update($update);
  109. }
  110. return 'ok';
  111. }
  112. #再次发起支付
  113. public function rpay(){
  114. $id = Dever::input('id');#订单的id
  115. $order = Dever::db('active/order')->find($id);
  116. if (!$order) {
  117. Dever::alert('订单信息错误');
  118. }
  119. if ($order['status'] > 1) {
  120. Dever::alert('订单已支付或已取消');
  121. }
  122. $time = time();
  123. if ($time-$order['cdate']>300){
  124. Dever::alert('订单已关闭');
  125. }
  126. $jump = Dever::input('jump');
  127. if ($jump == 1) {
  128. Dever::location($order['url']);
  129. }
  130. return $order;
  131. }
  132. #门票列表
  133. public function getList(){
  134. $data['list'] = Dever::db('active/order')->getAll(array('mid'=>$this->uid,'status'=>3));
  135. foreach($data['list'] as $k => $v){
  136. $active = Dever::db('active/info')->find($v['active_id']);
  137. $data['list'][$k]['active_name'] = $active['name'];
  138. $data['list'][$k]['cdate'] = date('Y-m-d H:i',$v['cdate']);
  139. $config = Dever::db('active/order')->config['config_status'];
  140. $data['list'][$k]['status_name'] = Dever::status($config,$v['status']);
  141. }
  142. return $data;
  143. }
  144. #详情页
  145. public function getDesc(){
  146. $id = Dever::input('id');
  147. if (!$id) {
  148. Dever::alert('订单id不能不空');
  149. }
  150. $user = $this->user;
  151. $data['user']['name'] = $user['name'];
  152. $data['user']['mobile'] = $user['mobile'];
  153. $data['info'] = Dever::db('active/order')->find($id);
  154. if ($data['info']) {
  155. $active = Dever::db('active/info')->find($data['info']['active_id']);
  156. $data['info']['active_name'] = $active['name'];
  157. $data['info']['cash'] = $active['price'];#单价
  158. $data['info']['cdate'] = date('Y-m-d H:i',$data['info']['cdate']);
  159. $config = Dever::db('active/order')->config['config_status'];
  160. $data['info']['status_name'] = Dever::status($config,$data['info']['status']);
  161. $data['info']['refund_cash'] = '';#全额退款金额
  162. if($data['info']['status'] == 6){
  163. $data['info']['refund_cash'] = $data['info']['price'];
  164. }
  165. $data['info']['mobile'] = $active['mobile'];
  166. } else {
  167. Dever::alert('订单不存在');
  168. }
  169. return $data;
  170. }
  171. #生成订单号
  172. public function getOrderId()
  173. {
  174. $where['order_num'] = Dever::order('D');
  175. $where['clear'] = true;
  176. $state = Dever::db('active/order')->one($where);
  177. if (!$state) {
  178. return $where['order_num'];
  179. } else {
  180. return $this->getOrderId();
  181. }
  182. }
  183. }