最近做一个砍价的小程序,需要用户分享自己的砍价页面,然后让朋友帮忙砍价,默认情况下微信的分享只有标题可用,描述部分会显示当前的网址,而且还没有缩略图,据说网页中如果有超过 300X300 的图片,会自动生成缩略图,我在微信的 PC 端试过,可以实现自动添加缩略图,但是在手机上就显示一个链接的图标。

微信的分享地址默认是当前的网页,如果是使用 Web APP 开发的手机网页,由于微信浏览器对于 HTML5 中的 History API 支持并不友好,这一点在官方文档里面也有说明,最好的方式就是我们自定义分享的链接。

必备条件

并不是什么公众号都能做分享,据官方的开发文档说明,只有认证过的订阅号或者认证过的服务号,才有分享接口权限

分享网页会到微信的服务器上获取一些信息,这需要开启 SSL 安全连接访问,所以我们还必须有一台服务器,可以自己配置我们的运行环境。

最后要有一个备案的域名,没有备案的域名在天朝是没有任何用处的。

微信公众号设置

首先在公众号管理后台 公众号设置 的 功能设置 里填写 JS接口安全域名,域名需要通过 ICP 备案,没有备案域名可以用 SAE、BAE 等平台。此外自定义分享功能需要通过微信认证才能使用,没有认证的可以跟关系好的朋友借用权限,在他的 JS 接口安全域名设置这里填上你的域名和共享同一个开发者 ID。

引入分享 JS 文档

在需要调用JS接口的页面引入微信 JSSDK 的 JS 文件:http://res.wx.qq.com/open/js/jweixin- 1.2.0.js,这个文件在需要分享的页面是必须要引用的。

部署后台代码

微信的分享不像其他的分享平台,为了数据的安全性,微信总是需要做签名验证,所以我们需要在后台去生成一些东西,然后输出给前台网页。

这里可以直接下载官方的示例代码快速开发,不过如果是大型的项目,还是要自己去再次梳理编写一遍,这里就以 PHP 语言为例:

将上面的文件下载本地,然后解压到任意的目录中,这里推荐大家直接解压到网站的根目录,这样方便引入和查找文件,解压之后看到以下文件:

前端网页

在你需要自定义分享的网页源文件上引用 JSSDK ,传入 AppID 和 yourAppSecret 并且初始化 JSSDK 类,调用 GetSignPackage() 方法获取微信分享配置信息:

require_once "jssdk.php";

$jssdk = new JSSDK("yourAppID", "yourAppSecret");

$signPackage = $jssdk->GetSignPackage();

接下来配置微信分享参数

wx.config({

debug: true,

appId: '<?php echo $signPackage["appId"];?>',

timestamp: <?php echo $signPackage["timestamp"];?>,

nonceStr: '<?php echo $signPackage["nonceStr"];?>',

signature: '<?php echo $signPackage["signature"];?>',

jsApiList: [

// 所有要调用的 API 都要加到这个列表中

'checkJsApi', //判断当前客户端版本是否支持指定JS接口

'onMenuShareTimeline', //分享给好友

'onMenuShareAppMessage', //分享到朋友圈

'onMenuShareQQ', //分享到QQ

'onMenuShareWeibo' //分享到微博

]

});

预定义要分享网页的内容

window.share_config = {

"share": {

"imgUrl": "http://www.pptg315.com/weixin/bargain/images/logo-s.png",

"desc" : "启发右脑深层次记忆,通过对右脑想象力与思维能力训练,开启大脑图像记忆功能,使受训者轻松学会无规律记忆数字,中文词语,现代文,古诗词。",

"title" : '199元让孩子成为最强大脑记忆大师!亲,帮我砍一刀',

"link": 'http://www.pptg315.com/weixin/bargain/activity.php?id=' + order_id,

"success":function(){},

'cancel': function(){ }

}

};

通过 ready 接口处理成功验证,config 信息验证后会执行 ready 方法,所有接口调用都必须在 config 接口获得结果之后,config 是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在 ready 函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在 ready 函数中。

wx.ready(function () {

wx.onMenuShareAppMessage(share_config.share); //分享给好友

wx.onMenuShareTimeline(share_config.share); //分享到朋友圈

wx.onMenuShareQQ(share_config.share); //分享给手机QQ

});

通过 error 接口处理失败验证

wx.error(function(res){

alert(res.errMsg);

//打印错误消息。及把 debug:false,设置为debug:ture就可以直接在网页上看到弹出的错误提示

});

微信分享大致就是这样,以上是常规的在动态页面的调用方法,为了更方便的多页面调用,建议通过 AJAX 跨域请求来实现调用权限,其实在 PHP 文件夹下 sample.php 是调用 API 接口的示例文件,不明白的可以看看这个文件。

php微信分享文章怎么做的,微信开发使用 JSSDK 自定义分享内容 - 文章教程相关推荐

  1. 微信JSSDK自定义分享接口的策略调整--纪念我们被坑过的五一

    引言 五一假期已过半,再睡一个懒觉,就要开始新的一天工作,想想都有点小激动呢~~~~~~ 问题现象 1.微信公众号自定义分享无法显示自定义的数据,朋友圈也是如此,但是(重点来了,拿好小板凳!),qq和 ...

  2. 微信公众号怎么做html,微信公众号怎么做页面模板?

    有没有小伙伴还不知道微信公众号怎么做页面模板?针对这一类问题,小编马上要来为大家进行全面的分析,详细的解说.如果你正有这方面的困扰,也可以来阅读下面的内容!希望对你有帮助! 1.微信公众号怎么做页面模 ...

  3. 微信公众平台修改服务器,微信公众平台开发配置及自定义分享

    刚刚做了微信的自定义分享,折腾了好一会,完了记个笔记. 微信JS-SKD说明文档 本次测试需要:通过ICP备案的域名.已认证的微信公众号 配置篇 1.设置>公众号设置>功能设置>JS ...

  4. 微信公众号 分享接口 签名通过 分享无效果(JSSDK自定义分享接口的策略调整)...

    为规范自定义分享链接功能在网页上的使用,自2017年4月25日起,JSSDK"分享到朋友圈"及"发送给朋友"接口,自定义的分享链接,其域名或路径必须与当前页面对 ...

  5. h5微信js-sdk分享接口php,H5 微信JSSDK自定义分享代码模板

    HTML 导入代码模板: var base_url = ""; var shareTitle = "H5 animations with global vision!&q ...

  6. vue 微信公众号 使用weixin-java-mp、JSSDK自定义分享

    1.后端: 使用weixin-java-mp 4.1.0 pom.xml引入依赖 <!--微信公众号--><dependency><groupId>com.gith ...

  7. 如何建立自己的微信小程序,做一个微信小程序大概多少钱?

    如今,小程序的功能越来越强大,也越来越受欢迎,它不仅能帮助企业和商家做推广,还能给他们带来很多好处.所以,很多企业都开始建立自己的小程序.但是对于如何建立自己的微信小程序,以及做一个微信小程序大概多少 ...

  8. 【微信公众号】个人订阅号开发模式下自定义菜单

    点开开发模式,原菜单一定失效了. 点击微信公众平台,左侧添加功能插件 点击自定义菜单 点击开启

  9. 小程序分享功能怎么做_微信电影小程序怎么做?微信电影小程序项目收益图分享...

    在之前有给大家介绍了 <微信电影小程序这个项目> 可以说是非常的暴力,我们只需要搭建好了小程序,推广出去就可以坐等收益 下面给大家截图我实操这个项目的收益截图: 第一天收益: 第二天收益: ...

最新文章

  1. linux命令之查看文件内容加上行号-nl
  2. 如何理解卷积神经网络(CNN)中的卷积和池化?
  3. 计算机网络基础端口号,1 计算机网络基础练习
  4. Linux的 i2c 驱动框架分析
  5. 网站开启 IPv6 访问,测试是否支持 IPV6
  6. 同源策略——浏览器安全卫士
  7. 森林门前的小路用计算机弹奏歌曲,抖音森林外的小路是什么歌 森林外的小路歌曲介绍...
  8. 知乎cookies的介绍_Requestium = Requests + Selenium
  9. 图像匹配所用方法总结
  10. 计算机视觉教程(第2版)1-8章期末复习
  11. 软件测试的岗位划分和主要工作内容是怎样的?
  12. pythoneducoder苹果梨子煮水的功效_荸荠和梨子一起煮的好处
  13. tungsten-replicator安装
  14. 学生给老师的一道思考题
  15. excel网页服务器端,Excel服务VI――用Excel Web Services创建应用程
  16. 多路脉冲发生器设计(脉冲个数,脉冲宽度可控)
  17. linux怎么查找接口,Linux终端命令接口(五)查找与搜索
  18. 使用Lucene开发简单的站内新闻搜索引擎(环境的搭建)
  19. high-performance server architecture
  20. 机器人bl虐心_【原创】林先生主受 虐受 机器人攻

热门文章

  1. 感性电路电流计算_220和380V功率和电流计算知识
  2. 信驰达推出RTL8720DN系列2.4G和5G双频Wi-Fi+蓝牙二合一模块
  3. 227 Basic Calculator II
  4. 如何用SQL生成一张日期维度表?
  5. 【学习笔记】韦东山freertos直播学习笔记
  6. 【Mac电脑】Mac电脑的Office365的中文字体传到win系统,字体不对的解决方法
  7. 【WebVR系列文章(1)】WebVR 和浏览器边缘计算革命
  8. 网易 java社招面试_一个妹子网易Java岗社招面试经历分享
  9. JAVA计算机毕业设计防疫宣传系统Mybatis+源码+数据库+lw文档+系统+调试部署
  10. JZOJ 2032. 数字游戏