Signature.php 668 B

12345678910111213141516171819202122232425
  1. <?php
  2. namespace App\Http\Controllers\api\thirdPart\syrius\units;
  3. trait Signature
  4. {
  5. public function verify(string $requestUrl, string $waitSignBody):bool
  6. {
  7. $secret = config("api.syrius.client_secret");
  8. $baseUrl = config("app.url");
  9. $arr = explode("&signature=",$requestUrl);
  10. if (count($arr)!=2)return false;
  11. $signature = $arr[1];
  12. $waitSignUrl = ltrim($arr[0],$baseUrl);
  13. $plainText = "POST"."\n".$waitSignUrl."\n".$waitSignBody."\n";
  14. return $signature == $this->sign($secret.":".$plainText);
  15. }
  16. public function sign(string $str):string
  17. {
  18. return hash("sha256",$str);
  19. }
  20. }