NewApiSign.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use App\Http\helper\ApiSign as Sign;
  5. use Illuminate\Support\Facades\Log;
  6. use Illuminate\Support\Facades\Redis;
  7. class NewApiSign
  8. {
  9. /**
  10. * 验证签名 API接口
  11. * @param \Illuminate\Http\Request $request
  12. * @param Closure $next
  13. */
  14. public function handle($request, Closure $next)
  15. {
  16. $params = $request->all();
  17. $sign = $params['sign'] ?? '';
  18. unset($params['sign']);
  19. $apiSign = Sign::newSign($params);
  20. if (!empty($params) && $sign != $apiSign) {
  21. // 生成用户请求信息日志
  22. if (is_array($params)) {
  23. $params['sign'] =$sign;
  24. $request_extra = \GuzzleHttp\json_encode($params);
  25. } else {
  26. $request_extra = '';
  27. }
  28. Log::info('new 服务端-客户端-所有请求信息 ' . $request_extra);
  29. Log::info('new 服务端签名信息-签名失败:' . $apiSign);
  30. return apiReturnFail('Payment error_1');
  31. }
  32. $rand_str = $params['rand_str'] ?? '';
  33. // Redis::select(2);
  34. // $redis = Redis::setnx($rand_str, $rand_str);
  35. // if (!$redis) {
  36. // return apiReturnSuc('Payment error_8_timeOut');
  37. // }
  38. return $next($request);
  39. }
  40. }