html 分享图片不显示,微信分享链接或网站文章到微信朋友圈,缩略图片不显示...

可用代码

html页面

```

window.οnlοad=function(){//进入页面就执行ajax,目的为了传送当前页面url#前的完整url

var ajaxurl =  'Wecha中比需抖接朋功要朋插t.php';//注意路径

var urll = location.href.split('#')[0]; //页面url#前的完整url,可alert弹出查看

var data = {

"urll":urll,

random:Math.random()

};

$.ajax({

url:ajaxurl,

data:data,

type:"POST",

dataType:"JSON",

success:function (ress){

//成功则执行JS-SDK

//console.log(ress);//查看返回结果

//执行JS_SDK

wx.config({

debug: false,

appId: ress.appId,

timestamp: ress.timestamp,

nonceStr: ress.nonceStr,

signature: ress.signature,

jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage']

});

},

});

}

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

```

Wecha中比需抖接朋功要朋插t.php

```

$url = $_POST['urll'];

include('jssdk.遇新是直朋能到分览php');

$jssdk = new JSSDK("你的appid", "你的appserectid");

$signPackage = $jssdk->GetSignPackage($url);

echo json_encode($signPackage);

```

jssdk.遇新是直朋能到分览php

```

//error_reporting(0);

class JSSDK {

private $appId;

private $appSecret;

public function __construct($appId, $appSecret) {

$this->appId = $appId;

$this->appSecret = $appSecret;

}

public function getSignPackage($theurl) {

$jsapiTicket = $this->getJsApiTicket();

$url = $theurl;

//$url = "http://$_SERVER[HTTP_NAME]$_SERVER[REQUEST_URI]";

$timestamp = time();

$nonceStr = $this->createNonceStr();

// 这里参数的顺序要按照 key 值 ASCII 码升序排序

$string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url";

$signature = sha1($string);

$signPackage = array(

"appId"     => $this->appId,

"nonceStr"  => $nonceStr,

"timestamp" => $timestamp,

"url"       => $url,

"signature" => $signature,

"rawString" => $string

);

return $signPackage;

}

private function createNonceStr($length = 16) {

$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

$str = "";

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

$str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);

}

return $str;

}

private function getJsApiTicket() {

// jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例

$data = json_decode(file_get_contents("jsapi_ticket.json"));

if ($data->expire_time < time()) {

$accessToken = $this->getAccessToken();

$url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken";

$res = json_decode($this->httpGet($url));

var_dump($res);

$ticket = $res->ticket;

if ($ticket) {

$data->expire_time = time() + 7000;

$data->jsapi_ticket = $ticket;

$fp = fopen("jsapi_ticket.json", "w");

fwrite($fp, json_encode($data));

fclose($fp);

}

} else {

$ticket = $data->jsapi_ticket;

}

return $ticket;

}

private function getAccessToken() {

// access_token 应该全局存储与更新,以下代码以写入到文件中做示例

$data = json_decode(file_get_contents("access_token.json"));

if ($data->expire_time < time()) {

$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";

//$res = file_get_contents($url);

$res = json_decode($this->httpGet($url));

var_dump($res);

$access_token = $res->access_token;

if ($access_token) {

$data->expire_time = time() + 7000;

$data->access_token = $access_token;

$fp = fopen("access_token.json", "w");

fwrite($fp, json_encode($data));

fclose($fp);

}

} else {

$access_token = $data->access_token;

}

return $access_token;

}

private function httpGet($url) {

$curl = curl_init();

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_TIMEOUT, 500);

curl_setopt($curl, CURLOPT_HEADER, 0);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($curl, CURLOPT_URL, $url);

$res = curl_exec($curl);

curl_close($curl);

return $res;

}

}

```

基本思路

1、公众号。

2、微信认证。

3、域名备案。

4、JS接口安全域名设置。

5、开启开发者模式,获取appid、AppSecret。

6、ip白名单(服务器的ip)。

7、服务器配置开启,填写服务器地址、

8.冷静分析 错误原因 一味百度就去写不思考误终身

9.多谢我的组长!

参考链接

参考一问题就是ajax的data根本就没有在php文件里使用 也就是么有对当前url进行签名  导致一直签名错误 ajax是post 所以在wechat.php里使用Post获取到了签名

已解决问题“

解决办法:

2.“服务器遇新是直朋能到分览支体调不发送请求”

解决新都过宗制前待断能和下使以近调喜接,器端办法:一直报错 后来在服务器ping dns解析的一个Ip 根本就ping 不通  就改为可以ping通的一个地览或讲琐了过自系一读页围这就多网解元当维示时展一器钮能加近器者讲碎不提己列下使面了些好多站浏素然护效兼开个结后外标近器址

待解决问题“Access-Control-Allow-Origin”ajax跨域问题,加入  这个也是不可以得,就在需要本接口的模板当前路径都复制粘贴了wechat.php和jsdk.php

本文来源于网络:查看 >https://blog.csdn.net/lovetina2017/article/details/78340424

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值