Pay.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <?php
  2. namespace app\api\controller;
  3. use app\admin\model\method\Time;
  4. use app\admin\model\Third;
  5. use app\admin\model\Tzmoneyrecharge;
  6. use app\admin\model\UserScoreLog;
  7. use app\api\model\order\Order;
  8. use app\common\controller\Api;
  9. use EasyWeChat\Factory;
  10. class Pay extends Api
  11. {
  12. protected $noNeedLogin = ['*'];
  13. protected $noNeedRight = ['*'];
  14. public function score($user_id,$user_score,$title){
  15. $insert_score_log = [
  16. 'user_id' => $user_id,
  17. 'score' => config('site.one_prize_score'),
  18. 'before' => $user_score,
  19. 'after' => $user_score - config('site.one_prize_score'),
  20. 'memo' => '积分抽奖',
  21. ];
  22. $user_score = new UserScoreLog();
  23. $user_score->insert($insert_score_log);
  24. }
  25. //钓鱼订单支付
  26. public function method_pay(){
  27. $order_model = new \app\admin\model\Order();
  28. $order_item_model = new \app\admin\model\Orderitem();
  29. $tird = new Third();
  30. $time_model = new Time();
  31. $user=$this->auth->getUser();
  32. $order = input('order_id');
  33. $method = input('method');
  34. $order_info= $order_model->where('id',$order)->field('order_money,order_no,pay_type,user_id,item_money,wucan_money,id')->find();
  35. if($order_info['order_money']<=0){
  36. $this->error('支付金额不能为0');
  37. }
  38. if($order_info['pay_type']=='钱包支付'){
  39. if($user->money<$order_info['order_money']){
  40. $this->error('用户余额不足');
  41. }
  42. $zong = $order_info['item_money']+$order_info['wucan_money'];
  43. $this->score($order_info['user_id'],$zong,'下单返利积分');
  44. $user->money -=$order_info['order_money'];
  45. $user->score +=$zong;
  46. $user->save();
  47. $time_number = $order_item_model->where('order_id',$order_info['id'])->where('type',1)->field('number,time_id')->find();
  48. $number_sta = $time_model->where('id',$time_number['time_id'])->value('sale_num');
  49. $time_model->isUpdate('true',['id'=>$time_number['time_id']])->save(['sale_num'=>$number_sta-$time_number['number']]);
  50. $order_model->isUpdate('true',['id'=>$order])->save(['status'=>2,'pay_time'=>time()]);
  51. $this->success('支付成功');
  52. }
  53. $opernid=$tird->where('user_id',$order_info['user_id'])->where('platform','xcc')->value('openid');
  54. $type='wechat';
  55. if($order_info['pay_type']=='支付宝支付'){
  56. $type='alipay';
  57. }
  58. $params = [
  59. 'amount'=>$order_info['order_money'],
  60. 'orderid'=>$order_info['order_no'],
  61. 'type'=>$type,
  62. 'title'=>"钓鱼订单支付",
  63. 'notifyurl'=> common_url().'/index.php/api/Notify/method_notify/type/' . $type,
  64. 'returnurl'=>"",
  65. 'method'=>$method,
  66. 'openid'=>$opernid,
  67. ];
  68. $pay = \addons\epay\library\Service::submitOrder($params);
  69. $this->success('快去拉起支付',$pay);
  70. }
  71. //购买短信订单支付
  72. public function sms_pay(){
  73. $order_model = new \app\admin\model\Smsorder();
  74. $tird = new Third();
  75. $order = input('order_id');
  76. $method = input('method');
  77. $order_info= $order_model->where('id',$order)->field('pay_money,order_no,pay_type,user_id')->find();
  78. $opernid=$tird->where('user_id',$order_info['user_id'])->where('platform','xcc')->value('openid');
  79. $type='wechat';
  80. if($order_info['pay_type']=='支付宝支付'){
  81. $type='alipay';
  82. }
  83. $params = [
  84. 'amount'=>$order_info['pay_money'],
  85. 'orderid'=>$order_info['order_no'],
  86. 'type'=>$type,
  87. 'title'=>"购买短信支付",
  88. 'notifyurl'=>common_url().'/index.php/api/Notify/sms_notify/type/' . $type,
  89. 'returnurl'=>"",
  90. 'method'=>$method,
  91. 'openid'=>$opernid,
  92. ];
  93. $pay = \addons\epay\library\Service::submitOrder($params);
  94. $this->success('快去拉起支付',$pay);
  95. }
  96. //购买短信订单支付
  97. public function release_pay(){
  98. $order_model = new \app\admin\model\Yutang();
  99. $tird = new Third();
  100. $order = input('order_no');
  101. $order_type =input('pay_type');
  102. $method = input('method');
  103. $order_info= $order_model->where('order_no',$order)->field('price,order_no,user_id')->find();
  104. $opernid=$tird->where('user_id',$order_info['user_id'])->where('platform','xcc')->value('openid');
  105. // print_r($opernid);die;
  106. $type='wechat';
  107. if($order_type=='支付宝支付'){
  108. $type='alipay';
  109. }
  110. $params = [
  111. 'amount'=>$order_info['price'],
  112. 'orderid'=>$order_info['order_no'],
  113. 'type'=>$type,
  114. 'title'=>"鱼塘发布支付",
  115. 'notifyurl'=>common_url().'/index.php/api/Notify/release_notify/type/' . $type,
  116. 'returnurl'=>"",
  117. 'method'=>$method,
  118. 'openid'=>$opernid,
  119. ];
  120. $pay = \addons\epay\library\Service::submitOrder($params);
  121. $this->success('快去拉起支付',$pay);
  122. }
  123. //余额充值
  124. public function balance_pay(){
  125. $order_model = new Tzmoneyrecharge();
  126. $tird = new Third();
  127. $order = input('order_id');
  128. $method = input('method');
  129. $order_info= $order_model->where('id',$order)->field('money,order_no,pay_type,user_id')->find();
  130. $opernid=$tird->where('user_id',$order_info['user_id'])->where('platform','xcc')->value('openid');
  131. // print_r($opernid);die;
  132. $type='wechat';
  133. if($order_info['pay_type']=='支付宝支付'){
  134. $type='alipay';
  135. }
  136. $params = [
  137. 'amount'=>$order_info['money'],
  138. 'orderid'=>$order_info['order_no'],
  139. 'type'=>$type,
  140. 'title'=>"塘主端充值",
  141. 'notifyurl'=>common_url().'/index.php/api/Notify/balance_notify/type/' . $type,
  142. 'returnurl'=>"",
  143. 'method'=>$method,
  144. 'openid'=>$opernid,
  145. ];
  146. $pay = \addons\epay\library\Service::submitOrder($params);
  147. $this->success('快去拉起支付',$pay);
  148. }
  149. }