//須要在這以前引入微信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,php
$result = $this->http_get('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$appsecret);json
$json = json_decode($result,true);api
$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
;
}