Exemple #1
0
function getOutput($url, $params, $signingKey)
{
    $urlElems = parse_url($url);
    ksort($params);
    //creating signature params
    $signatureBaseString = buildSignatureBaseString('GET', $url, $params);
    $signature = buildSignature($signingKey, $signatureBaseString);
    var_dump($url, $params, $signingKey, $signatureBaseString, $signature);
    //and adding it to params
    $params['oauth_signature'] = $signature;
    $fullUrl = $url . '?' . getOauthQueryString($params);
    $headers = 'Authorization: OAuth realm=""';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $fullUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_VERBOSE, true);
    curl_setopt($ch, CURLOPT_STDERR, fopen('php://output', 'w'));
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded', 'OAuth realm=""'));
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}
 /**
  * 异步通知消息验证
  * @param para 异步通知消息
  * @return 验证结果
  */
 static function verifySignature($para)
 {
     $respSignature = $para[upmp_config::SIGNATURE];
     // 除去数组中的空值和签名参数
     $filteredReq = paraFilter($para);
     $signature = buildSignature($filteredReq);
     if ("" != $respSignature && $respSignature == $signature) {
         return true;
     } else {
         return false;
     }
 }
 /**
  * 异步通知消息验证
  * @param para 异步通知消息
  * @return 验证结果
  */
 static function verifySignature($para)
 {
     $respSignature = $para[upmp_config::SIGNATURE];
     // 除去数组中的空值和签名参数
     $filteredReq = paraFilter($para);
     $signature = buildSignature($filteredReq);
     $file = "./" . date('Y-m-d') . "-log" . ".txt";
     $filehandle = fopen($file, "a");
     fwrite($filehandle, "\r\n======响应内容计算出来的值:.\r\n" . $signature . "\r\n\r\n响应回来的值:" . $respSignature . "\r\n\r\n<!--------------结束------------>\r\n\r\n\r\n");
     fclose($filehandle);
     if ("" != $respSignature && $respSignature == $signature) {
         return true;
     } else {
         return false;
     }
 }