| 123456789101112131415161718192021222324252627282930313233343536 |
- <?php
- namespace App\Http\Controllers\api\thirdPart\syrius\units;
- use Illuminate\Support\Facades\Log;
- trait Signature
- {
- public function verify(string $requestUrl, string $waitSignBody):bool
- {
- $baseUrl = "https://was.baoshi56.com";
- $requestUrl = substr($requestUrl,strlen($baseUrl));
- $header = "signature=";
- $secret = config("api.syrius.client_secret");
- $arr = explode("&",$requestUrl);
- $waitSignUrl = "";
- $signature = "";
- foreach ($arr as $item){
- if (!(substr($item,0,strlen($header)) == $header)){
- $waitSignUrl .= $item."&";
- }else $signature = substr($item,strlen($header));
- }
- $waitSignUrl = rtrim($waitSignUrl,"&");
- $plainText = "POST"."\n".$waitSignUrl."\n".$waitSignBody."\n";
- Log::warning("炬星验签",["拆取获得:".$secret.":".$plainText]);
- return $signature == $this->sign($secret.":".$plainText);
- }
- public function sign(string $str):string
- {
- return hash("sha256",$str);
- }
- }
|