微信jssdk,jsapi_ticket签名生成方法

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&timestamp=$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);

}

0%