public
function
seach_accurate(){
import (
'Class.Wechat'
, APP_PATH );
$weObj =
new
WeChat (array());
$jsapiTicket = $weObj->getJsApiTicket();
$protocol = (!empty($_SERVER[
'HTTPS'
]) && $_SERVER[
'HTTPS'
] !==
'off'
|| $_SERVER[
'SERVER_PORT'
] == 443) ?
"https://"
:
"http://"
;
$url =
"$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"
;
$timestamp = time();
$nonceStr = $weObj->generateNonceStr();
// 这里参数的顺序要按照 key 值 ASCII 码升序排序
$string =
"jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url"
;
$signature = sha1($string);
$signPackage = array(
"appId"
=> C(
'appid'
),
"nonceStr"
=> $nonceStr,
"timestamp"
=> $timestamp,
"signature"
=> $signature,
"rawString"
=> $string
);
$
this
->signPackage=$signPackage;
$
this
->display();
}
|
以下是获取签名新增的一个函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/**
* 获取 ticket
*
*/
public
function
getJsApiTicket(){
if
(!$
this
->access_token && !$
this
->checkAuth())
return
false
;
$appid=$
this
->appid;
$tickname=
'jsapi_ticket'
.$appid;
if
($rs=S($tickname)){
return
$rs;
}
$result = $
this
->http_get(self::API_URL_PREFIX.self::TICKET_GET.
'access_token='
.$
this
->access_token.
'&type=jsapi'
);
if
($result)
{
$json = json_decode($result,
true
);
if
(!$json || !empty($json[
'errcode'
])) {
$
this
->errCode = $json[
'errcode'
];
$
this
->errMsg = $json[
'errmsg'
];
return
false
;
}
$expire = $json[
'expires_in'
] ? intval($json[
'expires_in'
])-100 : 3600;
S($tickname,$json[
'ticket'
],$expire);
return
$json[
'ticket'
];
}
return
false
;
}
|