微信的文档几个重叠在一起,有点乱,自己用到就统计一下,减少字数直接上,毕竟懒。

一般说明步骤一​:微信jssdk使用必须在​微信公众平台​进入其​公众号设置​,打开​配置安全域名​才可以。

安全域名则是请求调用微信接口的安全域名,非域名下则会出现权限错误,未授权域名等。

一般说明步骤二​:​引入​其对应的JS文件,这个基本知识不过多解释

一般说明步骤三​:引入文件,调用其​config接口​,配置好对应的配置项即可

一般说明步骤四​:通过ready接口里配置的响应接口在页面加载的时候就可以用,如果需要响应的就不需要放在这里面,​注意:所有的接口需要在config之后,config是其一个异步操作

一般说明步骤五​:error的信息报错会执行error函数,错误信息需要​打开config​中的​debug

简而言之就是如下步骤:

步骤一:配置安全域名(配置JS接口安全域名)
步骤二:引入JS文件
步骤三:使用config接口,写入配置
步骤四:在ready里面配置需要在加载时候就可以用的接口
步骤五:error说明函数

假设调用成功,开启了debug,那么会提示:xxx:ok,xxx是你使用的接口名

假设调用用户取消,开启了debug,那么会提示:xxx:cancel,xxx是你使用的接口名

调用失败时:将会返回具体错误信息

以下是微信官方原版Demo:

注意,一定记得后台配置是否正确,配置js安全域名和appid以及secret

完整的一个微信分享Demo​:​​分享示例​

注意:重要提醒,在微信开发工具上面调试,千万别信报错,因为报错有时候是bug,但是代码是正确的,我写微信分享,正确的代码调试了一周,最后是工具的问题,用真机调试即可,工具就调样式,大致看看就ok,真机双重检验

<?php
require_once "jssdk.php";//使用官方原版的即可
$jssdk = new JSSDK("这里填写你的appid", "你的AppSecret");//去微信公众号里面找
$signPackage = $jssdk->GetSignPackage();//取得签名及其他必要信息的信息包
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>

</body>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
/*
* 注意:
* 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
* 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。
* 3. 常见问题及完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
*
* 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈:
* 邮箱地址:weixin-open@qq.com
* 邮件主题:【微信JS-SDK反馈】具体问题
* 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。
*/
//这里使用wx调用config接口,填写配置项
wx.config({
debug: true,
appId: '<?php echo $signPackage["appId"];?>',
timestamp: <?php echo $signPackage["timestamp"];?>,
nonceStr: '<?php echo $signPackage["nonceStr"];?>',
signature: '<?php echo $signPackage["signature"];?>',
jsApiList: [
// 所有要调用的 API 都要加到这个列表中
'onMenuShareAppMessage',
'onMenuShareTimeline',
'chooseWXPay',
'showOptionMenu',
"updateAppMessageShareData",
"hideMenuItems",
"showMenuItems",
"onMenuShareTimeline",
'onMenuShareAppMessage'
],success: function(res) {
// 以键值对的形式返回,可用的api值true,不可用为false
// 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
}
});
wx.ready(function () { //需在用户可能点击分享按钮前就先调用

});
//wx.success(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
//});
</script>
</html>