1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > TP5 微信分享朋友圈接口显示自定义图片和标题

TP5 微信分享朋友圈接口显示自定义图片和标题

时间:2019-05-23 21:04:02

相关推荐

TP5 微信分享朋友圈接口显示自定义图片和标题

在tp5框架下对接微信分享朋友圈接口,并显示图片和标题。

要使用 微信JS-SDK 进行调用;

准备步骤:

1,先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

2,获取公众号对应的 appid 和 appsecret。

3.公众号取得认证。

不罗嗦,直接上代码:

1,js 代码,在需要分享的页面添加:

<script src="http://res./open/js/jweixin-1.2.0.js"></script>//引入js

<script>

window.οnlοad=function(){

var ajaxurl = '{:url("index/weixin")}';

var urll=location.href.split('#')[0];

$.ajax({

url:ajaxurl,

type:"post",

data:{urll:urll},

dataType:"json",

success:function(s){

wx.config({

debug: true, //分享成功后可以关闭 false

appId: s.appid,

timestamp: s.timestamp,

nonceStr: s.nonceStr,

signature: s.signature,

jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage']

});

wx.ready(function(){

wx.onMenuShareTimeline({

title: '{$subtitle}', // 分享标题

link: s.url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致

imgUrl: "imgurl", // 分享图标 使用绝对路径

success: function () {

}

});

wx.onMenuShareAppMessage({

title: '{$subtitle}',

desc: s.url, // 分享描述

link: s.url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致

imgUrl: "imgurl", // 分享图标 使用绝对路径

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

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

success: function () {

}

});

});

},

error:function(){

console.log("通信失败");

}

});

}

/* alert(location.href.split('#')[0]); */ //弹出的url必须与访问地址一致

</script>

2.php代码

public function weixin(){

$url = input('urll');//获取当前页面的url,接收请求参数

$root['url'] = $url;

//获取access_token,并缓存

$file = RUNTIME_PATH.'/access_token';//缓存文件名access_token

$appid='xxxxxxxxxxx'; // 填写自己的appid

$secret='xxxxxxxxxxx'; // 填写自己的appsecret

$expires = 3600;//缓存时间1个小时

if(file_exists($file)) {

$time = filemtime($file);

if(time() - $time > $expires) {

$token = null;

}else {

$token = file_get_contents($file);

}

}else{

fopen("$file", "w+");

$token = null;

}

if (!$token || strlen($token) < 6) {

$res = file_get_contents("https://api./cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret."");

$res = json_decode($res, true);

$token = $res['access_token'];

// write('access_token', $token, 3600);

@file_put_contents($file, $token);

}

//获取jsapi_ticket,并缓存

$file1 = RUNTIME_PATH.'/jsapi_ticket';

if(file_exists($file1)) {

$time = filemtime($file1);

if(time() - $time > $expires) {

$jsapi_ticket = null;

}else {

$jsapi_ticket = file_get_contents($file1);

}

}else{

fopen("$file1", "w+");

$jsapi_ticket = null;

}

if (!$jsapi_ticket || strlen($jsapi_ticket) < 6) {

$ur = "https://api./cgi-bin/ticket/getticket?access_token=$token&type=jsapi";

$res = file_get_contents($ur);

$res = json_decode($res, true);

$jsapi_ticket = $res['ticket'];

@file_put_contents($file1, $jsapi_ticket);

}

$timestamp = time();//生成签名的时间戳

$metas = range(0, 9);

$metas = array_merge($metas, range('A', 'Z'));

$metas = array_merge($metas, range('a', 'z'));

$nonceStr = '';

for ($i=0; $i < 16; $i++) {

$nonceStr .= $metas[rand(0, count($metas)-1)];//生成签名的随机串

}

$string1="jsapi_ticket=".$jsapi_ticket."&noncestr=".$nonceStr."&timestamp=".$timestamp."&url=".$url."";

$signature=sha1($string1);

$root['appid'] = $appid;

$root['nonceStr'] = $nonceStr;

$root['timestamp'] = $timestamp;

$root['signature'] = $signature;

echo json_encode($root);

}

可能遇到的问题:

调用一切正常,页面弹出 {errMsg: config:ok} 但是分享出去不是自己定义好的图片和标题,很可能是公众号没认证,查看一下接口权限。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。