common.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. use app\common\library\EthSign;
  3. use fast\Random;
  4. /**
  5. * 生成随机hash值
  6. * @param int $uid
  7. * @return string
  8. */
  9. function randTxHash(int $uid): string
  10. {
  11. return Random::uuid();
  12. }
  13. /**
  14. * 签名校验
  15. * @param string $msg
  16. * @param $sign
  17. * @param $address
  18. * @return bool
  19. */
  20. function checkSign(string $msg, $sign, $address): bool
  21. {
  22. // return true; // 调试
  23. if (empty($msg) || empty($sign) || empty($address)) {
  24. return false;
  25. }
  26. $ethSign = new EthSign();
  27. try {
  28. return $ethSign->verifySign($msg, $sign, $address);
  29. } catch (\Exception $e) {
  30. return false;
  31. }
  32. }
  33. /**
  34. * 获取配置
  35. * @param string $msg
  36. * @return string
  37. */
  38. function getConfig(string $name): string
  39. {
  40. return (new \app\common\model\Config())->where('name', $name)->value('value');
  41. }
  42. /**
  43. * 获取配置
  44. * @param string $prefix
  45. * @return string
  46. */
  47. function getOrderSN(string $prefix = 'ORD'): string
  48. {
  49. return $prefix.date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 10);
  50. }