//需要在这之前引入微信JS接口的引用文件
//http://res.wx.qq.com/open/js/jweixin-1.0.0.js
wx.config({
appId:
‘‘
,
// 必填,公众号的唯一标识
timestamp: ,
// 必填,生成签名的时间戳
nonceStr:
‘‘
,
// 必填,生成签名的随机串
signature:
‘‘
,
// 必填,签名,见附录1
jsApiList: [
// 必填,需要使用的JS接口列表,所有JS接口列表见附录2
‘openLocation‘
,
//这里不知道你用的地理接口是哪个就两个都写上了
‘getLocation‘
]
});
//签名的生成方法在附录1
//你需要access_token,这个用来获取jsapi_ticket。
//获取access_token需要用到appId和appsecrect。
//获取到后就是签名(sign).
//签名需要的参数有:jsapi_ticket,noncestr,timestamp及url(当前的url)
//采用字段名的ASCII码升序,使用URL键值对的格式(key=value&key=value)拼接
//如:jsapi_ticket=xxx&noncestr=xxx×tamp=xxx&url=xxx
//最后对拼接出来的字符串用sha1签名,得到sign。放入config的参数里。
首先获取accesstoken,
$result = $this->http_get(‘https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=‘.$appid.‘&secret=‘.$appsecret);
$json = json_decode($result,true);
$this->access_token = $json[‘access_token‘];
private
function
http_get(
$url
){
$oCurl
= curl_init();
if
(
stripos
(
$url
,
"https://"
)!==FALSE){
curl_setopt(
$oCurl
, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt(
$oCurl
, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt(
$oCurl
, CURLOPT_SSLVERSION, 1);
//CURL_SSLVERSION_TLSv1
}
curl_setopt(
$oCurl
, CURLOPT_URL,
$url
);
curl_setopt(
$oCurl
, CURLOPT_RETURNTRANSFER, 1 );
$sContent
= curl_exec(
$oCurl
);
$aStatus
= curl_getinfo(
$oCurl
);
curl_close(
$oCurl
);
if
(
intval
(
$aStatus
[
"http_code"
])==200){
return
$sContent
;
}
else
{
return
false;
}
}
$url
=
"https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken"
;
$res
= json_decode (
$this
->http_get (
$url
) );
$ticket
=
$res
->ticket;
private
function
getSignPackage(
$jsapiTicket
,
$url
,
$timestamp
,
$nonceStr
) {
// 这里参数的顺序要按照 key 值 ASCII 码升序排序
$string
=
"jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url"
;
$signature
= sha1 (
$string
);
$signPackage
[
"appId"
] = C(
"APPID"
);
$signPackage
[
"nonceStr"
] =
$nonceStr
;
$signPackage
[
"timestamp"
] =
$timestamp
;
$signPackage
[
"url"
] =
$url
;
$signPackage
[
"signature"
] =
$signature
;
$signPackage
[
"rawString"
] =
$string
;
return
$signPackage
;
}