PayUtils.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace common\pay\kuaifu;
  3. class PayUtils
  4. {
  5. /**
  6. * @param array $data
  7. * @return string
  8. */
  9. public static function makeSign($data, $secretKey)
  10. {
  11. $str = '';
  12. ksort($data);
  13. foreach ($data as $key => $value) {
  14. if ($key == 'sign' || $key =="attach") {
  15. continue;
  16. }
  17. $value = strval($value);
  18. if ($value === '') {
  19. continue;
  20. }
  21. $str .= "{$key}={$value}&";
  22. }
  23. file_put_contents('kuaifu_str_befor.txt',$str);
  24. $str = rtrim($str, '&') . "&key={$secretKey}";
  25. file_put_contents('kuaifu_str_after.txt',strtoupper(md5($str)));
  26. return strtoupper(md5($str));
  27. }
  28. /**
  29. * @param array $data
  30. * @param $key
  31. * @return bool|int
  32. */
  33. public static function verify($data, $key)
  34. {
  35. // 签名
  36. if (!isset($data['sign']) || trim($data['sign']) === '') {
  37. return false;
  38. }
  39. $sign = $data['sign'];
  40. $sing_new = PayUtils::makeSign($data,$key);
  41. // 比较两次的签名是否一致
  42. if($sign == $sing_new){
  43. return true;
  44. }else{
  45. return false;
  46. }
  47. }
  48. }