PayUtils.php 977 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace common\pay\aotu;
  3. class PayUtils
  4. {
  5. /**
  6. * @param array $data
  7. * @param string $secretKey
  8. * @return string
  9. */
  10. public static function makeSign($data, $secretKey)
  11. {
  12. $str = '';
  13. ksort($data);
  14. foreach ($data as $key => $value) {
  15. if ($key == 'Sign') {
  16. continue;
  17. }
  18. $value = strval($value);
  19. if ($value === '') {
  20. continue;
  21. }
  22. $str .= "{$key}={$value}&";
  23. }
  24. $str = rtrim($str, '&') . "&Key={$secretKey}";
  25. return strtoupper(md5($str));
  26. }
  27. /**
  28. * @param array $data
  29. * @param string $secretKey
  30. * @return bool
  31. */
  32. public static function checkSign($data, $secretKey)
  33. {
  34. $sign = isset($data['Sign']) ? $data['Sign'] : null;
  35. if ($sign == null) {
  36. return false;
  37. }
  38. return self::makeSign($data, $secretKey) === $sign;
  39. }
  40. }