首页 > 编程知识 正文

微信公众平台登录,建立微信公众号收费吗

时间:2023-05-03 08:14:15 阅读:54033 作者:698

3358 www.Sina.com/: https://developers.weixin.QQ.com/doc/offi account/OA _ web _ apps/js-SDK.html

微信- SDK是微信发布平台为网页开发人员提供的基于微信内部的网页开发工具包。

通过微信- SDK,微信开发者可以通过微信高效地使用手机系统的能力,如拍照、照片选择、语音、位置等,同时直接使用微信的共享、扫描等微信特有的能力

官方地址

使用步骤:

1 .开发-基本配置页面

获取开发者ID、开发者密码,设置IP白名单

IP白名单服务器的IP地址

2 .公众号设置-功能设置

在微信公众号请求网页许可之前,开发人员必须注册许可回调域名。

注意:这里填写的是域名,所有域名。 许可后,域名下的所有其他页面都可以被许可。一.配置

1 .部署js文件

在需要调用JS接口的页面上导入以下JS文件。 (支持https ) http://如果需要进一步提高RES.wx.QQ.com/open/js/j weixin-1.6.0.js服务的稳定性,如果无法访问上述资源,则可以访问

通过config界面注入权限验证配置

使用JS-SDK的所有页面必须先注入配置信息,才能调用。 (只要调用一次相同的url,更改url的SPA的web app就可以在每次更改url时调用。 当前,Androidwechat客户端不支持推送状态H5新功能,因此使用推送状态实现web app页面时签名将失败

wx.config (打开debug : true,//调试模式后,所有调用的api返回值将在客户端的alert中显示。 要查看传入的参数,可以在pc端打开。 参数信息以log输出,仅在pc侧打印。 appId: '、//必需、公共编号的唯一标识符timestamp: '、//必需、生成签名的时间戳nonceStr: '、//必需、生成签名的随机字符串signature: '、

$(document ).ready(function () /当前页面的urlvarglobalurl=location.href.split (' # ' ) )0); //url代码varURL=encodeuri(globalURL ); //传递到后端的url完全链路var param={ url: url,}; 发送ajax请求以获取数据(如微信签名) $.Ajax(type:'post ),//此处请求的接口因后端响应而异(/app/open ) 要自行更改请求后端加载数据的路径的dataType: 'JSON ',success:function(result ) console.log(wx.config )-- back $(function ) ) varsignurl=window.location.href.split (' # ' ) [0]; //这里的可能值是if(result.code==0000 ) wx.config ) debug:true,appId: data.appid,tition

jsApiList: [] }) } else { console.log("error response"); } } }); });

3.通过ready接口处理成功验证

wx.ready(function(){// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作.// 所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。// 对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。});

4.通过error接口处理失败验证

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

5.微信jssdk调用成功

完成以上步骤,微信jssdk就调用成功了,可以可以微信官方文档的方法

三.常见错误及解决方法

参考文档:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Global_Return_Code.html

公众号每次调用接口时,可能获得正确或错误的返回码,开发者可以根据返回码信息调试接口,排查错误。

invalid url domain当前页面所在域名与使用的appid没有绑定,请确认正确填写绑定的域名,仅支持80(http)和443(https)两个端口,因此不需要填写端口号(一个appid可以绑定三个有效域名 )。

invalid signature签名错误。建议按如下顺序检查:

确认签名算法正确,可用http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验。

确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr, timestamp一致。

确认url是页面完整的url(请在当前页面alert(location.href.split('#')[0])确认),包括'http(s)://'部分,以及'?'后面的GET参数部分,但不包括'#'hash后面的部分。

确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致。

确保一定缓存access_token和jsapi_ticket。

确保你获取用来签名的url是动态获取的,动态页面可参见实例代码中php的实现方式。如果是html的静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去'#'hash部分的链接(可用location.href.split('#')[0]获取,而且需要encodeURIComponent),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。

the permission value is offline verifying这个错误是因为config没有正确执行,或者是调用的JSAPI没有传入config的jsApiList参数中。建议按如下顺序检查:

确认config正确通过。

如果是在页面加载好时就调用了JSAPI,则必须写在wx.ready的回调中。

确认config的jsApiList参数包含了这个JSAPI。

permission denied该公众号没有权限使用这个JSAPI,或者是调用的JSAPI没有传入config的jsApiList参数中(部分接口需要认证之后才能使用)。

function not exist当前客户端版本不支持该接口,请升级到新版体验。

为什么6.0.1版本config:ok,但是6.0.2版本之后不ok(因为6.0.2版本之前没有做权限验证,所以config都是ok,但这并不意味着你config中的签名是OK的,请在6.0.2检验是否生成正确的签名以保证config在高版本中也ok。)

在iOS和Android都无法分享(请确认公众号已经认证,只有认证的公众号才具有分享相关接口权限,如果确实已经认证,则要检查监听接口是否在wx.ready回调函数中触发)

服务上线之后无法获取jsapi_ticket,自己测试时没问题。(因为access_token和jsapi_ticket必须要在自己的服务器缓存,否则上线后会触发频率限制。请确保一定对token和ticket做缓存以减少2次服务器请求,不仅可以避免触发频率限制,还加快你们自己的服务速度。目前为了方便测试提供了1w的获取量,超过阀值后,服务将不再可用,请确保在服务上线前一定全局缓存access_token和jsapi_ticket,两者有效期均为7200秒,否则一旦上线触发频率限制,服务将不再可用)。

uploadImage怎么传多图(目前只支持一次上传一张,多张图片需等前一张图片上传之后再调用该接口)

没法对本地选择的图片进行预览(chooseImage接口本身就支持预览,不需要额外支持)

通过a链接(例如先通过微信授权登录)跳转到b链接,invalid signature签名失败(后台生成签名的链接为使用jssdk的当前链接,也就是跳转后的b链接,请不要用微信登录的授权链接进行签名计算,后台签名的url一定是使用jssdk的当前页面的完整url除去'#'部分)

出现config:fail错误(这是由于传入的config参数不全导致,请确保传入正确的appId、timestamp、nonceStr、signature和需要使用的jsApiList)

如何把jsapi上传到微信的多媒体资源下载到自己的服务器(请参见文档中uploadVoice和uploadImage接口的备注说明)

Android通过jssdk上传到微信服务器,第三方再从微信下载到自己的服务器,会出现杂音(微信团队已经修复此问题,目前后台已优化上线)

绑定父级域名,是否其子域名也是可用的(是的,合法的子域名在绑定父域名之后是完全支持的)

在iOS微信6.1版本中,分享的图片外链不显示,只能显示公众号页面内链的图片或者微信服务器的图片,已在6.2中修复

是否需要对低版本自己做兼容(jssdk都是兼容低版本的,不需要第三方自己额外做更多工作,但有的接口是6.0.2新引入的,只有新版才可调用)

该公众号支付签名无效,无法发起该笔交易(请确保你使用的jweixin.js是官方线上版本,不仅可以减少用户流量,还有可能对某些bug进行修复,拷贝到第三方服务器中使用,官方将不对其出现的任何问题提供保障,具体支付签名算法可参考 JSSDK微信支付一栏)

目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题已在Android6.2中修复

uploadImage在chooseImage的回调中有时候Android会不执行,Android6.2会解决此问题,若需支持低版本可以把调用uploadImage放在setTimeout中延迟100ms解决

require subscribe错误说明你没有订阅该测试号,该错误仅测试号会出现

getLocation返回的坐标在openLocation有偏差,因为getLocation返回的是gps坐标,openLocation打开的腾讯地图为火星坐标,需要第三方自己做转换,6.2版本开始已经支持直接获取火星坐标

查看公众号(未添加): "menuItem:addContact"不显示,目前仅有从公众号传播出去的链接才能显示,来源必须是公众号

ICP备案数据同步有一天延迟,所以请在第二日绑定

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。