PayUtils.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace common\pay\payflash;
  3. class PayUtils
  4. {
  5. /**
  6. * @param array $data
  7. * @return string
  8. */
  9. public static function makeSign($data, $key)
  10. {
  11. $merchantid = $data['merchantid'];
  12. $orderno = $data['orderno'];
  13. $orderamount = $data['orderamount'];
  14. $serverbackurl = $data['serverbackurl'];
  15. $callbackurl = $data['callbackurl'];
  16. $tokenkey = $key; //密钥信息
  17. $sign = md5($merchantid.$orderno.$orderamount.$serverbackurl.$callbackurl.$tokenkey);
  18. return $sign;
  19. }
  20. /**
  21. * @param array $data
  22. * @param $key
  23. * @return bool|int
  24. */
  25. public static function verify($data, $key)
  26. {
  27. // 签名
  28. if (!isset($data['sign']) || trim($data['sign']) === '') {
  29. return false;
  30. }
  31. $orderno = (string)$data['orderno'];
  32. $orderamount = sprintf("%.2f",$data['orderamount']);
  33. $payamount = sprintf("%.2f",$data['payamount']);
  34. $confirmpaytime = (string)$data['confirmpaytime'];
  35. $safetycode = $data['safetycode'];
  36. $tokenkey = $key;
  37. $sign = $data['sign'];
  38. file_put_contents('jiami.txt',$orderno."{$orderamount}"."{$payamount}".$confirmpaytime."{$safetycode}"."{$tokenkey}");
  39. $sing_new = md5($orderno."{$orderamount}"."{$payamount}".$confirmpaytime."{$safetycode}"."{$tokenkey}"); //自己加密的密钥
  40. file_put_contents('sing_new.txt',$sing_new);
  41. // 比较两次的签名是否一致
  42. if($sign == $sing_new){
  43. return true;
  44. }else{
  45. return false;
  46. }
  47. }
  48. }