PaymentController.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace App\Http\Controllers\Client;
  3. use App\Http\Controllers\Controller;
  4. use App\Services\Client\PaymentService;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\Log;
  7. use Illuminate\Support\Facades\DB;
  8. use Carbon\Carbon;
  9. use App\Models\OrderRefundRecord;
  10. use App\Models\MemberUser;
  11. use App\Enums\OrderStatus;
  12. use App\Enums\OrderRecordStatus;
  13. /**
  14. *
  15. * 支付相关的API接口
  16. */
  17. class PaymentController extends Controller
  18. {
  19. protected PaymentService $service;
  20. public function __construct(PaymentService $service)
  21. {
  22. $this->service = $service;
  23. }
  24. /**
  25. * [微信]获取微信支付配置
  26. *
  27. * @group 微信支付
  28. * @authenticated
  29. *
  30. * @queryParam order_id required 订单ID Example: 1
  31. *
  32. * @response {
  33. * "code": 0,
  34. * "message": "success",
  35. * "data": {
  36. * "appId": "wx123456789",
  37. * "timeStamp": "1609459200",
  38. * "nonceStr": "abcdef123456",
  39. * "package": "prepay_id=wx123456789",
  40. * "signType": "RSA",
  41. * "paySign": "signature_string"
  42. * }
  43. * }
  44. *
  45. * @response 404 {
  46. * "code": 404,
  47. * "message": "订单不存在"
  48. * }
  49. *
  50. * @response 422 {
  51. * "code": 422,
  52. * "message": "订单状态异常"
  53. * }
  54. */
  55. public function getConfig(Request $request)
  56. {
  57. $orderId = $request->input('order_id');
  58. return $this->success($this->service->getPaymentConfig($orderId));
  59. }
  60. /**
  61. * [微信]处理微信支付回调
  62. *
  63. * @group 微信支付
  64. *
  65. * @response {
  66. * "code": "SUCCESS",
  67. * "message": "OK"
  68. * }
  69. *
  70. * @response {
  71. * "code": "FAIL",
  72. * "message": "处理失败"
  73. * }
  74. *
  75. * @hidden 此接口由微信支付系统调用,不需要在API文档中显示
  76. */
  77. public function notify(Request $request)
  78. {
  79. return $this->service->handleNotify($request);
  80. }
  81. /**
  82. * 处理微信退款回调通知
  83. */
  84. public function refundNotify(Request $request)
  85. {
  86. $this->service->handleRefundNotify();
  87. return $this->service->getRefundSuccessResponse();
  88. }
  89. }