php 微信分享链接怎么弄,PHP实现 微信--分享朋友链接

不是些高深知识,但是第一次做,确实费了很多的时间.终于一点一点的扣了出来. 目前已经使用中.

解决这个问题,总共碰到了几次BUG,1是生成的签名不对,自己打印出来,在去微信的签名算法页面一一核对.这时候如果对了,还是不成功.那就是需要动态获取URL链接的.最后需要将 函数写在为微信的ready函数内.但是看文档讲需要用户触发的函数可以不写进去.所以当所有的问题解决后.发送给朋友的链接总是原生态的.后台又尝试将函数写入ready才解决了此事.    坑啊

PHP

// JS 准备工作

$this->time1 = time();

$this->appId = ‘xxxxxxx‘; //自己平台的appid

$this->nonceStr = ‘xxxxxxxx‘;// 秘钥

$res = file_get_contents("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxxx&secret=xxxxx");// 获得token

$ress = json_decode($res,True);

$token = $ress[‘access_token‘];// 取出  至于存储代码就不列举了

$js = file_get_contents("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$token."&type=jsapi");

$jss = json_decode($js,True);

$jsapi_ticket = $jss[‘ticket‘];//   取出JS凭证, 至于存储代码就不列举了

//开始签名算法了

$dataa[‘noncestr‘] =  ‘sjijfdif‘; //随意字符串 一会要传到JS里去.要求一致

$dataa[‘jsapi_ticket‘] = $jsapi_ticket;

$dataa[‘timestamp‘] = $this->time1;

$this->url1 = $dataa[‘url‘] = ‘http://‘.$_SERVER[‘HTTP_HOST‘].$_SERVER[‘REQUEST_URI‘];//动态获取URL

ksort($dataa);

$signature = ‘‘;

foreach($dataa as $k => $v){

$signature .= $k.‘=‘.$v.‘&‘;

}

$signature = substr($signature, 0, strlen($signature)-1);

$this->signature = sha1($signature);// 必填,签名,见附录1

HTML

wx.config({

debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

appId: "", // 必填,公众号的唯一标识

timestamp:"" , // 必填,生成签名的时间戳

nonceStr: "", // 必填,生成签名的随机串

signature: "",// 必填,签名,见附录1

jsApiList: [‘onMenuShareAppMessage‘] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2

});

wx.ready(function(){

wx.onMenuShareAppMessage({

title: ‘周亮‘, // 分享标题

desc: ‘嘻嘻哈哈程序猿‘, // 分享描述

link: "", // 分享链接

imgUrl: ‘/Uploads/20160921/57e24dc555372.jpg‘, // 分享图标

type: ‘link‘, // 分享类型,music、video或link,不填默认为link

dataUrl: ‘‘, // 如果type是music或video,则要提供数据链接,默认为空

success: function () {

alert(‘分享成功‘);

},

cancel: function () {

alert(‘取消分享了‘);

}

});

});

原文:http://www.cnblogs.com/666-zhouliang/p/5982860.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571433.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL中整型和字符串类型指定长度的含义

引入: int(5)和char(5)或者varchar(5)中的数字指的是什么意思?是字节数,还是字符长度?为什么在整型中指定了int(5)却可以输入123456? 答案是后者,不管是整型还是字符串类型,后面跟的数字都是字符…

php网站开发项目实战,PHP动态网站开发项目实战

任务1 分析网站需求11.1 知识准备11.1.1 功能结构图11.1.2 用例图21.2 任务实现51.2.1 花公子蜂蜜网站项目功能结构分析51.2.2 花公子蜂蜜网站项目用例分析61.3 经验传递71.4 知识拓展8任务2 设计网站前台版面92.1 知识准备92.1.1 网站版面设计流程92.1.2 网站版面设计原则102.…

repo同步代码_工欲善其事,必先利其器:repo 介绍

介绍此repo非彼repo。这里的repo,是指谷歌公司的一款小工具,名字就叫repo(我承认,这不是一个好名字,Google里面怎么搜都搜不到它的真身)。解决的问题有时候,我们需要在一台电脑上克隆很多个代码仓库,编译它…

洛谷 P1754 球迷购票问题

P1754 球迷购票问题 题目背景 盛况空前的足球赛即将举行。球赛门票售票处排起了球迷购票长龙。 按售票处规定,每位购票者限购一张门票,且每张票售价为50元。在排成长龙的球迷中有N个人手持面值50元的钱币,另有N个人手持面值100元的钱币。假设…

php date函数实现,PHP date() 函数可实现的功能列表

date() 函数格式化本地日期和时间,并返回已格式化的日期字符串。date(format,timestamp);format 参数为必填,格式为何种格式timestamp 可选参数。规定整数的 Unix 时间戳。默认是当前的本地时间(time())。format参数如下:d - 一个月中的第几天…

ddd 企业应用架构模式_灵魂拷问:用了DDD分包就是落地了领域驱动设计吗?谈谈DDD本质...

学习DDD的时候,作为开发,我们更关心它在技术层面的东西,尤其体现在DDD的分包方式、编码技巧等方面。自然的,我们不禁发问,用了DDD的分包,就是实践落地了DDD了么?不卖关子,直接说答案…

java常见编码

摘自:http://www.cnblogs.com/yaya-yaya/p/5768616.html红色 主要点  灰色 内容 绿色 知识点 橘色 补充内容几种常见的编码格式 为什么要编码 不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要…

准确率 召回率_机器学习中F值(F-Measure)、准确率(Precision)、召回率(Recall)

在机器学习、数据挖掘、推荐系统完成建模之后,需要对模型的效果做评价。业内目前常常采用的评价指标有准确率(Precision)、召回率(Recall)、F值(F-Measure)等,下图是不同机器学习算法的评价指标。下文讲对其中某些指标做简要介绍。本文针对二元分类器&am…

php 前置操作方法,前置操作-THINKPHP 5.0 手册最新版

前置操作可以为某个或者某些操作指定前置执行的操作方法,设置 beforeActionList属性可以指定某个方法为其他方法的前置操作,数组键名为需要调用的前置方法名,无值的话为当前控制器下所有方法的前置方法。[except > 方法名,方法名]表示这些…

Saving James Bond - Easy Version 原创 2017年11月23日 13:07:33

06-图2 Saving James Bond - Easy Version(25 分) This time let us consider the situation in the movie "Live and Let Die" in which James Bond, the worlds most famous spy, was captured by a group of drug dealers. He was sent to …

commit是直接提交到远程吗 svn_xcode 把项目代码提交到远程SVN服务器

环境 xcode 7 Mac airxcode默认支持GIT源码管理工具,但现在想把代码提交到已有到SVN服务器上,步骤如下:1,在safari中打开svn链接地址,信任证书,输入用户名密码 ,登陆成功,可以在浏览…

oracle导入 表 卡住了,oracle数据库怎么导入dmp,只导入数据不导入表结构?

使用方法:Exp parameter_namevalue or Exp parameter_name(value1,value2……)只要输入参数helpy就可以看到所有帮助.EXP常用选项1.FULL,这个用于导出整个数据库,在ROWSN一起使用时,可以导出整个数据库的结构。例如:ex…

【bzoj3991】[SDOI2015]寻宝游戏 树链的并+STL-set

题目描述 给出一棵树,初始每个点都是非必经的。多次改变某个点的必经状态,并询问从任意一个点出发,经过所有必经的点并回到该点的最小路程。 输入 第一行,两个整数N、M,其中M为宝物的变动次数。 接下来的N-1行&#xf…

vue 引入json地图_VUE中通过Echarts引入地图

渲染的方法如下 记得引入echartsimport echarts from echarts-----------------------------------init(dalian){this.$nextTick(()>{var myChart this.$echarts.init(document.getElementById(echartMap));echarts.registerMap(dalian, dalian,{});myChart.setOption({ser…

Django---admin

Django内置admin 1.配置路由 urlpatterns [url(r^admin/, admin.site.urls),] 2.定制admin 在admin.py中只需要讲Mode中的某个类注册,即可在Admin中实现增删改查的功能,如: admin.site.register(models.UserInfo) 但是,这种方式比…

vue 父组件获取接口值传到子组件_vue父组件异步获取数据传给子组件的方法

但是现在问题是父组件的数据是异步获取的,而子组件一开始就会渲染,如果此时没有传入数据,而子组件又要用到数据中的length属性时就会报错:怎么办呢?最简单的办法就是让子组件条件渲染,当有数据的时候才渲染…

python爬取数据需要注意的问题

1 爬取https的网站或是接口的时候,如果是不受信用的SSL证书,会报错,需要添加如下代码,如下代码可以保证当前代码块内所有的请求都自动屏蔽ssl证书问题: import ssl # 这个是爬取https的链接需要的,以及下…

pandas 合并所有列_Python学习:Pandas库+练习资料

pandas包含数据结构和数据处理工具的设计使得在Python中进行数据清洗和分析非常快捷。pandas经常是和NumPy,Scipy以及数据可视化工具matplotlib一起使用的。pandas支持大部分NumPy语言风格的数组计算,但最大的不同在于pandas是用于处理表格型或异质型数据的。而NumP…

oracle 取mac地址,java执行命令,得到Mac地址

public static void main(String[] args) {String os System.getProperty("os.name");System.out.println("操作系统:"os);String address "";if (os ! null && os.startsWith("Windows")) {try {String command "cmd…

solidity 十六进制字符串转十六进制bytes

pragma solidity ^0.4.16;contract Metadata {// 十六进制字符串转换成bytesfunction hexStr2bytes(string data)returns (bytes){uint _ascii_0 48;uint _ascii_A 65;uint _ascii_a 97;bytes memory a bytes(data);uint[] memory b new uint[](a.length);for (uint i 0;…