微信jssdk分享及验签
来源:互联网 发布:mysql查询语句 编辑:程序博客网 时间:2024/06/04 18:39
微信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();
}
});
- 微信jssdk分享及验签
- 微信分享jssdk实例
- 微信分享操作JSSDK
- 微信 jssdk 分享接口
- 微信jssdk分享开发经验
- 微信jssdk分享接口问题汇总
- 微信JSSDK分享功能详解
- 微信通过JSSDK分享朋友圈
- 微信JSSDK分享功能详解
- 微信分享 JSSDK的使用
- 微信分享调用jssdk实例
- JSSDK实现微信分享功能
- 微信JSSDK自定义分享Java版
- 微信JSSDK-前端-自定义分享
- 微信jssdk分享功能开发
- 微信jssdk分享功能开发及解决ajax跨域的问题
- 微信jssdk分享功能开发及解决ajax跨域的问题
- 微信分享自定义内容开发-微信JSSDK
- V4L2编程
- Spring+SpringMVC+mybatis+easyui整合实例(一)实例介绍
- 下拉菜单
- Myeclipse不能编译解决方案
- Apache和Httpd是什么关系
- 微信jssdk分享及验签
- Pixhawk---10月6号后固件编译由make编译系统转到cmake编译系统后
- Custom view … overrides onTouchEvent but not performClick
- 清除掉Provisioning Profile中的多余的证书
- QSLServer2014安装图解
- 键值监听KVO
- Craftyjs系列7-Game Loop
- c 文件读写
- 使用命名管道