PHP 微信分享

share.php

<?php
//公众号设置一下 JS接口安全域名,不要http,www的一级域名,比如http://www.baidu.com域名下的某个路径要分享,js安全域名中只需填上 baidu.com 即可

//因为微信分享出去后的地址结尾带有from和isappinstalled参数。分享后再分享就会失效,所以前端判断获取这两参数,给后端动态添加到分享地址后面
$urlend = ‘‘;
if($_POST[‘from‘] == ‘timeline‘ || $_POST[‘from‘] == ‘singlemessage‘){
    $urlend = "?from=".$_POST[‘from‘] . "&isappinstalled=".$_POST[‘isappinstalled‘];
}

$data[‘ticket‘]    = ‘bxLdikRXVbTPdHSM05e5u7AnbMMI4rNIxqVt3BVCv-JyYcjsM0DdvwuHhd69qZ3-EzyQnuaEawwfTUdJMumb6A‘;//假设已获取到ticket,具体获取方法格外查询
$data[‘timestamp‘] = time();//当前时间戳
$data[‘noncestr‘]  = ‘suijiwenzi‘;//自定义随机字符串
$data[‘url‘]       = ‘http://www.baidu.com/test/index.html‘.$urlend;//分享地址,url路径后面详细到文件扩展名时结尾不需要加/,否则详细到文件夹名则需要加/
//包括一些特殊路径比如 ‘http://www.baidu.com/test/index.php?s=home/index/test2‘ 其中有文件扩展名,则结尾也不需要加/
//说白了就是必须和当前浏览器路径完全一致
$data[‘appId‘]     = ‘wxb71ed5a23a86e594‘;
$data[‘imgUrl‘]    = ‘http://www.baidu.com/test/shareImg.jpg‘;
//生成签名
$string1           = "jsapi_ticket=".$data[‘ticket‘]."&noncestr=".$data[‘noncestr‘]."&timestamp=".$data[‘timestamp‘]."&url=".$data[‘url‘];
$data[‘signature‘] = sha1($string1);
// 显示获得的数据
echo json_encode($data);
exit;
?>

test_share.html

<!DOCTYPE html>
<html>
<head>
<title>测试html</title>
</head>
<body>
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
    <script type="text/javascript">
        var from           = GetQueryStringS("from");
        var isappinstalled = GetQueryStringS("isappinstalled");

        $.post(‘share.php‘, {
            ‘from‘ : from,
            ‘isappinstalled‘ : isappinstalled
        }, function(data) {
            console.log(data);
            var appId     = data[‘appId‘];
            var timestamp = data[‘timestamp‘];
            var noncestr  = data[‘noncestr‘];
            var signature = data[‘signature‘];

            var url       = data[‘url‘];
            var imgUrl    = ‘http://www.fotile.com/Video/html/img/shareImg1.jpg‘;

            wx.config({
                debug : true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                appId : appId, // 必填,公众号的唯一标识
                timestamp : timestamp, // 必填,生成签名的时间戳
                nonceStr : noncestr, // 必填,生成签名的随机串
                signature : signature,// 必填,签名,见附录1
                jsApiList : [ ‘onMenuShareTimeline‘, ‘onMenuShareAppMessage‘ ]
            // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
            });

            wx.ready(function() {
                wx.onMenuShareTimeline({
                    title : ‘你敢信么?家里烟龄最长的竟是妈妈!‘, // 分享标题
                    desc : ‘最怕你被烟伤害的人,却是被烟伤害最久的人‘, // 分享描述
                    link : url, // 分享链接
                    imgUrl : imgUrl, // 分享图标
                    success : function() {
                        //alert(‘分享成功‘);
                    },
                    cancel : function() {
                        // 用户取消分享后执行的回调函数
                    }
                });
                // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
                wx.onMenuShareAppMessage({
                    title : ‘你敢信么?家里烟龄最长的竟是妈妈!‘, // 分享标题
                    desc : ‘最怕你被烟伤害的人,却是被烟伤害最久的人‘, // 分享描述
                    link : url, // 分享链接
                    imgUrl : imgUrl, // 分享图标
                    type : ‘link‘, // 分享类型,music、video或link,不填默认为link
                    dataUrl : ‘‘, // 如果type是music或video,则要提供数据链接,默认为空
                    success : function() {
                        // 用户确认分享后执行的回调函数
                    },
                    cancel : function() {
                        // 用户取消分享后执行的回调函数
                    }
                });
            });
        }, "json")

        function GetQueryStringS(name) {
            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
            var r = window.location.search.substr(1).match(reg);
            if (r != null)
                return unescape(r[2]);
            return null;
        }
    </script>
</body>
</html>
时间: 2025-01-18 14:27:49

PHP 微信分享的相关文章

Android应用加入微信分享

一.申请你的AppID http://open.weixin.qq.com/ 友情提示:推荐使用eclipse打包软件最后一步的MD5值去申请AppID 二.官网下载libammsdk.jar包 http://open.weixin.qq.com/download/?lang=zh_CN 三.将libammsdk.jar复制到工程的libs目录 四.在需要分享的Activity编写代码 private IWXAPI wxApi; //实例化 wxApi = WXAPIFactory.create

一处折腾笔记:Android内嵌html5加入原生微信分享的解决的方法

有一段时间没有瞎折腾了. 这周一刚上班萌主过来反映说:微信里面打开聚客宝.分享功能是能够的(这里是用微信自身的js-sdk实现的).可是在android应用里面打开点击就没反应了:接下来狡猾的丁丁在产品群里AT我说:偶们的产品设计不是一直都被技术给反压制住么?真是气死,呵呵.自己刚好有空又有兴趣,于是研究了下.没曾想竟也研究出来了.事后我对整个操作过程整理了下,方便他人也提升自己. 废话少扯.以下上干货. 我的思路是:在点击h5上的分享图标时.触发js事件,在这里面能够对当前设备的操作系统和浏览

通过微信分享链接,后面会被加上from=singlemessage&amp;isappinstalled=1可能导致网页打不开

微信分享会根据分享的不同,为原始链接拼接如下参数: 朋友圈   from=timeline&isappinstalled=0 微信群   from=groupmessage&isappinstalled=0 好友分享 from=singlemessage&isappinstalled=0    项目中,由于请求后台数据的网址中的一部分是通过浏览器地址栏数据获得的, 获得此数据的处理过程没有考虑会被微信加参数的问题,因此得到的数据不正确, 导致网页无法访问. 弄了好久才找到这个原因,

html静态页面实现微信分享思路

微信分享网页的时候,希望分享出来的链接是标题+描述+缩略图,微信开发代码示例里已提供了方法,但只适用于动态页面.由于dedecms是生成了静态文件,其实我想使用ajax获取jssdk参数也能也能实现微信分享功能了,在这里分享给大家.前台HTML代码示例: <script src="http://外部站点引入/js/jquery-1.11.1.min.js"></script>   <script src="http://res.wx.qq.com

通过微信分享链接,后面被加上from=singlemessage&amp;isappinstalled=1导致网页打不开

微信分享会根据分享的不同,为原始链接拼接如下参数: 朋友圈   from=timeline&isappinstalled=0微信群   from=groupmessage&isappinstalled=0好友分享 from=singlemessage&isappinstalled=0 在连接后加上?&再进行分享,分享成功,原理

使用微信JSSDK自定义微信分享标题、描述、和图标

最近做一个项目的时候用到微信的分享 ,实现定义分享标题,图片,了解到微信在发布JSSDK后,把包括自定义分享在内的众多网页服务接口进行了统一.如果要想自定义分享自己的网页信息给好友或朋友圈,就最好使用这个统一的网页服务接口. 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 步

Android 微信分享,分享到朋友圈与分享到好友,以及微信登陆

extends:http://www.cnblogs.com/android100/p/Android-qq.html 一.申请你的AppID http://open.weixin.qq.com/ 友情提示:推荐使用eclipse打包软件最后一步的MD5值去申请AppID 二.官网下载libammsdk.jar包 http://open.weixin.qq.com/download/?lang=zh_CN 三.将libammsdk.jar复制到工程的libs目录 四.在需要分享的Activity

Vue单页式应用(Hash模式下)实现微信分享

前端微信分享的基本步骤: 一.绑定域名: 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安全域名".这个不多说,微信开发的都应该清楚. 二.引入js文件: 在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js.请注意,如果你的页面启用了https,务必引入 https://res.wx.qq.com/open/js/jweixi

在App中添加微信分享功能

随着微信平台运用越来越普遍,在app中往往需要将看到的消息发送给微信好友,分享到朋友圈,因此就需要添加微信分享的功能.我们可以通过微信的开发者平台上的相关文档来实现这个简单的功能. 1.在微信开发者平台注册应用程序的id,通过审核后可以获得一个appid 2.有了appID后下载最新的微信终端sdk文件,SDK文件包括 libWeChatSDK.a,WXApi.h,WXApiObject.h 这三个.资料下载页面: https://open.weixin.qq.com/cgi-bin/showd

微信分享代码,附带教程

app微信分享代码,附带教程: 网站地址:http://youtui.mobi/ 源码下载地址:http://youtui.mobi/download/index.htm 教程地址:http://youtui.mobi/doc/index.htm 案例地址:http://youtui.mobi/news/news-youtui.htm 微信分享代码,附带教程,布布扣,bubuko.com