背景

H5开发中几乎所有项目都要用到自定义分享,见过的分享接口有php引入和ajax调用两种,使用不方便且对代码环境有要求。故共享一版可通过javascript文件引入方式来实现自定义分享的接口(这是15年底做的接口,一直在使用,如果有更简单便捷的方法欢迎交流)。

使用这个接口,不管你是php开发的项目还是纯前端的html项目,不管是把代码放服务器还是放到OSS CDN,都是OK的,是一件一劳永逸的事情。

实现方法

根据微信JS-SDK开发文档,实现分享主要有几个步骤:步骤一,绑定域名。步骤二,引入JS文件。步骤三,权限验证。步骤四,设置自定义分享信息。

首先是要有一个认证的微信公众号,进入 公众号设置/功能设置/JS接口安全域名,填入项目域名。然后就是第三步,用接口实现权限验证。

这里不探讨具体的实现方法(实现已封装到jssdk.php文件),只说明 接口配置和项目调用方法。

接口配置只需填写公众号AppID、AppSecret两个参数,

require_once "jssdk.php";
$jssdk = new JSSDK("AppID", "AppSecret", $url); // 公众号AppID、AppSecret
$signPackage = $jssdk->GetSignPackage();
echo "var signPackage=";
die(json_encode($signPackage)); // 返回微信分享所需参数

项目调用接口更方便,只需在index.html里通过javascript引入接口地址即可,

<script>document.write("<script src='accessToken/signPackage.php?originUrl=" + window.location.href + "' type='text/javascript'><\/script>");
</script>
<script>var baseUrl = "http://xxx.com/";       // 项目地址var wxData = {"imgUrl" : baseUrl + 'share.jpg',  // 分享图标"link"   : baseUrl,                // 分享地址"title"  : '微信分享接口-分享标题',   // 分享标题"desc"   : '分享文案'               // 分享文案};wx.config({debug: false,appId: signPackage.appId,timestamp: parseInt(signPackage.timestamp),nonceStr: signPackage.nonceStr,signature: signPackage.signature,jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage']});wx.ready(function () {wx.onMenuShareTimeline({title: wxData.title,link: wxData.link,imgUrl: wxData.imgUrl,success: function () {}});wx.onMenuShareAppMessage({title: wxData.title,desc: wxData.desc,link: wxData.link,imgUrl: wxData.imgUrl,type: 'link',dataUrl: '',success: function () {}});});
</script>

Demo二维码

源码下载地址

https://download.csdn.net/download/gaofei880219/10383643

参考链接

微信JS-SDK说明文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115

微信JS SDK PHP Demo:http://www.cnblogs.com/txw1958/p/weixin-js-sdk-php-demo.html

-------------------------------  时间分界线:2018.6.26  -------------------------------

最近一个项目投放微信朋友圈,代码部署腾讯服务器,用到负载均衡共4台IP不同的服务器。那么问题来了,分享接口代码部署到4台服务器,用于存储access_token和jsapi_ticket缓存的json文件在不同的地方,那签名过期重新生成数据必定不同而导致分享配置出错。

解决思路,把access_token和jsapi_ticket缓存到一个固定的地方,分享接口都去调用这个地方的签名缓存文件。

具体实现,使用阿里云的RDS云数据库,上面的问题得以解决,而且也能应对高并发。

数据表设计,如下图:

代码实例见 https://github.com/YanKaiwei/Demo/tree/master/shareDemoRDS

H5微信分享接口开发JS-SDK PHP[附源码]相关推荐

  1. Flask+mysql 实现增删改查接口开发+测试(图文教程附源码)

    目录 一.前言 二.环境准备 2.1 安装python 2.2 安装mysql 三.工具准备 3.1 安装pycharm 3.2 安装Navicat 3.3 安装postman 四.mysql数据库准 ...

  2. Flask+VUE 实现页面增删改查显示开发+测试(图文教程附源码)

    目录 一.新建项目并初始化 二.安装依赖 axios.elementUI 三.Vue代码 四.进行接口联调 五.后端接口优化 六.web页面功能测试 七.总结 八.展望 九.附录(截止发文时的代码) ...

  3. Java微信分享接口开发

    Java微信分享接口开发 http://blog.csdn.net/juewang_love/article/details/76076417

  4. arcgis开发 多版本之间如何兼容_arcgis api 4.x for js 结合 react 入门开发系列初探篇(附源码下载)...

    你还在使用 JQuery 或者 Dojo 框架开发 arcgis api 4.x for js 吗?想试试模块化开发吗?随着前端技术的发展,arcgis api 4.x for js 也有了结合 re ...

  5. 用ionic快速开发hybird App(已附源码,在下面+总结见解)

    用ionic快速开发hybird App(已附源码,在下面+总结见解) 1.ionic简介 ionic 是用于敏捷开发APP的解决方案.核心思路是:利用成熟的前端开发技术,来写UI和业务逻辑.也就是说 ...

  6. python 开发视频播放网站_python开发微电影视频网站教程附源码

    做为一个合格的Pythoner,只掌握一个框架是不够,如果你有过其它Python框架(例如django)的使用经验,对比不同框架的特性来学习,你将收获更多 当前信息若含有黄赌毒等违法违规不良内容,请点 ...

  7. 基于C++开发的仓库管理系统(附源码)

    基于C++开发的仓库管理系统(附源码) 一.简介 1.开始菜单 2.登录后的菜单 二.C++代码 main.cpp   一.简介   仓库管理系统的功能有登录.注册.查询功能.入库功能.出库功能.添加 ...

  8. 关于微信分享接口开发

    首先要注意的几点: 1.微信开放的分享接口到底是干什么的 微信分享接口文档:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613 ...

  9. 支付宝网站支付在微信浏览器中跳转问题(亲测,附源码)

    文章目录 前言 具体步骤 配置沙箱回调地址,修改代码支付宝网关 准备加密js以及跳转html 源码下载地址 前言 奉上整理好的测试url: 点我调用支付宝 之前的博客中提到了使用支付宝提供的sdk实现 ...

最新文章

  1. SQL SERVER 获取表结构信息《转载》
  2. fegin需要实现类_深入理解JVM(六)--虚拟机类加载机制
  3. c#通过app.manifest使程序 右键 以管理员身份运行
  4. java hive查询_java程序调用hive查询的一个异常
  5. 【最短路径Floyd算法详解推导过程】看完这篇,你还能不懂Floyd算法?还不会?...
  6. 一些jquery的使用方法
  7. 如何把include_type_name的值设置为true
  8. mysql print r_PHP 中 PDO 打印出错信息,和 print_r 的位置提前的奇怪表现问题
  9. 程序员为什么需要学会Markdown
  10. Windows常用软件推荐
  11. 深度学习-文档检测方案整理
  12. 根据经纬度算两点距离
  13. 基于SpringBoot的QQ邮箱登录注册
  14. 图片去水印的原理_图片中的水印怎么去除
  15. java分类Kdd99数据集_【数据】主题分类数据集
  16. 泛函分析和他的基础概念
  17. flowable 查询完成的流程_flowable流程引擎初体验,完成一个请假流程
  18. Android开发(3):个人信息界面设计
  19. 四种电子取证软件的比较
  20. 通信工程与计算机考研学校排名,2019-2020信息与通信工程专业考研学校排名

热门文章

  1. Oracle V$INSTANCE视图字段说明
  2. 两个表格如何传输数据:序列化传输数据
  3. 【优化调度】基于matlab帝国企鹅算法求解航空调度优化问题【含Matlab源码 YXS001期】
  4. 实例3:天天向上的力量
  5. 机器学习 | 特征工程(数据预处理、特征抽取)
  6. 智慧城市系列课程4-智慧城市-城市治理-新能源火灾和水务监管
  7. 晶振,时钟PLL,CPU,APBI,TIM,电源,电路,看门狗等等stm32工作原理的通俗解释。
  8. 引入spring-mock之后单元测试起不来了
  9. java毕业设计房屋中介网络平台Mybatis+系统+数据库+调试部署
  10. 复习资料:软件质量保证与测试