微信分享JS接口

没想到微信接口的突破口实在JS分享这里,今天搞定了这个分享。

1)PHP端需要获取signature的值,因接口调用次数有限制,所以加入了mem存入取出的值,7100秒后过期:

$shaMem = ‘shaTicket‘;
//!$strMem = MemHelper::Get($shaMem)
if(!$strMem = MemHelper::Get($shaMem)){
    //获取相关数据star
    $str = curl_https("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=微信平台获取&secret=微信平台获取");
    $str = json_decode($str,true);
    $access_token = $str[‘access_token‘];
    $str = curl_https("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$access_token."&type=jsapi");
    $str = json_decode($str,true);
    $ticket = $str[‘ticket‘];
    $str = "jsapi_ticket=".$ticket."&noncestr=Wm3WZYTPz0wzccnW&timestamp=1414587457&url=具体网址";
    $strMem = sha1($str);
    //获取相关数据end
    MemHelper::Set($shaMem, $strMem, 7100);
}

function curl_https($url, $data=array(), $header=array(), $timeout=30){  

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);  // 从证书中检查SSL加密算法是否存在
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    $response = curl_exec($ch);
    if($error=curl_error($ch)){
        die($error);
    }
    curl_close($ch);
    return $response;
}

2)页面底部加入JS代码,前期测试建议打开debug:

wx.config({
    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: ‘微信后台获取‘, // 必填,公众号的唯一标识
    timestamp: 1414587457, // 必填,生成签名的时间戳
    nonceStr: ‘Wm3WZYTPz0wzccnW‘, // 必填,生成签名的随机串
    signature: ‘<?php echo $strMem;?>‘,// 必填,签名,见附录1
    jsApiList: [
        ‘checkJsApi‘,
        ‘onMenuShareTimeline‘,
        ‘onMenuShareAppMessage‘,
        ‘onMenuShareQQ‘,
        ‘onMenuShareWeibo‘,
        ‘hideMenuItems‘,
        ‘showMenuItems‘,
        ‘hideAllNonBaseMenuItem‘,
        ‘showAllNonBaseMenuItem‘,
        ‘translateVoice‘,
        ‘startRecord‘,
        ‘stopRecord‘,
        ‘onRecordEnd‘,
        ‘playVoice‘,
        ‘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(){
    wx.onMenuShareAppMessage({
        title: ‘测试标题‘, // 分享标题
        desc: ‘测试描述……‘, // 分享描述
        link: ‘具体网址‘, // 分享链接
        imgUrl: ‘图片网址‘, // 分享图标
        type: ‘‘, // 分享类型,music、video或link,不填默认为link
        dataUrl: ‘‘, // 如果type是music或video,则要提供数据链接,默认为空
        success: function () {
            // 用户确认分享后执行的回调函数
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
        }
    });
    wx.onMenuShareTimeline({
        title: ‘测试标题‘, // 分享标题
        link: "具体网址",
        imgUrl: "图片网址", // 分享图标
        success: function () {
            // 用户确认分享后执行的回调函数
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
        }
    });
});
时间: 2024-08-28 12:32:52

微信分享JS接口的相关文章

微信分享JS接口失效说明及解决方案

关键字:微信分享 JS 失效  分享到朋友圈 微信分享JS接口目前已失效,以前可以自定义分享的标题.描述.图片.链接地址在微信6.0.2版本中失效. 官方回复如下: 旧版的获取分享状态及设置分享内容的JS接口一直用于内部业务,并未对外开放,在微信公开的开放文档里面并没有此接口. 某些第三方借助微信客户端漏洞在未获得权限的情况下使用接口,微信6.0.2版本对此漏洞做了修复以确保用户分享内容的准确性,避免诱导分享. 另外,不久将向广大公众号开放正式分享接口供开发者使用. 临时解决方案: 标题:修改<

微信分享jsdk接口

HTML文件 <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>微信JS-SDK Demo</title> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"> <link r

微信分享js代码(转载)

<script> window.shareData = { //微信分享时显示的图标 "imgUrl":'...", //分享链接对应的页面 "timeLineLink": "...", //分享时的标题及描述"tTitle": "", "tContent": "" }; document.addEventListener('WeixinJSBr

微信分享JS函数

1 //微信内置浏览器分享事件 2 //来自:http://www.cnblogs.com/cielwater 3 //分享朋友圈事件 4 //UpdateWeixinJSBridge(CircleModel[Json格式,分享朋友圈事件参数]) 5 //Json{, img_url:封面图片地址, img_width:图片宽度, img_height:图片高度, link:跳转地址, desc:正文, title:标题} 6 function Circle(CircleModel) { 7 W

微信配置JS接口安全域名问题-Nginx配置

1.将下载的txt文件放入/usr/local/nginx/html/目录下面. 2.修改nginx.cong配置文件中的location标签 location / { root html; index index.html index.htm; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $h

微信禁用分享JS后的安卓解决方案

不能使用微信分享JS后,想必大家一定急坏了.腾讯这是要把大家往死路上赶啊.经过一番调研,终于解决了安卓机的分享问题,包括自定义分享链接.封面.回调函数等(实测可用),但还未能找到ios的解决方案.anyway,这里先分享一下安卓的解决方案,希望起到个抛砖引玉的作用. 下面是封装好的WeixinApi.js (function(c) { var d = { version: 3.8 }; c.WeixinApi = d; if (typeof define === "function"

java菜鸟之微信分享

前言:我终于理解了什么叫做教科书:教科书就是把一些简单容易的知识写成一堆谁都看不懂的书,这,就简称"教科书" 这些天接触到微信分享以及回调的问题,因为之前没接触过,所以这次做这个分享,碰了一点点壁,特意写下博客,以便以后再次回顾,本篇由本菜鸟写下,不好之处,敬请原谅! 想到接入微信分享,各位第一想到的是什么?肯定是看官方文档啊,然而,我发现,是我智商太低?还是微信的 API 写得太高级?我只能说:"fuck you nai nai"! 那只能百度找教程了,找了很多,

微信公众平台接口,修改分享文案、图片等(前端js部分)

第一步:引入微信官方js文件 <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> 第二步:通过config接口注入权限验证配置 wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,

微信js接口自定义分享内容

最近客户有个要求,需要给网页添加微信分享功能,当然指的是用微信自带浏览器的时候,希望用户在最后一页点击分享的时候是分享的首页.曾经无意中看到过微信公众开发者平台提供了js接口,所以试着做了做,果然,跌入了一个大坑,现在就把我的经历跟大家分享一下. 首先去腾讯给的开发者文档去看,地址就不贴了,然后 第一步,绑定域名,从客户那儿拿到了备案的域名,然后登陆微信公众平台绑定域名 第二步,在页面里引入js,官方文档中都有 第三步,设置config验证, 官方文档给了个例子,直接拿过来用,否则自己写的话很麻