Пример #1
0
 /**
  * 通过app secret和友好速搭回传的参数,验证当前请求是否来自于友好速搭
  * @param array $params 获取到的所有参数
  * @return bool true表示验证正确,false表示错误
  * @throws InvalidArgumentException
  */
 public function hmac_verify(array $params = [])
 {
     $this->validate('app_secret');
     $secret = $this->app_secret;
     if (!is_array($params) || !isset($params['hmac'])) {
         throw new InvalidArgumentException('参数不正确');
     }
     //获取hmac并从数组中销毁
     $hmac = $params['hmac'];
     unset($params['hmac']);
     //重新生成hmac
     $digest = YhsdApiHelper::generate_hmac($params, $secret);
     //返回比较结果
     return $hmac == $digest;
 }
Пример #2
0
 /**
  * 生成验证字符串
  * @param $key
  * @param $secret
  * @return string
  */
 public function authorization($key, $secret)
 {
     $str = $key . ":" . $secret;
     $encoded = YhsdApiHelper::urlsafe_b64encode($str);
     $basic = "Basic " . $encoded;
     return $basic;
 }
Пример #3
0
 /**
  * @dataProvider getData
  */
 public function test_urlsafe_b64decode($params, $ans)
 {
     $this->assertEquals($ans, YhsdApiHelper::urlsafe_b64decode($params));
 }