微信的文档几个重叠在一起,有点乱,自己用到就统计一下,减少字数直接上,毕竟懒。
一般说明步骤一:微信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>