H5微信分享接口开发JS-SDK PHP[附源码]
背景
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[附源码]相关推荐
- Flask+mysql 实现增删改查接口开发+测试(图文教程附源码)
目录 一.前言 二.环境准备 2.1 安装python 2.2 安装mysql 三.工具准备 3.1 安装pycharm 3.2 安装Navicat 3.3 安装postman 四.mysql数据库准 ...
- Flask+VUE 实现页面增删改查显示开发+测试(图文教程附源码)
目录 一.新建项目并初始化 二.安装依赖 axios.elementUI 三.Vue代码 四.进行接口联调 五.后端接口优化 六.web页面功能测试 七.总结 八.展望 九.附录(截止发文时的代码) ...
- Java微信分享接口开发
Java微信分享接口开发 http://blog.csdn.net/juewang_love/article/details/76076417
- arcgis开发 多版本之间如何兼容_arcgis api 4.x for js 结合 react 入门开发系列初探篇(附源码下载)...
你还在使用 JQuery 或者 Dojo 框架开发 arcgis api 4.x for js 吗?想试试模块化开发吗?随着前端技术的发展,arcgis api 4.x for js 也有了结合 re ...
- 用ionic快速开发hybird App(已附源码,在下面+总结见解)
用ionic快速开发hybird App(已附源码,在下面+总结见解) 1.ionic简介 ionic 是用于敏捷开发APP的解决方案.核心思路是:利用成熟的前端开发技术,来写UI和业务逻辑.也就是说 ...
- python 开发视频播放网站_python开发微电影视频网站教程附源码
做为一个合格的Pythoner,只掌握一个框架是不够,如果你有过其它Python框架(例如django)的使用经验,对比不同框架的特性来学习,你将收获更多 当前信息若含有黄赌毒等违法违规不良内容,请点 ...
- 基于C++开发的仓库管理系统(附源码)
基于C++开发的仓库管理系统(附源码) 一.简介 1.开始菜单 2.登录后的菜单 二.C++代码 main.cpp 一.简介 仓库管理系统的功能有登录.注册.查询功能.入库功能.出库功能.添加 ...
- 关于微信分享接口开发
首先要注意的几点: 1.微信开放的分享接口到底是干什么的 微信分享接口文档:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613 ...
- 支付宝网站支付在微信浏览器中跳转问题(亲测,附源码)
文章目录 前言 具体步骤 配置沙箱回调地址,修改代码支付宝网关 准备加密js以及跳转html 源码下载地址 前言 奉上整理好的测试url: 点我调用支付宝 之前的博客中提到了使用支付宝提供的sdk实现 ...
最新文章
- SQL SERVER 获取表结构信息《转载》
- fegin需要实现类_深入理解JVM(六)--虚拟机类加载机制
- c#通过app.manifest使程序 右键 以管理员身份运行
- java hive查询_java程序调用hive查询的一个异常
- 【最短路径Floyd算法详解推导过程】看完这篇,你还能不懂Floyd算法?还不会?...
- 一些jquery的使用方法
- 如何把include_type_name的值设置为true
- mysql print r_PHP 中 PDO 打印出错信息,和 print_r 的位置提前的奇怪表现问题
- 程序员为什么需要学会Markdown
- Windows常用软件推荐
- 深度学习-文档检测方案整理
- 根据经纬度算两点距离
- 基于SpringBoot的QQ邮箱登录注册
- 图片去水印的原理_图片中的水印怎么去除
- java分类Kdd99数据集_【数据】主题分类数据集
- 泛函分析和他的基础概念
- flowable 查询完成的流程_flowable流程引擎初体验,完成一个请假流程
- Android开发(3):个人信息界面设计
- 四种电子取证软件的比较
- 通信工程与计算机考研学校排名,2019-2020信息与通信工程专业考研学校排名
热门文章
- Oracle V$INSTANCE视图字段说明
- 两个表格如何传输数据:序列化传输数据
- 【优化调度】基于matlab帝国企鹅算法求解航空调度优化问题【含Matlab源码 YXS001期】
- 实例3:天天向上的力量
- 机器学习 | 特征工程(数据预处理、特征抽取)
- 智慧城市系列课程4-智慧城市-城市治理-新能源火灾和水务监管
- 晶振,时钟PLL,CPU,APBI,TIM,电源,电路,看门狗等等stm32工作原理的通俗解释。
- 引入spring-mock之后单元测试起不来了
- java毕业设计房屋中介网络平台Mybatis+系统+数据库+调试部署
- 复习资料:软件质量保证与测试