开发工具也能直接获取
【createWxaShortLinkAsync】两天小程序是不是出了这个新功能?[图片] 小程序 - 右上角 - 可以点击「复制链接」- 然后console中会调用【createWxaShortLinkAsync】这个新的API,生成一个短链,数据格式为:mp://xxxxxxx [图片] 然后将复制的链接发送给朋友 - 消息体为mp://xxxxxxx - 自己点击发送的消息 - 即可跳转到小程序 [图片] ============================ 这个新功能,可以拓展出一些怎样可用性的功能出来呢?
2021-11-02怎么搞的
这种mp://2gDKXMrvNnJcD3A链接怎么生成?mp://2gDKXMrvNnJcD3A 这种链接可以直接在消息中打开小程序,请问是如何做到的,文档没有说明!![图片]
2021-10-28laravel6.0 JS页面代码 $(function(){ wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '{{$__appid}}', // 必填,公众号的唯一标识 timestamp: '{{$__timestamp}}' , // 必填,生成签名的时间戳 nonceStr: '{{$__noncestr}}', // 必填,生成签名的随机串 signature: '{{$__signature}}',// 必填,签名 jsApiList: [ 'scanQRCode', ] // 必填,需要使用的JS接口列表 }); wx.error(function(res){ // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 alert(res.errMsg); }); wx.ready(function(){ // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 }); }); function scans() { wx.scanQRCode({ needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果, scanType: ["qrCode"], // 可以指定扫二维码还是一维码,默认二者都有 success: function (res) { var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果 alert(result); } }); } public function writeScanView(Request $request){ $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; $url=urlencode("$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"); $ticket = $this->getGzhJsApiTicket(); $noncestr = strtolower(Str::random(10)); // 10位随机数 $timestamp = time(); // $string1 = "jsapi_ticket=$ticket&noncestr=$noncestr&timestamp=$timestamp&url=$url"; $data = [ "jsapi_ticket"=>$ticket, "noncestr"=>$noncestr, "timestamp"=>$timestamp, "url"=>$url, ]; ksort($data); $string1 = ToUrlParams($data); $signature = sha1($string1); $__appid = gzh_appid; $__timestamp = $timestamp; $__noncestr = $noncestr; $__signature = $signature; return view("advertisers.writeScan",compact('__appid','__timestamp','__noncestr','__signature'))->with("title","扫码"); }
请你们出面解决一下scanQRCode为什么不行,chooseWXPay(支付)可以;?只管收钱了吗同样的签名 jsApiList: [ 'scanQRCode', ] // 这个就不行 jsApiList: [ 'chooseWXPay', ] // 这个就可以 支付接口都可以了,扫一扫却不可以
2020-07-10楼主有没有解决[图片][图片]
微信jssdk,config:invalid signature ?被这个问题困扰了两天,一直这个错……疯了要 1:获取ticket和token是后台做的反向代理,确认type=jsapi 2:获取签名这一步是前端自己做的,所以不存在网上说的那些传给后台需要encode之类的东西,也不会出现莫名其妙加了端口名等等。 3:看网上各种资料,一度怀疑就是url导致的错误,后面干脆直接把url的参数都干掉了,更加没有所谓的#,就是一个简单的link,类似于这样https://abc.net/index 4: 网上说的那些个步骤都已经验证过了,什么存储ticket和toekn,什么签名验证工具,什么大写的S等等,都仔细检查了没问题 5:后来怀疑是缓存ticket和token的问题,但是也没有出现别人说的刷新一下就好了的问题,每次两个小时的有效期,一天下来也试过好多次了,依旧无解
2020-07-10程序打印 appId: '****', // 必填,公众号的唯一标识 timestamp: '1594370910' , // 必填,生成签名的时间戳 nonceStr: 'R95Wd41OzU', // 必填,生成签名的随机串 signature: 'cef29f3055e71f49183994beb52f634e5208f6b1',array(6) { ["protocol"]=> string(7) "http://" ["url"]=> string(51) "http%3A%2F%2Floyalty.fz1t.com%2Fadv%2FwriteScanView" ["string1"]=> string(196) "jsapi_ticket=HoagFKDcsGMVCIY2vOjf9of3bHXv6p-WLG21GArGsk0R1rTAcgtojvEHR-ns9X5Dr6ziNeWe_k_q7PUTMExFNA&noncestr=R95Wd41OzU×tamp=1594370910&url=http%3A%2F%2Floyalty.fz1t.com%2Fadv%2FwriteScanView" ["timestamp"]=> int(1594370910) ["noncestr"]=> string(10) "R95Wd41OzU" ["ticket"]=> string(86) "HoagFKDcsGMVCIY2vOjf9of3bHXv6p-WLG21GArGsk0R1rTAcgtojvEHR-ns9X5Dr6ziNeWe_k_q7PUTMExFNA" } 校验 [图片] [图片] 校验百分百,怎么都是对的。url encode 或者 不encode 结果一样。手机就一直显示签名错误@Tx
微信公众号开发调用jssdk,配置时总是 invalid signature ,提示非法签名?首先贴上必要信息: 开发者ID(AppID):wx3806a4c78e7bf173 原始ID:gh_2314fcde77a4 [图片] [图片] 以上是公众号本身的配置 接下来放一下,我这边的config代码 [代码]const modeList = [[代码][代码] [代码][代码]'updateAppMessageShareData'[代码][代码],[代码][代码] [代码][代码]'updateTimelineShareData'[代码][代码],[代码][代码] [代码][代码]'onMenuShareAppMessage'[代码][代码],[代码][代码] [代码][代码]'onMenuShareTimeline'[代码][代码],[代码][代码]];[代码] [代码]const initConfig = async (res) => {[代码][代码] [代码][代码]const options = {[代码][代码] [代码][代码]debug: !isProd,[代码][代码] [代码][代码]appId: res.appId, [代码][代码]// 必填,公众号的唯一标识[代码][代码] [代码][代码]timestamp: res.timestamp, [代码][代码]// 必填,生成签名的时间戳[代码][代码] [代码][代码]nonceStr: res.nonceStr, [代码][代码]// 必填,生成签名的随机串[代码][代码] [代码][代码]signature: res.signature, [代码][代码]// 必填,签名,见附录1[代码][代码] [代码][代码]jsApiList: modeList,[代码][代码] [代码][代码]}[代码][代码] [代码][代码]console.log([代码][代码]'config options::----------------------------'[代码][代码], options);[代码][代码] [代码][代码]wx.config(options);[代码][代码] [代码][代码]// ready[代码][代码] [代码][代码]wx.ready(() => {[代码][代码] [代码][代码]console.log([代码][代码]'config success::----------------------------'[代码][代码]);[代码][代码] [代码][代码]// 分享到朋友圈[代码][代码] [代码][代码]wx.updateTimelineShareData({[代码][代码] [代码][代码]title: [代码][代码]''[代码][代码], [代码][代码]// 分享标题[代码][代码] [代码][代码]link: [代码][代码]''[代码][代码], // 分享链接[代码][代码] [代码][代码]imgUrl: [代码][代码]''[代码][代码], [代码][代码]// 分享图标[代码][代码] [代码][代码]success: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]// 用户确认分享后执行的回调函数[代码][代码] [代码][代码]},[代码][代码] [代码][代码]cancel: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]// 用户取消分享后执行的回调函数[代码][代码] [代码][代码]},[代码][代码] [代码][代码]});[代码][代码] [代码][代码]// 分享给朋友[代码][代码] [代码][代码]wx.updateAppMessageShareData({[代码][代码] [代码][代码]title: [代码][代码]''[代码][代码], [代码][代码]// 分享标题[代码][代码] [代码][代码]link: [代码][代码]''[代码][代码], // 分享链接[代码][代码] [代码][代码]imgUrl: [代码][代码]''[代码][代码], [代码][代码]// 分享图标[代码][代码] [代码][代码]desc: [代码][代码]''[代码][代码], [代码][代码]// 分享描述[代码][代码] [代码][代码]success: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]// 用户确认分享后执行的回调函数[代码][代码] [代码][代码]},[代码][代码] [代码][代码]cancel: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]// 用户取消分享后执行的回调函数[代码][代码] [代码][代码]},[代码][代码] [代码][代码]});[代码][代码] [代码][代码]})[代码][代码] [代码][代码]// error[代码][代码] [代码][代码]wx.error((res) => {[代码][代码] [代码][代码]console.log([代码][代码]'catch config error :: =============== ::'[代码][代码], res);[代码][代码] [代码][代码]})[代码][代码]}[代码]以上代码执行之后出现如下问题 [代码]{[代码][代码] errMsg: [代码][代码]"config:fail,Error: 系统错误,错误码:63002,invalid signature [20190919 17:06:41][]"[代码][代码] jsApiList: [][代码][代码]}[代码]差了错误代码之后,发现是非法签名,好了,我先去了https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign这个校验网站校验了,signature 没有问题两边一致,但是config一直提示非法。 然后我去了https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html这边看常见解决办法。试了个遍。然而并没有效果,另外,恕我直言这个文档真实辣鸡。可能你们的核心已经是小程序了,但是小程序的BUG也一堆没修。 [图片] 然后吐槽一下,这个错误码的返回,之前有返回过config:fail,Error: 系统错误,错误码:63002,invalid signature [20190919 17:06:41][undefind] 这样的格式,还不容易变成 config:fail,Error: 系统错误,错误码:63002,invalid signature [20190919 17:06:41][] 这样我也不知道啥问题,就这几个参数,咱写写明白行不,URL错就提示URL错,就一个签名错误???wtf,这里太笼统了! 好了说到URL错,好网上说99%的错误都是URL导致的,好的尝试了各种办法,并没有什么用,已经调试了不知道几天了,最后只能哀求官方帮我解决一下,帮我看看问题到底在哪里,头发都要秃了。 我用的是SPA (vue) HASH模式(https://xxx.com/#/)取得地址为 https://xxx.com/ 单凡我有一点办法都不会来这请教 综上,请赐教!求快速反馈! 顺便吐槽,标题为什么一定要问号,我就是个陈述句,阐述问题而已!
2020-07-10