❶ 微信分享sdk
公众号h5中使用微信js-SDK(个人笔记)通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。
例子为在vue中使用微信JS-SDK,步骤如下:
先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
备注:登录后可在“开发者中心”查看对应的接口权限。
插件方式:
引入js文件方式:
在需要调用JS接口的页面引入如下JS文件,(支持https):
如需进一步提升服务稳定性,当上述资源不可访问时,可改访问:(支持https)。
挂载到Vue原型
与使用JS-SDK配置方式相同,所有需要使用开放标签的页面必须先注入配置信息,并通过openTagList字段申请所需要的开放标签,否则将无法使用(同一个url仅需调用一次)。开放标签的申请和JS接口的申请相互独立,因此是可以同时申请的。
配置成功之后,就可以使用相关的api了。例子为微信支付。
3.分享出去的是链接,不是卡片的原因及解决方案:
原因:微信开放全域名访问后出现的限制。
解决方法:
这会导致别人通过分享卡进来的页面不是自己配置的页面。
解决办法:把路由hash模式改成history模式。(让后端把匹配不到的页面重定向到首页)
开发者需要配合使用微信开放平台提供的SDK进行一次性订阅消息授权请求接入。正确接入SDK后,开发者移动应用会在终端本地拉起微信应用进行订阅消息授权,微信用户确认后微信将拉起开发者移动应用,并带上授权用户openid等信息。
使用方式:引导用户打开;appid=wxaba38c7f163da69bscene=1000template_id=_url=http%3a%2f%2fsupport.qq.comreserved=test#wechat_redirect链接。
可拉起微信打开一次性消息订阅授权页:
使用方式:
如需添加参数,可在redirect_uri后面进行拼接,授权成功之后会带回来。
其他问题请参考:
微信分享提示universallink校验不通过我的是一个老项目需要升级友盟分享的sdk(实际上也是微信和qq的sdk);这边后台给我的配置apple-app-site-association文件的链接,格式是()的,但是设置在备忘录中点开universallink无效,后来后台需改了链接?将端口改为默认端口号,?格式是格式是(),然后备忘录中点开universallink,生效?
然后接着采坑......
在点开分享的时候微信还是提示"由于未验证universallink,......",这边检查了一下,坑的是领导在微信后台设置的账号与我项目用的不匹配,坑爹,?
后面还有几个坑,再次记录一下:
1.分享面板上没有qq,解决:友盟客服提示资源是否导入,我这边是导入了,我这边解决的办法是,白名单为导入(因为我的是老项目,所以替换完sdk后就粗心的没注意修改白名单);
2.qq分享成功以后不回跳,需要配置URLSchemes,对于qq来说,需要设置qq和tencent
3.集成微信分享sdk中的自检函数,通过自检方法后(自检函数会在打印台打印7步,0....6)还是会提示"未验证应用",那就只有一个办法,等,我这边等了大概3周,之前加了一个群,很多同行都遇到这个问题,有些人等的时间短,有些人等的时间长,并且有些人可能说跟成功的分享次数在总分享次数的所占的比重有关,所以就多进行成功分享,所以多分享,多看看,没准哪天就没有这个提示了
微信开放SDK是什么意思微信开放SDK是啥意思1、就是开发工具包应该是可以用这个开发微信相关软件的。
2、微信开放SDK是采用SDK嵌入的方式,为第三方App提供一个与微信进行内容交换的通道,通过SDK的使用,第三方App可以实现分享信息给用户的微信好友和用户的微信朋友圈。
Unity微信登录分享ShareSDK对接流程
官方文档:MobTechShareSDK文档
ShareSDK可用于多个平台登录和分享,无需再用服务端,本文主要介绍安卓端使用ShareSDK,进行微信登录和分享。
当时使用的是Unity2019.4.5,gradle版本4.0.0。
1、到微信开发平台申请创建应用,申请通过后获得appId,appSecret;
2、到MobTech平台创建应用,获得appKey,appSecret;
按照官方文档步骤对接即可;
1、launcherTemplate.gradle文件,把需要的各平台的appId和appSecret写在里面,在ShareSDKDevInfo.cs里面更改是无效的。
以微信平台为例:
2、如果微信应用正在申请,测试可使用Mob官方demo进行测试:
demo应用包名:cn.sharesdk.demo;
demokey.keystore密钥密码和别名密码,均为123456;
demo应用,Mob的appKey:moba0b0c0d0,appSecret:;
demo应用,微信的appId:wx4868b35061f87885,appSecret:;
3、不需要的平台,可以在ShareSDKDevInfo.cs里的DevInfoSet中注释掉;
1、场景中挂载ShareSDK.cs和MobSDK.cs;
2、使用前,必须要提交ShareSDK隐私协议的授权接口:
3、微信登录,使用ShareSDK的获取用户信息接口即可(只会在第一次跳转到第三方平台进行授权),返回结果包含openId,unionId,nickName等信息:
4、微信分享:
微信朋友圈JSSDK分享自定义图片文字1、在微信公众号添加安全域名(制作的H5页面的主域名);
测试阶段,本人是通过修改hosts文件,将对应域名解析为127.0.0.1;?然后将电脑和手机连接至同个局域网下。修改手机代理为电脑在局域网内的IP地址;这样手机就能正常进行测试;
2、引入jssdk??script??src=''
3、配置jssdk,成功后方可使用相关功能,方式如下
wx.config({
debug:false,//开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId:'XX',//必填,公众号的唯一标识
timestamp:XX,//必填,生成签名的时间戳
nonceStr:?xx,//必填,生成签名的随机串
signature:xx,//必填,签名,见附录1??
jsApiList:['onMenuShareTimeline','onMenuShareAppMessage']//必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
第一次接触时看到网上的文章在此对signature没有过多的说明,这里我自己大概说一下,此参数是通过获取公众号的id及secret获取access_token,然后通过access_token获取jsapi_ticket,然后通过时间戳,随机串,当前页面url,通过sha1加密生成;(这里做下说明,此步骤由后台处理后返回给前端即可);
刚接触的时候领导认为纯前端可实现,这。。。确实可以实现,这里就不做过多说明了;至于要后端处理的原因大致为两点1、公众号id和secret在前端实现不安全?2、access_token和jsapi_ticket每日有请求次数的限制,过期时间两小时,所以需要后台在服务器缓存,每两小时获取一次;
4、wx.config配置正确即可通过wx.ready来调用相应功能
wx.ready(function(){
wx.onMenuShareTimeline({??//分享朋友圈
title:'X',//分享标题
link:window.location.href,//分享链接
imgUrl:url,//分享图标
success:function(){
//用户确认分享后执行的回调函数
console.log('分享成功了哟哟哟')
},
cancel:function(){
//用户取消分享后执行的回调函数
}
});
wx.onMenuShareAppMessage({?//?好友分享
title:'',//分享标题
desc:'',//分享描述
link:window.location.href,//分享链接
imgUrl:'',//分享图标
success:function(){
//用户确认分享后执行的回调函数
},
cancel:function(){
//用户取消分享后执行的回调函数
}
});
});
总结:其实对于前端要处理的很少,只要从后台获取signature签名,调用方法即可实现;具体可看官方文档;首次接触的小伙伴不要被吓到,就是如此简单;
自定义微信分享链接(使用JS-SDK)+实现预览pdf可参考:微信JS-SDK说明文档
此时可能出现白名单错误(忘截图了),需要在微信公众号中设置错误中的IP
注意:access_token和ticket都需要缓存
4.获取签名signature
将以上内容以键值对形式拼接,类似如下
本地引入sha1算法(需网上查找)
将上述拼接的字符串以参数的形式传递到sha1中得到signature
signature=sha1(拼接完的字符串)
验证signature是否正确
将appId,nonceStr,timestamp和signature返回给前端
官网上是这样描述的:
这时候调用updateAppMessageShareData,updateTimelineShareData的时候就可以生效了,具体原理不清楚。。
注意:imgUrl配置有严格的要求
尺寸120x120,大小不超过10K,不支持GIF格式。必须采用https协议(最好写完整url),不支持base64。由于我使用的是vue,在webpack打包时图片小于10k的是会自动打包成base64导致无法正常显示图片,因此在webpack.base.config.js中修改默认配置
由于在网页中直接查看pdf的路径是无法在微信中查看(安卓)和分享(ios),因此使用pdf插件进行优化---pdf.js。其原理是绘制成canvas,最终在真机上放大时可能出现模糊的问题。
创建之后控制台会报错出现跨域问题,因为pdf.js不支持跨域访问。此时可以将错误跨域信息在上一步你引入的文件中查找,然后将其判断语句注释掉即可解决这个问题。最后会发现pdf出现在这个容器中(忘截图了),也实现了微信中预览和分享的功能。
❷ 如何在DISCUZ论坛引入微信JSSDK与分享功能
首先在公众号管理后台“公众号设置”的“功能设置”里填写JS接口安全域名,域名需要通过ICP备案,没有备案域名可以用SAE、BAE等平台。自定义分享功能需要通过微信认证才能使用,没有认证的可以跟关系好的朋友借用权限,在他的JS接口安全域名设置这里填上你的域名和共享同一个开发者ID。没有认证微信号的,可参考文章末尾的办法。
2、下载官方示例代码:jssdk-php.zip
下载后解压,然后在DZ根目录新建一个文件夹命名为jssdk 把解压得到的jssdk.php直接上传到刚建设好的文件夹中。
3、修改header.htm模板文件
在DZ模板文件header.htm中添加如下代码
❸ 微信公众号开发之如何使用JSSDK
微信开发交流群:148540125
欢迎留言、转发、打赏
系列文章参考地址 极速开发微信公众号
项目源码参考地址 点我点我--欢迎Start
服务号、订阅号可以通过登录 微信公众平台 查看 开发>接口权限
使用JSSDK主要包括
1、判断当前客户端版本是否支持指定JS接口、
2、分享接口(微信认证)
3、图像接口
4、音频接口
5、智能接口(识别语音并返回结果)
6、设备信息(获取网络状态)
7、地理位置
8、界面操作
9、微信扫一扫
10、微信小店(服务号必须通过微信认证)
11、微信卡券 (微信认证)
12、微信支付(服务号必须通过微信认证)
官方参考文档
步骤一:绑定域名
先登录微信公众平台进入 公众号设置 的 功能设置 里填写 JS接口安全域名 。
步骤二:引入JS文件
在需要调用JS接口的页面引入如下JS文件,(支持https): http://res.wx.qq.com/open/js/jweixin-1.0.0.js
如需使用摇一摇周边功能,请引入 http://res.wx.qq.com/open/js/jweixin-1.1.0.js
备注:支持使用 AMD/CMD 标准模块加载方法加载
步骤三:通过config接口注入权限验证配置
签名算法生成规则
请 官方参考文档
下面具体来讲讲 开源项目 weixin_guide 中的封装。
使用的时候只要在Controller方法上添加一个拦截器 JSSDKInterceptor 来实现签名验证再将 wx.config 需要的参数设置对应的属性在页面上进行获取。
拦截器实现如下:
在Controller中使用
JSP页面上面使用
测试结果
在AppConfig 中添加路由 me.add("/jssdk", JSSDKController.class,"/view"); 手机中访问 http://域名[/项目名称]/jssdk ,如果设置了 debug= true 成功了就会弹出
如果出现 {"errorMsg":"config:invalid url domian"} 请检查 步骤一:绑定域名 与你访问的域名是否在安全域名列表当中
步骤四:通过ready接口处理成功验证
步骤五:通过error接口处理失败验证
步骤六:接口调用
拦截器具体实现 参考地址 点这里
js 接口调用参考地址 点这里
以上就是JSSDK使用的介绍。
欢迎留言、转发、打赏项目
源码参考地址 点我点我--欢迎Start
❹ 微信JSSDK的使用及小程序相关功能的使用
公众号和小程序在日常的软件开发中越来越常见, 但在使用H5内嵌的方式进行开发时,公众号与小程序的分享功能实现方式存在差异。公众号分享需借助微信提供的SDK,而小程序的分享功能则相对更为直接。
小程序分享较为简单,通常在页面生命周期中设置 onShareAppMessage 函数即可实现。而公众号分享则需要调用微信JS-SDK,以获取微信特有的能力,如分享、扫一扫、卡券、支付等。
微信 JS-SDK 是为网页开发者提供的基于微信内的网页开发工具包,帮助开发者实现包括拍照、选图、语音、位置等手机系统功能,并直接使用微信特有的能力,为微信用户提供更优质的体验。
使用微信 JS-SDK 的基本步骤如下:
1. **绑定域名**:进入微信公众平台的“公众号设置”-“功能设置”,填写“JS接口安全域名”。
2. **引入 JS 文件**:在需要调用 JS 接口的页面引入指定的 JS 文件,支持 HTTPS。
3. **注入权限验证配置**:所有需要使用 JS-SDK 的页面必须先注入配置信息,以确保调用成功。
4. **处理成功验证**:通过 ready 接口处理成功验证。
5. **处理失败验证**:通过 error 接口处理验证失败的情况。
6. **判断客户端版本**:在执行任何 JS 接口调用之前,应先判断当前客户端版本是否支持指定的 JS 接口。
7. **调用分享功能**:在通过上述步骤验证成功后,可以调用 wx 对象(或 jWeixin 对象)来实现分享功能。
此外,微信 JS-SDK 提供了多种接口,用于获取用户信息、调用微信支付、生成二维码等,具体用法请参考官方文档。
希望以上信息能帮助开发者更好地理解和使用微信 JS-SDK,实现公众号与小程序的高效开发。
❺ 微信开发者 jssdk怎么使用
、先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
备注:登录后可在“开发者中心”查看对应的接口权限。
2、页面引入JS:http://res.wx.qq.com/open/js/jweixin-1.0.0.js
3、所有需要使用JS-SDK的页面必须先注入配置信息
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名,见附录1
jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
4、签名算法
生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。