SmsPay.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\controller\admin\system\sms;
  12. use crmeb\basic\BaseController;
  13. use crmeb\services\YunxinSmsService;
  14. use think\App;
  15. /**
  16. * 短信购买 - 弃用
  17. * Class SmsPay
  18. * @package app\controller\admin\system\sms
  19. * @author xaboy
  20. * @day 2020-05-18
  21. */
  22. class SmsPay extends BaseController
  23. {
  24. /**
  25. * @var YunxinSmsService
  26. */
  27. protected $service;
  28. /**
  29. * Sms constructor.
  30. * @param App $app
  31. */
  32. public function __construct(App $app)
  33. {
  34. parent::__construct($app);
  35. $this->service = YunxinSmsService::create();
  36. }
  37. /**
  38. * 获取账号数量和发送总量的信息
  39. *
  40. * 本函数通过调用服务层来获取账号数量和发送总量的数据,如果请求成功,则返回相关的统计信息;
  41. * 如果请求失败,则返回错误信息。这个函数主要用于展示或统计用户的账号使用情况。
  42. *
  43. * @return \Illuminate\Http\JsonResponse 返回一个JSON响应,包含账号信息和发送总量。
  44. */
  45. public function number()
  46. {
  47. // 调用服务层方法获取统计信息
  48. $countInfo = $this->service->count();
  49. // 检查请求是否成功,如果状态码为400,则返回错误信息
  50. if ($countInfo['status'] == 400) return app('json')->fail($countInfo['msg']);
  51. // 组装返回的数据,包括账号信息和统计的发送总量
  52. $info['account'] = $this->service->account();
  53. $info['number'] = $countInfo['data']['number'];
  54. $info['send_total'] = $countInfo['data']['send_total'];
  55. // 返回成功的JSON响应,包含统计信息
  56. return app('json')->success($info);
  57. }
  58. /**
  59. * 获取餐品价格信息
  60. *
  61. * 本方法用于从服务层获取指定页码和每页数量的餐品价格信息。
  62. * 如果请求成功,将返回餐品的详细价格数据;如果请求失败,将返回错误信息。
  63. *
  64. * @return \Illuminate\Http\JsonResponse
  65. * 返回一个JSON响应,包含成功时的餐品价格数据,或失败时的错误信息。
  66. */
  67. public function price()
  68. {
  69. // 获取分页信息
  70. [$page, $limit] = $this->getPage();
  71. // 从服务层获取餐品信息
  72. $mealInfo = $this->service->meal($page, $limit);
  73. // 检查请求是否成功
  74. if ($mealInfo['status'] == 400) {
  75. // 如果请求失败,返回失败的JSON响应
  76. return app('json')->fail($mealInfo['msg']);
  77. }
  78. // 如果请求成功,返回成功的JSON响应,包含餐品价格数据
  79. return app('json')->success($mealInfo['data']);
  80. }
  81. /**
  82. * 处理支付请求
  83. *
  84. * 本函数负责接收支付请求,解析请求参数,调用支付服务进行支付操作,并根据支付结果返回相应的响应。
  85. * 支付请求中应包含支付方式、餐品ID及价格等信息。
  86. *
  87. * @return json 支付成功时返回支付详情,支付失败时返回错误信息。
  88. */
  89. public function pay()
  90. {
  91. // 解析请求参数,包括支付方式、餐品ID和价格,默认值分别为微信支付、0和0。
  92. list($payType, $mealId, $price) = $this->request->params([
  93. ['payType', 'weixin'],
  94. ['mealId', 0],
  95. ['price', 0],
  96. ], true);
  97. // 调用支付服务进行支付操作,传入支付方式、餐品ID、价格以及管理员ID。
  98. // 管理员ID通过请求对象的adminId方法获取。
  99. $payInfo = $this->service->pay($payType, $mealId, $price, $this->request->adminId());
  100. // 根据支付结果的状态码进行响应。
  101. // 如果状态码为400,表示支付失败,返回错误信息。
  102. // 否则,返回支付成功的详细信息。
  103. if ($payInfo['status'] == 400) return app('json')->fail($payInfo['msg']);
  104. return app('json')->success($payInfo['data']);
  105. }
  106. /**
  107. * @author xaboy
  108. * @day 2020-05-18
  109. */
  110. public function notice()
  111. {
  112. //TODO 短信支付成功回调
  113. }
  114. }