PayUtils.php 996 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace common\pay\qianwanbao;
  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. $tmp = array();
  15. foreach ($data as $k => $param) {
  16. if($k == 'signature'){
  17. continue;
  18. }
  19. $tmp[] = $k . '=' . ($urlEncode ? urlencode($param) : $param);
  20. }
  21. $signStr = implode('&', $tmp);
  22. $params_str = $signStr. '&key=' . $secretKey;
  23. return strtoupper(md5($params_str));
  24. }
  25. /**
  26. * @param array $data 参数
  27. * @param string $secretKey
  28. * @return bool
  29. */
  30. public static function checkSign($data, $secretKey)
  31. {
  32. $sign = isset($data['signature']) ? $data['signature'] : null;
  33. if ($sign == null) {
  34. return false;
  35. }
  36. return self::makeSign($data, $secretKey) === $sign;
  37. }
  38. }