PaymentReceived.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <?php
  2. namespace app\api\controller\user;
  3. use app\admin\model\user\User;
  4. use app\Request;
  5. use crmeb\services\UtilService;
  6. use app\models\order\PaymentReceived as Received;
  7. /**
  8. * 支付码类
  9. * Class UserRechargeController
  10. * @package app\api\controller\user
  11. */
  12. class PaymentReceived
  13. {
  14. /**
  15. * 获取商户收款码
  16. * @param Request $request
  17. * @return string
  18. */
  19. public function collection_code(Request $request)
  20. {
  21. $code = Received::collection($request->uid());
  22. if (intval(input('amount', 0)) > 0) {
  23. $arr = ['code' => $code, 'amount' => input('amount')];
  24. $c_code = uniqid("c_");
  25. cache($c_code, $arr, 600);
  26. return app('json')->successful($c_code);
  27. } else {
  28. return app('json')->successful($code);
  29. }
  30. }
  31. /**
  32. * 获取付款码
  33. * @param Request $request
  34. * @return mixed
  35. */
  36. public function payment_code(Request $request)
  37. {
  38. $code = uniqid("qr_", true);
  39. cache($code, $request->uid(), 60);
  40. return app('json')->successful(['code' => $code]);
  41. }
  42. /**
  43. * 检测是否有效
  44. * @param Request $request
  45. * @return mixed
  46. */
  47. public function code_state(Request $request)
  48. {
  49. $code = input('code', '');
  50. if (cache($code)) {
  51. return app('json')->successful('effective');
  52. } else {
  53. if (Received::be(['code' => $code])) {
  54. return app('json')->successful('use');
  55. } else {
  56. return app('json')->successful('overdue');
  57. }
  58. }
  59. }
  60. /**
  61. * 创建订单
  62. * @param Request $request
  63. * @return mixed
  64. */
  65. public function payment_create(Request $request)
  66. {
  67. list($code, $type, $amount) = UtilService::postMore(
  68. [
  69. ['code', ''],
  70. ['type', 0],
  71. ['amount', 0],
  72. ], $request, true
  73. );
  74. if (is_numeric($code)) {
  75. $collect_uid = User::where('merchant_no', $code)->value('uid');
  76. $pay_type = 0;
  77. $pay_uid = $request->uid();
  78. } elseif (!is_numeric($code)) {
  79. if (strpos($code, "c_") === false) {
  80. $pay_uid = cache($code);
  81. if (intval($pay_uid) == 0) {
  82. return app('json')->fail('付款码已过期');
  83. }
  84. $collect_uid = $request->uid();
  85. $pay_type = 1;
  86. } else {
  87. //商家收款设置金额
  88. $collect = cache($code);
  89. $collect_uid = User::where('merchant_no', $collect['code'])->value('uid');
  90. $pay_type = 0;
  91. $pay_uid = $request->uid();
  92. $amount = $collect['amount'];
  93. cache($code, null);
  94. }
  95. } else {
  96. return app('json')->fail('参数错误');
  97. }
  98. if ($amount == 0) return app('json')->fail('金额不能为0');
  99. if (intval($collect_uid) == 0 || intval($pay_uid) == 0) {
  100. return app('json')->fail('二维码有误,重新获取');
  101. }
  102. if (intval($collect_uid) == intval($pay_uid)) {
  103. return app('json')->fail('自己不能付自己');
  104. }
  105. $rs = Received::Create_Payment($pay_type, $code, $pay_uid, $collect_uid, $amount, $type);
  106. if (!$rs) return app('json')->fail(Received::getErrorInfo(''));
  107. return app('json')->successful('处理成功');
  108. }
  109. /**
  110. * 我的订单
  111. * @param Request $request
  112. */
  113. public function lst(Request $request)
  114. {
  115. $where = UtilService::postMore(
  116. [
  117. ['way', 'pay'],
  118. ['pay_type', -1],
  119. ['uid', $request->uid()],
  120. ['page', 1],
  121. ['limit', 20],
  122. ['is_tip', -1],
  123. ], $request
  124. );
  125. return app('json')->successful(Received::lst($where));
  126. }
  127. /**
  128. * 获取收款信息
  129. * @param Request $request
  130. * @return mixed
  131. */
  132. public function collection_lst(Request $request)
  133. {
  134. $where = UtilService::postMore(
  135. [
  136. ['way', 'collect'],
  137. ['pay_type', -1],
  138. ['uid', $request->uid()],
  139. ['is_tip', 0],
  140. ['page', 1],
  141. ['limit', 20],
  142. ], $request
  143. );
  144. return app('json')->successful(Received::lst($where));
  145. }
  146. public function collection_set_tip(Request $request)
  147. {
  148. if (!Received::be(['collect_uid' => $request->uid(), 'id' => input('id', 0)])) {
  149. return app('json')->fail('参数错误');
  150. }
  151. Received::where('id', input('id', 0))->update(['is_tip' => 1]);
  152. return app('json')->successful('处理成功');
  153. }
  154. public function test()
  155. {
  156. $data = json_decode('{"pay_type":1,"code":"qr_601e27df155161.70945051","pay_uid":"3239","collect_uid":3239,"amount":"100"}', true);
  157. $rs = Received::Create_Payment($data['pay_type'], $data['code'], $data['pay_uid'], $data['collect_uid'], $data['amount']);
  158. dump($rs);
  159. echo Received::getErrorInfo();
  160. }
  161. }