微信开发 ajax获取 signpackage 且共享
来源:互联网 发布:王国祥白先勇 知乎 编辑:程序博客网 时间:2024/05/08 07:05
先ajax 调用 到 生成signpackage的 jssdk.php(需要修改动态获取 url函数 )函数 ,参数是当前url ; 然后使用共享 微信共享 配置 js
function get_broswer_info(){var ua = navigator.userAgent.toLowerCase();if(ua.match(/weibo/i) == "weibo"){return 1;}else if(ua.indexOf('qq/')!= -1){return 2;}else if(ua.match(/MicroMessenger/i)=="micromessenger"){var v_weixin = ua.split('micromessenger')[1];v_weixin = v_weixin.substring(1,6);v_weixin = v_weixin.split(' ')[0];if(v_weixin.split('.').length == 2){v_weixin = v_weixin + '.0';}if(v_weixin < '6.0.2'){return 3;}else{return 4;}}else{return 0;}}function reset_weixin_share(){wx.ready(function () {wx.onMenuShareTimeline({ // 分享到朋友圈title: window.ShareData.TimelineTitle, // 分享标题link: window.ShareData.link, // 分享链接imgUrl: window.ShareData.img, // 分享图标success: function () { // 用户确认分享后执行的回调函数window.ShareData.TimelineSuccess();},cancel: function () { // 用户取消分享后执行的回调函数}});wx.onMenuShareAppMessage({ // 分享给朋友title: window.ShareData.FriendTitle, // 分享标题desc: window.ShareData.FriendDesc, // 分享描述link: window.ShareData.link, // 分享链接imgUrl: window.ShareData.img, // 分享图标type: '', // 分享类型,music、video或link,不填默认为linkdataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空success: function () { // 用户确认分享后执行的回调函数window.ShareData.NormalSuccess();},cancel: function () { // 用户取消分享后执行的回调函数}});/*wx.onMenuShareQQ({ // 分享到QQtitle: window.ShareData.QQTitle, // 分享标题desc: window.ShareData.QQDesc, // 分享描述link: window.ShareData.link, // 分享链接imgUrl: window.ShareData.img, // 分享图标success: function () { // 用户确认分享后执行的回调函数 window.ShareData.NormalSuccess();},cancel: function () { // 用户取消分享后执行的回调函数}});wx.onMenuShareWeibo({ // 分享到腾讯微博title: window.ShareData.WeiboTitle, // 分享标题desc: window.ShareData.WeiboDesc, // 分享描述link: window.ShareData.link, // 分享链接imgUrl: window.ShareData.img, // 分享图标success: function () { // 用户确认分享后执行的回调函数 window.ShareData.NormalSuccess();},cancel: function () { // 用户取消分享后执行的回调函数}});*/// wx.hideOptionMenu(); // 隐藏右上角菜单接口wx.showOptionMenu(); // 显示右上角菜单接口});}function set_weixin_share(){if(broswer == 3){function onBridgeReady(){WeixinJSBridge.call('showOptionMenu'); // 显示右上角菜单// WeixinJSBridge.call('hideOptionMenu'); // 隐藏右上角菜单}if (typeof WeixinJSBridge == "undefined"){if( document.addEventListener ){document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);}else if (document.attachEvent){document.attachEvent('WeixinJSBridgeReady', onBridgeReady); document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);}}else{onBridgeReady();}document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {WeixinJSBridge.on('menu:share:appmessage', function(argv) { // 分享给朋友WeixinJSBridge.invoke('sendAppMessage', {"img_url": window.ShareData.img,"link": window.ShareData.link,"desc": window.ShareData.FriendDesc,"title": window.ShareData.FriendTitle}, function(res) {window.ShareData.NormalSuccess();})});WeixinJSBridge.on('menu:share:timeline', function(argv) { // 分享到朋友圈WeixinJSBridge.invoke('shareTimeline', {"img_url": window.ShareData.img,"link": window.ShareData.link,"desc": window.ShareData.TimelineTitle,"title": window.ShareData.TimelineTitle}, function(res) { window.ShareData.TimelineSuccess();});});/*WeixinJSBridge.on('menu:share:weibo', function(argv) { // 分享到腾讯微博WeixinJSBridge.invoke('shareWeibo', {"content": window.ShareData.WeiboDesc,"url": window.ShareData.link}, function(res) {window.ShareData.NormalSuccess();});});*/}, false);}else if(broswer == 4){wx.config({debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId: config_info.appId,// 必填,公众号的唯一标识timestamp: config_info.timestamp,// 必填,生成签名的时间戳nonceStr: config_info.nonceStr,// 必填,生成签名的随机串signature: config_info.signature,// 必填,签名,见附录1jsApiList: [// 必填,需要使用的JS接口列表,所有JS接口列表见附录2// 所有要调用的 API 都要加到这个列表中'onMenuShareTimeline','onMenuShareAppMessage',/*'onMenuShareQQ','onMenuShareWeibo',*/'hideOptionMenu','showOptionMenu']});reset_weixin_share();}}LOGO_URL = imgURL + "logo.jpg";function unimall_start_weixin(){jQuery.getJSON( hostURL+"?c=weixin&a=showWxConfig&url="+encodeURIComponent(window.location.href), function( config_info ) {//console.info(config_info);window.config_info = config_info; window.broswer = get_broswer_info();set_weixin_share();});}/*调用示例window.ShareData = { "img": "<?php echo LOGO_URL;?>", "link": 'api.php?c=weixin&a=share&state={$shopId}x{$projectId}x{$staffId}', //分享到朋友圈 "TimelineTitle":"会员回馈活动,上百万的豪礼不拿白不拿!", "TimelineSuccess":function(){ }, //分享到朋友 "FriendTitle": "有好事我第一个想到你!", "FriendDesc": "会员回馈活动!", "NormalSuccess":function(){ } };unimall_start_weixin(); */
public function getSignPackage($url='') { $jsapiTicket = $this->getJsApiTicket(); // 注意 URL 一定要动态获取,不能 hardcode.; 如果传递了url参数,则优先使用 $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; $url = $url?$url:("$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"); $getlist = $_GET; $timestamp = time(); $nonceStr = $this->createNonceStr(); // 这里参数的顺序要按照 key 值 ASCII 码升序排序 $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url"; //echo $string; error_log( "\n". date('Y-m-d H:i:s') . ":" . $string , 3, APP_PATH.'log/jssdk'); $signature = sha1($string); $signPackage = array( "appId" => $this->appId, "nonceStr" => $nonceStr, "timestamp" => $timestamp, "url" => $url, "signature" => $signature, "rawString" => $string ); return $signPackage; }
参考 :
1 http://blog.csdn.net/snow_finland/article/details/43228839
0 0
- 微信开发 ajax获取 signpackage 且共享
- 微信开发-获取access_token
- 【微信开发】获取用户信息
- 微信开发获取code
- php 获取微信共享的收货地址
- php 获取微信共享的收货地址
- 微信企业号开发:获取AccessToken
- 微信开发的access_token的获取
- 微信access_token的获取开发示例
- 微信开发之获取accessToken
- 微信开发获取AccessToken的方式
- 微信&java 开发4 access_token获取
- 微信开发 获取用户基本信息 php
- 微信开发自定义菜单获取OpenID
- 微信开发获取access_token函数库
- 微信开发,通过token获取signature
- 微信服务号开发-获取用户信息
- 36.微信开发获取openId
- &.nbsp;在IE和谷歌浏览器中不兼容的解决办法
- Java主线程等待子线程、线程池
- 五子棋(Java)图片显示问题及做成EXE程序
- PL/SQL中游标和游标变量的使用
- Shell 编程基础 --语法快速入门
- 微信开发 ajax获取 signpackage 且共享
- java 重定向和转发的区别
- MySQL重装失败,could not start the service MySQL.Error:0
- const函数小思
- RSA签名与RSA加密异同
- iOS 8下UIImagePickerController弹出拍照界面后,镜头旋转了90°
- Token or TokenToolss
- 最大值和最小值
- Android观察者模式Observable的学习(一)