您的位置:首页 > 移动开发 > 微信开发

微信jssdk分享及验签

2015-10-10 15:01 691 查看
微信jssdk分享及验签

第一步:绑定微信安全域名(详情见微信文档)

第二步:验签(服务器验签传递数据验签数据给前台页面)

后台控制器(yii2的框架):

public function actionShow(){

$session=YII::$app->session;

$obj=new WxController('Wx','','');

$sess_token="";$session->get("access_token");

$sess_ticket=$session->get("ticket");

//echo $sess_ticket;

if($sess_token){

$access_tokens=$sess_token;

}else{

$access_token=$obj->actionToken();

$session->set('access_token',$access_token);

$access_tokens=$session->get("access_token");

}

if($sess_ticket){

$ticket=$sess_ticket;

}else{

$jsapiticket=$this->actionJstoken($access_tokens);

$session->set('ticket',$jsapiticket);

$ticket=$session->get("ticket");

}

$timestamp=time();

$nonceStr="Dsfegd234asdfffgssd";

$signature=$this->actionSign($nonceStr,$ticket,$timestamp);

$value['timestamp']=$timestamp;

$value['noncestr']=$nonceStr;

$value['signature']=$signature;

return $this->renderPartial('show',array('value' => $value));

}



服务器验签:

public function
actionSign($nonceStr,$ticket,$timestamp){

$arr['url']="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

$arr['timestamp']=$timestamp;

$arr['noncestr']=$nonceStr;

$arr['jsapi_ticket']=$ticket;

ksort($arr);

$op_str="";

foreach($arr as $k=>$val){

$op_str.="$k=$val"."&";

}

$str=substr($op_str,0,-1);

return sha1($str);

}



第三步:前台jssdk调用

wx.config({

debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

appId:"wx0ee271dc566db53c", // 必填,公众号的唯一标识

timestamp:<?php echo $value['timestamp'];?> , // 必填,生成签名的时间戳

nonceStr: "<?php echo $value['noncestr'];?>", // 必填,生成签名的随机串

signature: "<?php echo $value['signature'];?>",// 必填,签名,见附录1

jsApiList: [

'onMenuShareTimeline',

'onMenuShareAppMessage',

'startRecord',

] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 onMenuShareTimeline,onMenuShareAppMessage

});

wx.ready(function(){

//分享到好友

wx.onMenuShareAppMessage({

title: '海豹app,你值得拥有!', // 分享标题

desc: '海豹app,是一个视频直播个性社区!', // 分享描述

link: 'http://wx.codexueyuan.com/index.php?r=admin/show', // 分享链接

imgUrl: 'http://api.haibaotime.com/Public/home/img/person1.png', // 分享图标

type: '', // 分享类型,music、video或link,不填默认为link

dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空

success: function () {

alert("分享成功!");

},

cancel: function () {

alert("取消分享!");

}

});

//分享到朋友圈

wx.onMenuShareTimeline({

title: '海豹app,你值得拥有!', // 分享标题

link: 'http://wx.codexueyuan.com/index.php?r=admin/show', // 分享链接

imgUrl: 'http://api.haibaotime.com/Public/home/img/person1.png', // 分享图标

success: function () {

// 用户确认分享后执行的回调函数

},

cancel: function () {

// 用户取消分享后执行的回调函数

}

});

document.querySelector('#haibao').onclick = function () {

wx.startRecord();

}

});

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: