微信公众号 php sdk,php微信公众号js-sdk开发应用

本文详细介绍了如何在微信公众号中使用JS-SDK进行分享功能的实现,包括配置安全域名、调用`onMenuShareAppMessage`和`chooseImage`接口,以及在不同场景(公众号、好友分享、朋友圈)下接口的不同应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试js的接口功能,我用的是BAE服务器不是SAE服务器。SAE服务器不能写入文件,测试会出问题。

什么叫js-sdk,我先演示js-sdk接口的具体作用。

我在微信随便打开一片推送文章如下图:

f5d964a954151f9b3f63c4dce7047584.png

点开第一篇文章

13d3c10b19b1906a084daefdcde63dfb.png

上面就是我们的连接文章,如果我们把这篇文章发送给朋友,显示效果如下图:

452513ed7f3395af5ed749f24a1cfb9e.png

分享到朋友圈我们再来看看效果:

de212ab42dad200d72639006c6491dec.png

为什么同样是文章连接,在公众号、发送给朋友、发送到朋友圈显示的界面效果不一样。公众号的显示效果是因为微信公众帐号在推送的时候调用了微信的消息接口,而后两者是因为页面调用js-sdk相关的sdk接口。

发送给朋友调用了js接口的获取“分享给朋友”按钮点击状态及自定义分享内容接口。

发送给朋友圈调用了js接口的获取“分享到朋友圈”按钮点击状态及自定义分享内容接口。

下面我们来实现调用js-sdk接口的步骤:

第一步:微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

如下图:

3139d50edd82f6158e6d4018f6e635c7.png

只有置于该域名下的页面才能调用js接口。

1999cae634b080ab93c363eb45f0edda.png

前面3 个php文件是配置文件,不要动它,sample.php是我们在微信中打开的连接页面,在这个页面中我们来编写我们的页面代码。这个文件我用来测试,里面的代码跟原版已经不同。

// echo "nihao";

require_once "jssdk.php";

$jssdk = new JSSDK("wxaf471be5d2bc9521", "93f5c3817074d43e7a7ab3f403cc72dd");//JSSDK中的参数是appid和appsecret。

$signPackage = $jssdk->GetSignPackage();//获取配置参数。

?>

我靠
猪八戒

你好

唐生

//这个是js-sdk文件,一定要引入。

var button = document.getElementsByTagName("button");

var btn = document.getElementById("btn");

var div = document.getElementsByTagName("div")[0];

var btn1 = document.getElementById("btn1");

//wx表示一个js-sdk构建的一个对象。config()是它的一个方法,这个接口用来验证配置。

wx.config({

debug: true,//true表示每调用一个接口信息都会在页面alert一段字符串。方便测试过程中国是否能正确调用接口。

appId: '<?php echo $signPackage["appId"];?>',

timestamp: <?php echo $signPackage["timestamp"];?>,

nonceStr: '<?php echo $signPackage["nonceStr"];?>',

signature: '<?php echo $signPackage["signature"];?>',

//上面的4个参数,如果你像深入了解其来源就去查看jssdk.php代码。测试过程不需要对上面的代码做任何操作。

jsApiList: [

// 所有要调用的 API 都要加到这个列表中

'onMenuShareAppMessage',//获取“分享给朋友”按钮点击状态及自定义分享内容接口。

'chooseImage',//获取手机相片接口

'openLocation'//获取微信地图接口

]

});

//所有的js调用接口都要放到下面的ready()中。

wx.ready(function () {

// 在这里调用 API

//获取“分享给朋友”按钮点击状态,点击后发送给朋友微信,微信上的推送显示内容就是下面的数据

wx.onMenuShareAppMessage({

title: '大圣', // 分享标题

desc: '我要坚持', // 分享描述

link: 'http://www.baidu.com', // 分享链接

imgUrl: 'http://discuz.comli.com/weixin/weather/icon/cartoon.jpg', // 分享图标

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

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

success: function () {

// 用户确认分享后执行的回调函数

alert("success");

},

cancel: function () {

// 用户取消分享后执行的回调函数

alert("error");

}

});

//拍照或从手机相册选择。点击页面上的按钮就可以调用手机里的相册。

btn.onclick = function(){

wx.chooseImage({

count: 1, // 默认9

sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有

sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有

success: function (res) {

var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片

}

})

};

//微信内置地图接口。点击该按钮就可转到显示当前位置的地图页面

btn1.onclick = function() {

wx.openLocation({

latitude: 0, // 纬度,浮点数,范围为90 ~ -90

longitude: 0, // 经度,浮点数,范围为180 ~ -180。

name: '', // 位置名

address: '', // 地址详情说明

scale: 1, // 地图缩放级别,整形值,范围从1~28。默认为最大

infoUrl: '' // 在查看位置界面底部显示的超链接,可点击跳转

});

}

});

// wx.checkJsApi({

// jsApiList: ['onMenuShareAppMessage'], // 需要检测的JS接口列表,所有JS接口列表见附录2,

// success: function(res) {

// // 以键值对的形式返回,可用的api值true,不可用为false

// // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}

// alert("success");

// }

// });

// btn.onclick = function() {

// div.innerText = "齐天大圣";

// wx.onMenuShareAppMessage({

// title: '大圣', // 分享标题

// desc: '我要坚持', // 分享描述

// link: 'http://www.baidu.com', // 分享链接

// imgUrl: 'http://discuz.comli.com/weixin/weather/icon/cartoon.jpg', // 分享图标

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

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

// success: function () {

// // 用户确认分享后执行的回调函数

// alert("success");

// },

// cancel: function () {

// // 用户取消分享后执行的回调函数

// alert("error");

// }

// });

// }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

微信公众平台 PHP 开发包,细化了微信的各项接口操作。调用官方API,具有更灵活的消息分类响应方式,支持链式调用操作 。 主要功能 接入验证 (初级权限) 自动回复(文本、图片、语音、视频、音乐、图文) (初级权限) 菜单操作(查询、创建、删除) (菜单权限) 客服消息(文本、图片、语音、视频、音乐、图文) (认证权限) 二维码(创建临时、永久二维码,获取二维码URL) (服务号、认证权限) 长链接转短链接接口 (服务号、认证权限) 分组操作(查询、创建、修改、移动用户到分组) (认证权限) 网页授权(基本授权,用户信息授权) (服务号、认证权限) 用户信息(查询用户基本信息、获取关注者列表) (认证权限) 多客服功能(客服管理、获取客服记录、客服会话管理) (认证权限) 媒体文件(上传、获取) (认证权限) 高级群发 (认证权限) 模板消息(设置所属行业、添加模板、发送模板消息) (服务号、认证权限) 卡券管理(创建、修改、删除、发放、门店管理等) (认证权限) 语义理解 (服务号、认证权限) 获取微信服务器IP列表 (初级权限) 微信JSAPI授权(获取ticket、获取签名) (初级权限) 数据统计(用户、图文、消息、接口分析数据) (认证权限) > 备注: > 初级权限:基本权限,任何正常的公众号都有此权限 > 菜单权限:正常的服务号、认证后的订阅号拥有此权限 > 认证权限:分为订阅号、服务号认证,如前缀服务号则仅认证的服务号有此权限,否则为认证后的订阅号、服务号都有此权限 > 支付权限:仅认证后的服务号可以申请此权限 初始化动作  $options = array(     'token'=>'tokenaccesskey', //填写你设定的key     'encodingaeskey'=>'encodingaeskey', //填写加密用的EncodingAESKey     'appid'=>'wxdk1234567890', //填写高级调用功能的app id, 请在微信开发模式后台查询     'appsecret'=>'xxxxxxxxxxxxxxxxxxx' //填写高级调用功能的密钥     );  $weObj = new Wechat($options); //创建实例对象  //TODO:调用$weObj各实例方法   标签:wechat
微信公众号JS-SDK签名算法是用来在网页中调用微信公众号接口时验证身份和保护数据安全的一种机制。下面我来介绍一下如何使用PHP语言实现该签名算法。 1. 首先,你需要获取微信公众号的appid和appsecret,这些信息可以在公众号的开发者后台获取。 2. 在你的PHP代码中,引入微信官方提供的SDK文件,即WechatJSSDK类文件。 3. 创建一个WechatJSSDK对象,并将公众号的appid和appsecret作为参数传递给构造函数。 ```php require_once 'WechatJSSDK.php'; $wechatJSSDK = new WechatJSSDK('your_appid', 'your_appsecret'); ``` 4. 调用WechatJSSDK对象的getSignature方法,传递当前网页的URL作为参数。该方法将返回一个数组,其中包含appId、timestamp、nonceStr和signature。 ```php $url = 'http://example.com/page.html'; $signature = $wechatJSSDK->getSignature($url); ``` 5. 最后,将获取到的signature数组中的数据输出到前端页面,供前端JS调用。 ```php echo json_encode($signature); ``` 通过以上步骤,你就可以在PHP中实现微信公众号JS-SDK签名算法了。当网页加载时,可以获取到签名数据,然后在前端JS中初始化微信JS-SDK,进行公众号的相关操作,比如获取用户信息、分享到朋友圈等。 需要注意的是,你需要将WechatJSSDK类文件正确引入,并根据自己的appid和appsecret填写正确的参数。另外,微信的官方文档中也提供了详细的签名算法说明,你可以参考官方文档进行更深入的学习和理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值