url不进行转码,取#前部分。
以php代码为例:
public function testSign(){
$jsapiTicket = ‘bxLdikRXVbTPdHSM05e5u30K1jS_dRNgaY_zGHQ_McV6ydfguyoODdbq1oKnvkYI38ecawH6hYv2bthuW1b7gw’;
$url='http://www.yf2017.top/?t=a&b=c&d=e#aaa';
if(strpos($url,'#')>0)$url=substr($url,0,strpos($url,'#'));
$timestamp ='1468110623';
$nonceStr = 'RaW1BoBKSRClua6KoSai3knXizJN8Bx9';
// 这里参数的顺序要按照 key 值 ASCII 码升序排序
$string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url";
$signature = sha1($string);
$signPackage = array(
"appId" => $this->appId,
"nonceStr" => $nonceStr,
"timestamp" => $timestamp,
"url" => $url,
"signature" => $signature,
"rawString" => $string
);
echo json_encode($signPackage);
}