<script type="text/javascript">
console.log('huati')
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: 'XXXXXXXXXXXXXX', // 必填,公众号的唯一标识
timestamp: "{$wxdata['timestamp']}", // 必填,生成签名的时间戳
nonceStr: "{$wxdata['noncestr']}", // 必填,生成签名的随机串
signature: "{$wxdata['signature']}",// 必填,签名,见附录1
jsApiList: [
'checkJsApi',
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareWeibo',
'onMenuShareQZone',
'hideMenuItems',
'showMenuItems',
'hideAllNonBaseMenuItem',
'showAllNonBaseMenuItem',
'translateVoice',
'startRecord',
'stopRecord',
'onVoiceRecordEnd',
'playVoice',
'onVoicePlayEnd',
'pauseVoice',
'stopVoice',
'uploadVoice',
'downloadVoice',
'chooseImage',
'previewImage',
'uploadImage',
'downloadImage',
'getNetworkType',
'openLocation',
'getLocation',
'hideOptionMenu',
'showOptionMenu',
'closeWindow',
'scanQRCode',
'chooseWXPay',
'openProductSpecificView',
'addCard',
'chooseCard',
'openCard'
] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
wx.ready(function(){
// console.log(wx)
wx.onMenuShareTimeline({
title: 'test1', // 分享标题
link: "{$wxdata['link']}", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: '/chinaxfta/img/logo.png', // 分享图标
success: function () {
//console.log('分享成功1');
// 用户确认分享后执行的回调函数
},
cancel: function () {
//console.log('分享失败1');
// 用户取消分享后执行的回调函数
}
});
wx.onMenuShareAppMessage({
title: 'test1', // 分享标题
desc: 'test1的描述', // 分享描述
link: "{$wxdata['link']}", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: '/chinaxfta/img/logo.png', // 分享图标
type: 'link', // 分享类型,music、video或link,不填默认为link
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
success: function () {
//console.log('分享成功');
// 用户确认分享后执行的回调函数
},
cancel: function () {
//console.log('分享失败');
// 用户取消分享后执行的回调函数
}
});
})
</script>
<script src="/jquery/1.10.2/jquery.min.js"></script>
<!-- 9.27分享 -->
<script src="https://res./open/js/jweixin-1.0.0.js"></script>
//获取微信签名所需的access_token
public function getAccessToken() {
//查询数据表里面的值
$info = M('wxtoken')->find();
if($info['expires_in'] < time()){
//获取token的值
$url_token = 'https://api./cgi-bin/token?grant_type=client_credential&appid=XXXXX&secret=XXXXXXX';
$tmp = $this->CURLSend($url_token); //json格式
//var_dump($tmp);die;
$obj = json_decode($tmp);
if($obj->access_token != null){
$data['access_token'] = $obj->access_token;
$data['expires_in'] = time() + $obj->expires_in;
if($info['id']){
$res = M('wxtoken')->where('id='.$info['id'])->save($data);
}else{
$res = M('wxtoken')->add($data);
}
if($res){
$data_new = $obj->access_token;
}else{
$data_new = 'error';
}
return $data_new;
}else return 'error';
}else{
return $info['access_token'];
}
}
//获取微信签名所需的 ticket
public function getTicket(){
$token = $this->getAccessToken();
$url = "https://api./cgi-bin/ticket/getticket?access_token=$token&type=jsapi";
$tmp = $this->CURLSend($url); //json格式
$obj = json_decode($tmp);
return $obj->ticket;
}
//整理数据并获取微信签名
public function generateSign(){
$noncestr = uniqid();
$timestamp = time();
$url = 'http://' . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
$ticket = $this->getTicket();
if ($ticket) {
$str = 'jsapi_ticket='.$ticket.'&noncestr='.$noncestr.'×tamp='.$timestamp.'&url='.$url;
$signature = sha1($str);
$data['noncestr'] = $noncestr;
$data['timestamp'] = $timestamp;
$data['signature'] = $signature;
$data['appId'] = 'XXXXXX';
$data['link'] = $url;
return $data;
}
}
function CURLSend($url){
$timeout = 15;
$con = curl_init((string)$url);
curl_setopt($con, CURLOPT_HEADER, false);
curl_setopt($con, CURLOPT_RETURNTRANSFER, true);
curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout);
return curl_exec($con);
}
$wxdata = $this->generateSign();
$this->assign('wxdata',$wxdata);