OpenPlatformController.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Http\Controllers\API;
  3. use App\Http\Controllers\Controller;
  4. use GuzzleHttp\Client;
  5. use GuzzleHttp\Exception\GuzzleException;
  6. use Illuminate\Http\Request;
  7. class OpenPlatformController extends Controller
  8. {
  9. public function proxy(Request $request)
  10. {
  11. $client = new Client();
  12. $path = $request->get('path');
  13. $targetUrl = env('OPEN_PLATFORM_URL') . $path;
  14. $method = $request->getMethod();
  15. $headers = $request->headers->all();
  16. $body = $request->getContent();
  17. try {
  18. $response = $client->request($method, $targetUrl, [
  19. 'headers' => $headers,
  20. 'body' => $body,
  21. 'auth' => [
  22. env('OPEN_PLATFORM_USERNAME'),
  23. env('OPEN_PLATFORM_PASSWORD')
  24. ]
  25. ]);
  26. $content = json_decode($response->getBody()->getContents(), true);
  27. if ($response->getStatusCode() != 200) {
  28. return $this->badRequest($content['message']);
  29. }
  30. return $this->success(['data' => $content['data']]);
  31. } catch (GuzzleException $e) {
  32. return $this->badRequest($e->getMessage());
  33. }
  34. }
  35. }