使用微信JS_JDK实现自定义分享功能
来源:互联网 发布:产品数据分析 编辑:程序博客网 时间:2024/06/03 21:34
1、设置JS接口安全域名。这里填写的是一级域名,不带www和http(https://mp.weixin.qq.com/)
2、后台PHP提供微信配置参数
function make_nonceStr(){ $codeSet = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; for ($i = 0; $i<16; $i++) { $codes[$i] = $codeSet[mt_rand(0, strlen($codeSet)-1)]; } $nonceStr = implode($codes); return $nonceStr;}function make_signature($nonceStr,$timestamp,$jsapi_ticket,$url){ $tmpArr = array( 'noncestr' => $nonceStr, 'timestamp' => $timestamp, 'jsapi_ticket' => $jsapi_ticket, 'url' => $url ); ksort($tmpArr, SORT_STRING); $string1 = http_build_query( $tmpArr ); $string1 = urldecode( $string1 ); $signature = sha1( $string1 ); return $signature;}function make_ticket($appId,$appsecret){ // access_token 应该全局存储与更新,以下代码以写入到文件中做示例 $data = json_decode(file_get_contents("access_token.json")); if ($data->expire_time < time()) { $TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appId."&secret=".$appsecret; $json = file_get_contents($TOKEN_URL); $result = json_decode($json,true); $access_token = $result['access_token']; if ($access_token) { $data->expire_time = time() + 7000; $data->access_token = $access_token; $fp = fopen("Data/access_token.json", "w"); fwrite($fp, json_encode($data)); fclose($fp); } }else{ $access_token = $data->access_token; } // jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例 $data = json_decode(file_get_contents("jsapi_ticket.json")); if ($data->expire_time < time()) { $ticket_URL="https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$access_token."&type=jsapi"; $json = file_get_contents($ticket_URL); $result = json_decode($json,true); $ticket = $result['ticket']; if ($ticket) { $data->expire_time = time() + 7000; $data->jsapi_ticket = $ticket; $fp = fopen("Data/jsapi_ticket.json", "w"); fwrite($fp, json_encode($data)); fclose($fp); } }else{ $ticket = $data->jsapi_ticket; } return $ticket;}$appId = C('appid'); //需要的参数$appsecret = C('appsecret');$timestamp = time(); //需要的参数$jsapi_ticket = make_ticket($appId,$appsecret);$nonceStr = make_nonceStr(); //需要的参数$url = 'http://'.$_SERVER['HTTP_HOST'].__SELF__;$signature = make_signature($nonceStr,$timestamp,$jsapi_ticket,$url); //需要的参数3、在前台设置配置
<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>wx.config({debug: false,appId: "你的AppID",timestamp: '上一步生成的时间戳',nonceStr: '上一步中的字符串',signature: '上一步生成的签名',jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 功能列表,我们要使用JS-SDK的什么功能});// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在 页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready 函数中。wx.ready(function(){// 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口wx.onMenuShareTimeline({title: '海量大数据创业平台|合伙人股权计算器', // 分享标题link:_imgUrl,imgUrl: _url // 分享图标});// 获取“分享给朋友”按钮点击状态及自定义分享内容接口wx.onMenuShareAppMessage({title: '海量大数据创业平台|合伙人股权计算器', // 分享标题desc: "以网络系统论+多目标综合评价,运用层次分析算法,让创业者调优股权分配方案时有了便捷的量化决策工具", // 分享描述link:_url,imgUrl: _imgUrl, // 分享图标type: 'link', // 分享类型,music、video或link,不填默认为link});//通过error接口处理失败验证wx.error(function(res){console.log(res);});});
阅读全文
0 0
- 使用微信JS_JDK实现自定义分享功能
- 微信自定义分享功能
- 微信自定义分享功能
- 微信自定义分享功能
- 微信JS-SDK实现自定义分享功能,分享给朋友,分享到QQ,分享到微博
- 基于thinkPHP实现的微信自定义分享功能示例
- 微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈,后台实现
- 怎么使用微信JSSDK的自定义分享功能
- 怎么使用微信JSSDK的自定义分享功能
- 微信分享功能实现
- 微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈
- 微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈
- 微信分享自定义内容功能代码
- 微信公众号自定义分享功能
- 微信jssdk分享功能分享内容自定义失败原因
- iOS微信分享功能简单实现
- IOS微信分享功能简单实现
- iOS微信分享功能实现
- 矩阵快速幂
- 基于YUV图像的色彩调节
- 切换导航标签实现当前标签颜色改变以及利用js如何准确获取当前页面url网址信息
- 十进制转换为其它进制
- Batch Normalization
- 使用微信JS_JDK实现自定义分享功能
- DBCP:常见的数据库连接池(数据源)
- 关闭smartview 版本更新提示
- composer常见错误处理方案
- Hadoop日记Day20---ZooKeeper系列(四)
- 小米2018笔试——三角形
- 使用vmware提示无法打开内核设备 \\.\Global\vmx86: 系统找不到指定的文件
- Windows 10上MarkdownPad2无法预览的解决办法
- c++基础之数据存储